diff --git a/Pipfile b/Pipfile
index 1bc1b63..6f8bd97 100644
--- a/Pipfile
+++ b/Pipfile
@@ -13,17 +13,20 @@ Sphinx = "*"
[packages]
src = {editable = true, path = "./"}
ipywidgets = "*"
-awscli = "*"
numpy = "*"
scipy = "*"
pandas = "*"
pyarrow = "*"
-scikit-learn = "*"
matplotlib = "*"
seaborn = "*"
-prometheus-api-client = "*"
+plotly = "*"
+kaleido = "*"
+scikit-learn = "*"
+umap-learn = "*"
+mlxtend = "*"
hyperopt = "*"
shap = "*"
+prometheus-api-client = "*"
[requires]
python_version = "3.6"
diff --git a/Pipfile.lock b/Pipfile.lock
index 142020d..b0cdf25 100644
--- a/Pipfile.lock
+++ b/Pipfile.lock
@@ -1,7 +1,7 @@
{
"_meta": {
"hash": {
- "sha256": "02d1c8871b1041024d41cac01a66a9b1835ab3996daefc6b08abd1c7cea789a2"
+ "sha256": "5aaea10131d44daf4560133bd30deebf8a0c49d37180f7c5f211f7c336fefc50"
},
"pipfile-spec": 6,
"requires": {
@@ -55,14 +55,6 @@
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
"version": "==20.3.0"
},
- "awscli": {
- "hashes": [
- "sha256:53e09baa9c0ee3356b40f1ac66a0dce9874ee77508efc5c10c680e89d9cfc9a4",
- "sha256:863031db46a502a8cc13fcf0e1ffac14602ec76124a764682d2444718697f48e"
- ],
- "index": "pypi",
- "version": "==1.18.195"
- },
"backcall": {
"hashes": [
"sha256:5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e",
@@ -72,18 +64,11 @@
},
"bleach": {
"hashes": [
- "sha256:52b5919b81842b1854196eaae5ca29679a2f2e378905c346d3ca8227c2c66080",
- "sha256:9f8ccbeb6183c6e6cddea37592dfb0167485c1e3b13b3363bc325aa8bda3adbd"
+ "sha256:2d3b3f7e7d69148bb683b26a3f21eabcf62fa8fb7bc75d0e7a13bcecd9568d4d",
+ "sha256:c6ad42174219b64848e2e2cd434e44f56cd24a93a9b4f8bc52cfed55a1cd5aad"
],
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
- "version": "==3.2.1"
- },
- "botocore": {
- "hashes": [
- "sha256:633aa910509b060717df4130f7e2841f1101c0c47fd5871f4903b4b1dbab7e23",
- "sha256:d31dce56799edb5796085d5296931faae201e28e14e568d9db4dac237a135fe3"
- ],
- "version": "==1.19.35"
+ "version": "==3.2.3"
},
"certifi": {
"hashes": [
@@ -135,10 +120,11 @@
},
"chardet": {
"hashes": [
- "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae",
- "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"
+ "sha256:0d6f53a15db4120f2b08c94f11e7d93d2c911ee118b6b30a04ec3ee8310179fa",
+ "sha256:f864054d66fd9118f2e67044ac8981a54775ec5b67aed0441892edb553d21da5"
],
- "version": "==3.0.4"
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
+ "version": "==4.0.0"
},
"click": {
"hashes": [
@@ -156,14 +142,6 @@
"markers": "python_version >= '3.5'",
"version": "==1.6.0"
},
- "colorama": {
- "hashes": [
- "sha256:7d73d2a99753107a36ac6b455ee49046802e59d9d076ef8e47b61499fa29afff",
- "sha256:e96da0d330793e2cb9485e9ddfd918d456036c7149416295932478192f4436a1"
- ],
- "markers": "python_version != '3.4'",
- "version": "==0.4.3"
- },
"cycler": {
"hashes": [
"sha256:1d8a5ae1ff6c5cf9b93e8811e581232ad8920aeec647c37316ceac982b08cb2d",
@@ -194,15 +172,6 @@
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
"version": "==0.6.0"
},
- "docutils": {
- "hashes": [
- "sha256:6c4f696463b79f1fb8ba0c594b63840ebd41f059e92b31957c46b74a4599b6d0",
- "sha256:9e4d7ecfc600058e07ba661411a2b7de2fd0fafa17d1a7f7361cd47b1175c827",
- "sha256:a2aeea129088da402665e92e0b25b04b073c04b2dce4ab65caaa38b7ce2e1a99"
- ],
- "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'",
- "version": "==0.15.2"
- },
"entrypoints": {
"hashes": [
"sha256:589f874b313739ad35be6e0cd7efde2a4e9b6fea91edcc34e58ecbb8dbe56d19",
@@ -215,7 +184,7 @@
"hashes": [
"sha256:b1bead90b70cf6ec3f0710ae53a525360fa360d306a86583adc6bf83a4db537d"
],
- "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'",
+ "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2'",
"version": "==0.18.2"
},
"hyperopt": {
@@ -236,19 +205,19 @@
},
"importlib-metadata": {
"hashes": [
- "sha256:5c5a2720817414a6c41f0a49993908068243ae02c1635a228126519b509c8aed",
- "sha256:bf792d480abbd5eda85794e4afb09dd538393f7d6e6ffef6e9f03d2014cf9450"
+ "sha256:ace61d5fc652dc280e7b6b4ff732a9c2d40db2c0f92bc6cb74e07b73d53a1771",
+ "sha256:fa5daa4477a7414ae34e95942e4dd07f62adf589143c875c133c1e53c4eff38d"
],
"markers": "python_version < '3.8'",
- "version": "==3.3.0"
+ "version": "==3.4.0"
},
"ipykernel": {
"hashes": [
- "sha256:63b4b96c513e1138874934e3e783a8e5e13c02b9036e37107bfe042ac8955005",
- "sha256:e20ceb7e52cb4d250452e1230be76e0b2323f33bd46c6b2bc7abb6601740e182"
+ "sha256:4ed205700001a83b5832d4821c46a5733f1bf4b1c55744314ae3c756be6b6095",
+ "sha256:697103d218e9a8828025af7986e033c89e0b36e2b6eb84a5bda4739b9a27f3cb"
],
"markers": "python_version >= '3.5'",
- "version": "==5.4.2"
+ "version": "==5.4.3"
},
"ipython": {
"hashes": [
@@ -267,19 +236,19 @@
},
"ipywidgets": {
"hashes": [
- "sha256:13ffeca438e0c0f91ae583dc22f50379b9d6b28390ac7be8b757140e9a771516",
- "sha256:e945f6e02854a74994c596d9db83444a1850c01648f1574adf144fbbabe05c97"
+ "sha256:9f1a43e620530f9e570e4a493677d25f08310118d315b00e25a18f12913c41f0",
+ "sha256:e6513cfdaf5878de30f32d57f6dc2474da395a2a2991b94d487406c0ab7f55ca"
],
"index": "pypi",
- "version": "==7.5.1"
+ "version": "==7.6.3"
},
"jedi": {
"hashes": [
- "sha256:86ed7d9b750603e4ba582ea8edc678657fb4007894a12bcf6f4bb97892f31d20",
- "sha256:98cc583fa0f2f8304968199b01b6b4b94f469a1f4a74c1560506ca2a211378b5"
+ "sha256:18456d83f65f400ab0c2d3319e48520420ef43b23a086fdc05dff34132f0fb93",
+ "sha256:92550a404bad8afed881a137ec9a461fed49eca661414be45059329614ed0707"
],
- "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
- "version": "==0.17.2"
+ "markers": "python_version >= '3.6'",
+ "version": "==0.18.0"
},
"jinja2": {
"hashes": [
@@ -289,14 +258,6 @@
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
"version": "==2.11.2"
},
- "jmespath": {
- "hashes": [
- "sha256:b85d0567b8666149a93172712e68920734333c0ce7e89b78b3e987f71e5ed4f9",
- "sha256:cdf6525904cc597730141d61b36f2e4b8ecc257c420fa2f4549bac2c2d0cb72f"
- ],
- "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'",
- "version": "==0.10.0"
- },
"joblib": {
"hashes": [
"sha256:75ead23f13484a2a414874779d69ade40d4fa1abe62b222a23cd50d4bc822f6f",
@@ -314,11 +275,11 @@
},
"jupyter-client": {
"hashes": [
- "sha256:49e390b36fe4b4226724704ea28d9fb903f1a3601b6882ce3105221cd09377a1",
- "sha256:c958d24d6eacb975c1acebb68ac9077da61b5f5c040f22f6849928ad7393b950"
+ "sha256:5eaaa41df449167ebba5e1cf6ca9b31f7fd4f71625069836e2e4fee07fe3cb13",
+ "sha256:649ca3aca1e28f27d73ef15868a7c7f10d6e70f761514582accec3ca6bb13085"
],
"markers": "python_version >= '3.5'",
- "version": "==6.1.7"
+ "version": "==6.1.11"
},
"jupyter-core": {
"hashes": [
@@ -335,6 +296,25 @@
],
"version": "==0.1.2"
},
+ "jupyterlab-widgets": {
+ "hashes": [
+ "sha256:5c1a29a84d3069208cb506b10609175b249b6486d6b1cbae8fcde2a11584fb78",
+ "sha256:caeaf3e6103180e654e7d8d2b81b7d645e59e432487c1d35a41d6d3ee56b3fef"
+ ],
+ "markers": "python_version >= '3.6'",
+ "version": "==1.0.0"
+ },
+ "kaleido": {
+ "hashes": [
+ "sha256:6a73cd4a69609490f7e13e43e77724d254aef28b062babad120b32e6f32968c2",
+ "sha256:8d0403b1eb21080e09d6d728c1ea7170fd4763c415fe89dfea6edf35ec36f8e7",
+ "sha256:949e3fc01c56cdca0226e866277cfb5e1b4bf66b5d4045ca43a3211f61bc8446",
+ "sha256:c583ed02b2c50a17e11ee3faec76f7d5f9898f8915f8877b583c5f83d0094e91",
+ "sha256:f3de8e08764115f529351208d689ff80523aa1e9fc0018d342af857f94e3b44e"
+ ],
+ "index": "pypi",
+ "version": "==0.1.0"
+ },
"kiwisolver": {
"hashes": [
"sha256:0cd53f403202159b44528498de18f9285b04482bab2a6fc3f5dd8dbb9352e30d",
@@ -472,6 +452,14 @@
],
"version": "==0.8.4"
},
+ "mlxtend": {
+ "hashes": [
+ "sha256:42965827a58d91f218b35a394881b45025a5c023ef8e595825bc97c955f9256c",
+ "sha256:ba856b4602518c81245e3674af34ae2c9611b91c78dec0aa7c8a0c1da35865d2"
+ ],
+ "index": "pypi",
+ "version": "==0.18.0"
+ },
"nbclient": {
"hashes": [
"sha256:01e2d726d16eaf2cde6db74a87e2451453547e8832d142f73f72fddcd4fe0250",
@@ -490,11 +478,11 @@
},
"nbformat": {
"hashes": [
- "sha256:aa9450c16d29286dc69b92ea4913c1bffe86488f90184445996ccc03a2f60382",
- "sha256:f545b22138865bfbcc6b1ffe89ed5a2b8e2dc5d4fe876f2ca60d8e6f702a30f8"
+ "sha256:1d223e64a18bfa7cdf2db2e9ba8a818312fc2a0701d2e910b58df66809385a56",
+ "sha256:3949fdc8f5fa0b1afca16fb307546e78494fa7a7bceff880df8168eafda0e7ac"
],
"markers": "python_version >= '3.5'",
- "version": "==5.0.8"
+ "version": "==5.1.2"
},
"nest-asyncio": {
"hashes": [
@@ -514,11 +502,11 @@
},
"notebook": {
"hashes": [
- "sha256:3db37ae834c5f3b6378381229d0e5dfcbfb558d08c8ce646b1ad355147f5e91d",
- "sha256:508cf9dad7cdb3188f1aa27017dc78179029dfe83814fc505329f689bc2ab50f"
+ "sha256:0464b28e18e7a06cec37e6177546c2322739be07962dd13bf712bcb88361f013",
+ "sha256:25ad93c982b623441b491e693ef400598d1a46cdf11b8c9c0b3be6c61ebbb6cd"
],
"markers": "python_version >= '3.5'",
- "version": "==6.1.5"
+ "version": "==6.2.0"
},
"numba": {
"hashes": [
@@ -544,43 +532,43 @@
},
"numpy": {
"hashes": [
- "sha256:08308c38e44cc926bdfce99498b21eec1f848d24c302519e64203a8da99a97db",
- "sha256:09c12096d843b90eafd01ea1b3307e78ddd47a55855ad402b157b6c4862197ce",
- "sha256:13d166f77d6dc02c0a73c1101dd87fdf01339febec1030bd810dcd53fff3b0f1",
- "sha256:141ec3a3300ab89c7f2b0775289954d193cc8edb621ea05f99db9cb181530512",
- "sha256:16c1b388cc31a9baa06d91a19366fb99ddbe1c7b205293ed072211ee5bac1ed2",
- "sha256:18bed2bcb39e3f758296584337966e68d2d5ba6aab7e038688ad53c8f889f757",
- "sha256:1aeef46a13e51931c0b1cf8ae1168b4a55ecd282e6688fdb0a948cc5a1d5afb9",
- "sha256:27d3f3b9e3406579a8af3a9f262f5339005dd25e0ecf3cf1559ff8a49ed5cbf2",
- "sha256:2a2740aa9733d2e5b2dfb33639d98a64c3b0f24765fed86b0fd2aec07f6a0a08",
- "sha256:4377e10b874e653fe96985c05feed2225c912e328c8a26541f7fc600fb9c637b",
- "sha256:448ebb1b3bf64c0267d6b09a7cba26b5ae61b6d2dbabff7c91b660c7eccf2bdb",
- "sha256:50e86c076611212ca62e5a59f518edafe0c0730f7d9195fec718da1a5c2bb1fc",
- "sha256:5734bdc0342aba9dfc6f04920988140fb41234db42381cf7ccba64169f9fe7ac",
- "sha256:64324f64f90a9e4ef732be0928be853eee378fd6a01be21a0a8469c4f2682c83",
- "sha256:6ae6c680f3ebf1cf7ad1d7748868b39d9f900836df774c453c11c5440bc15b36",
- "sha256:6d7593a705d662be5bfe24111af14763016765f43cb6923ed86223f965f52387",
- "sha256:8cac8790a6b1ddf88640a9267ee67b1aee7a57dfa2d2dd33999d080bc8ee3a0f",
- "sha256:8ece138c3a16db8c1ad38f52eb32be6086cc72f403150a79336eb2045723a1ad",
- "sha256:9eeb7d1d04b117ac0d38719915ae169aa6b61fca227b0b7d198d43728f0c879c",
- "sha256:a09f98011236a419ee3f49cedc9ef27d7a1651df07810ae430a6b06576e0b414",
- "sha256:a5d897c14513590a85774180be713f692df6fa8ecf6483e561a6d47309566f37",
- "sha256:ad6f2ff5b1989a4899bf89800a671d71b1612e5ff40866d1f4d8bcf48d4e5764",
- "sha256:c42c4b73121caf0ed6cd795512c9c09c52a7287b04d105d112068c1736d7c753",
- "sha256:cb1017eec5257e9ac6209ac172058c430e834d5d2bc21961dceeb79d111e5909",
- "sha256:d6c7bb82883680e168b55b49c70af29b84b84abb161cbac2800e8fcb6f2109b6",
- "sha256:e452dc66e08a4ce642a961f134814258a082832c78c90351b75c41ad16f79f63",
- "sha256:e5b6ed0f0b42317050c88022349d994fe72bfe35f5908617512cd8c8ef9da2a9",
- "sha256:e9b30d4bd69498fc0c3fe9db5f62fffbb06b8eb9321f92cc970f2969be5e3949",
- "sha256:ec149b90019852266fec2341ce1db513b843e496d5a8e8cdb5ced1923a92faab",
- "sha256:edb01671b3caae1ca00881686003d16c2209e07b7ef8b7639f1867852b948f7c",
- "sha256:f0d3929fe88ee1c155129ecd82f981b8856c5d97bcb0d5f23e9b4242e79d1de3",
- "sha256:f29454410db6ef8126c83bd3c968d143304633d45dc57b51252afbd79d700893",
- "sha256:fe45becb4c2f72a0907c1d0246ea6449fe7a9e2293bb0e11c4e9a32bb0930a15",
- "sha256:fedbd128668ead37f33917820b704784aff695e0019309ad446a6d0b065b57e4"
+ "sha256:012426a41bc9ab63bb158635aecccc7610e3eff5d31d1eb43bc099debc979d94",
+ "sha256:06fab248a088e439402141ea04f0fffb203723148f6ee791e9c75b3e9e82f080",
+ "sha256:0eef32ca3132a48e43f6a0f5a82cb508f22ce5a3d6f67a8329c81c8e226d3f6e",
+ "sha256:1ded4fce9cfaaf24e7a0ab51b7a87be9038ea1ace7f34b841fe3b6894c721d1c",
+ "sha256:2e55195bc1c6b705bfd8ad6f288b38b11b1af32f3c8289d6c50d47f950c12e76",
+ "sha256:2ea52bd92ab9f768cc64a4c3ef8f4b2580a17af0a5436f6126b08efbd1838371",
+ "sha256:36674959eed6957e61f11c912f71e78857a8d0604171dfd9ce9ad5cbf41c511c",
+ "sha256:384ec0463d1c2671170901994aeb6dce126de0a95ccc3976c43b0038a37329c2",
+ "sha256:39b70c19ec771805081578cc936bbe95336798b7edf4732ed102e7a43ec5c07a",
+ "sha256:400580cbd3cff6ffa6293df2278c75aef2d58d8d93d3c5614cd67981dae68ceb",
+ "sha256:43d4c81d5ffdff6bae58d66a3cd7f54a7acd9a0e7b18d97abb255defc09e3140",
+ "sha256:50a4a0ad0111cc1b71fa32dedd05fa239f7fb5a43a40663269bb5dc7877cfd28",
+ "sha256:603aa0706be710eea8884af807b1b3bc9fb2e49b9f4da439e76000f3b3c6ff0f",
+ "sha256:6149a185cece5ee78d1d196938b2a8f9d09f5a5ebfbba66969302a778d5ddd1d",
+ "sha256:759e4095edc3c1b3ac031f34d9459fa781777a93ccc633a472a5468587a190ff",
+ "sha256:7fb43004bce0ca31d8f13a6eb5e943fa73371381e53f7074ed21a4cb786c32f8",
+ "sha256:811daee36a58dc79cf3d8bdd4a490e4277d0e4b7d103a001a4e73ddb48e7e6aa",
+ "sha256:8b5e972b43c8fc27d56550b4120fe6257fdc15f9301914380b27f74856299fea",
+ "sha256:99abf4f353c3d1a0c7a5f27699482c987cf663b1eac20db59b8c7b061eabd7fc",
+ "sha256:a0d53e51a6cb6f0d9082decb7a4cb6dfb33055308c4c44f53103c073f649af73",
+ "sha256:a12ff4c8ddfee61f90a1633a4c4afd3f7bcb32b11c52026c92a12e1325922d0d",
+ "sha256:a4646724fba402aa7504cd48b4b50e783296b5e10a524c7a6da62e4a8ac9698d",
+ "sha256:a76f502430dd98d7546e1ea2250a7360c065a5fdea52b2dffe8ae7180909b6f4",
+ "sha256:a9d17f2be3b427fbb2bce61e596cf555d6f8a56c222bd2ca148baeeb5e5c783c",
+ "sha256:ab83f24d5c52d60dbc8cd0528759532736b56db58adaa7b5f1f76ad551416a1e",
+ "sha256:aeb9ed923be74e659984e321f609b9ba54a48354bfd168d21a2b072ed1e833ea",
+ "sha256:c843b3f50d1ab7361ca4f0b3639bf691569493a56808a0b0c54a051d260b7dbd",
+ "sha256:cae865b1cae1ec2663d8ea56ef6ff185bad091a5e33ebbadd98de2cfa3fa668f",
+ "sha256:cc6bd4fd593cb261332568485e20a0712883cf631f6f5e8e86a52caa8b2b50ff",
+ "sha256:cf2402002d3d9f91c8b01e66fbb436a4ed01c6498fffed0e4c7566da1d40ee1e",
+ "sha256:d051ec1c64b85ecc69531e1137bb9751c6830772ee5c1c426dbcfe98ef5788d7",
+ "sha256:d6631f2e867676b13026e2846180e2c13c1e11289d67da08d71cacb2cd93d4aa",
+ "sha256:dbd18bcf4889b720ba13a27ec2f2aac1981bd41203b3a3b27ba7a33f88ae4827",
+ "sha256:df609c82f18c5b9f6cb97271f03315ff0dbe481a2a02e56aeb1b1a985ce38e60"
],
"index": "pypi",
- "version": "==1.19.4"
+ "version": "==1.19.5"
},
"packaging": {
"hashes": [
@@ -628,11 +616,11 @@
},
"parso": {
"hashes": [
- "sha256:97218d9159b2520ff45eb78028ba8b50d2bc61dcc062a9682666f2dc4bd331ea",
- "sha256:caba44724b994a8a5e086460bb212abc5a8bc46951bf4a9a1210745953622eb9"
+ "sha256:15b00182f472319383252c18d5913b69269590616c947747bc50bf4ac768f410",
+ "sha256:8519430ad07087d4c997fda3a7918f7cfa27cb58972a8c89c2a0295a1c940e9e"
],
- "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
- "version": "==0.7.1"
+ "markers": "python_version >= '3.6'",
+ "version": "==0.8.1"
},
"pexpect": {
"hashes": [
@@ -651,37 +639,49 @@
},
"pillow": {
"hashes": [
- "sha256:006de60d7580d81f4a1a7e9f0173dc90a932e3905cc4d47ea909bc946302311a",
- "sha256:0a2e8d03787ec7ad71dc18aec9367c946ef8ef50e1e78c71f743bc3a770f9fae",
- "sha256:0eeeae397e5a79dc088d8297a4c2c6f901f8fb30db47795113a4a605d0f1e5ce",
- "sha256:11c5c6e9b02c9dac08af04f093eb5a2f84857df70a7d4a6a6ad461aca803fb9e",
- "sha256:2fb113757a369a6cdb189f8df3226e995acfed0a8919a72416626af1a0a71140",
- "sha256:4b0ef2470c4979e345e4e0cc1bbac65fda11d0d7b789dbac035e4c6ce3f98adb",
- "sha256:59e903ca800c8cfd1ebe482349ec7c35687b95e98cefae213e271c8c7fffa021",
- "sha256:5abd653a23c35d980b332bc0431d39663b1709d64142e3652890df4c9b6970f6",
- "sha256:5f9403af9c790cc18411ea398a6950ee2def2a830ad0cfe6dc9122e6d528b302",
- "sha256:6b4a8fd632b4ebee28282a9fef4c341835a1aa8671e2770b6f89adc8e8c2703c",
- "sha256:6c1aca8231625115104a06e4389fcd9ec88f0c9befbabd80dc206c35561be271",
- "sha256:795e91a60f291e75de2e20e6bdd67770f793c8605b553cb6e4387ce0cb302e09",
- "sha256:7ba0ba61252ab23052e642abdb17fd08fdcfdbbf3b74c969a30c58ac1ade7cd3",
- "sha256:7c9401e68730d6c4245b8e361d3d13e1035cbc94db86b49dc7da8bec235d0015",
- "sha256:81f812d8f5e8a09b246515fac141e9d10113229bc33ea073fec11403b016bcf3",
- "sha256:895d54c0ddc78a478c80f9c438579ac15f3e27bf442c2a9aa74d41d0e4d12544",
- "sha256:8de332053707c80963b589b22f8e0229f1be1f3ca862a932c1bcd48dafb18dd8",
- "sha256:92c882b70a40c79de9f5294dc99390671e07fc0b0113d472cbea3fde15db1792",
- "sha256:95edb1ed513e68bddc2aee3de66ceaf743590bf16c023fb9977adc4be15bd3f0",
- "sha256:b63d4ff734263ae4ce6593798bcfee6dbfb00523c82753a3a03cbc05555a9cc3",
- "sha256:bd7bf289e05470b1bc74889d1466d9ad4a56d201f24397557b6f65c24a6844b8",
- "sha256:cc3ea6b23954da84dbee8025c616040d9aa5eaf34ea6895a0a762ee9d3e12e11",
- "sha256:cc9ec588c6ef3a1325fa032ec14d97b7309db493782ea8c304666fb10c3bd9a7",
- "sha256:d3d07c86d4efa1facdf32aa878bd508c0dc4f87c48125cc16b937baa4e5b5e11",
- "sha256:d8a96747df78cda35980905bf26e72960cba6d355ace4780d4bdde3b217cdf1e",
- "sha256:e38d58d9138ef972fceb7aeec4be02e3f01d383723965bfcef14d174c8ccd039",
- "sha256:eb472586374dc66b31e36e14720747595c2b265ae962987261f044e5cce644b5",
- "sha256:fbd922f702582cb0d71ef94442bfca57624352622d75e3be7a1e7e9360b07e72"
+ "sha256:165c88bc9d8dba670110c689e3cc5c71dbe4bfb984ffa7cbebf1fac9554071d6",
+ "sha256:1d208e670abfeb41b6143537a681299ef86e92d2a3dac299d3cd6830d5c7bded",
+ "sha256:22d070ca2e60c99929ef274cfced04294d2368193e935c5d6febfd8b601bf865",
+ "sha256:2353834b2c49b95e1313fb34edf18fca4d57446675d05298bb694bca4b194174",
+ "sha256:39725acf2d2e9c17356e6835dccebe7a697db55f25a09207e38b835d5e1bc032",
+ "sha256:3de6b2ee4f78c6b3d89d184ade5d8fa68af0848f9b6b6da2b9ab7943ec46971a",
+ "sha256:47c0d93ee9c8b181f353dbead6530b26980fe4f5485aa18be8f1fd3c3cbc685e",
+ "sha256:5e2fe3bb2363b862671eba632537cd3a823847db4d98be95690b7e382f3d6378",
+ "sha256:604815c55fd92e735f9738f65dabf4edc3e79f88541c221d292faec1904a4b17",
+ "sha256:6c5275bd82711cd3dcd0af8ce0bb99113ae8911fc2952805f1d012de7d600a4c",
+ "sha256:731ca5aabe9085160cf68b2dbef95fc1991015bc0a3a6ea46a371ab88f3d0913",
+ "sha256:7612520e5e1a371d77e1d1ca3a3ee6227eef00d0a9cddb4ef7ecb0b7396eddf7",
+ "sha256:7916cbc94f1c6b1301ac04510d0881b9e9feb20ae34094d3615a8a7c3db0dcc0",
+ "sha256:81c3fa9a75d9f1afafdb916d5995633f319db09bd773cb56b8e39f1e98d90820",
+ "sha256:887668e792b7edbfb1d3c9d8b5d8c859269a0f0eba4dda562adb95500f60dbba",
+ "sha256:93a473b53cc6e0b3ce6bf51b1b95b7b1e7e6084be3a07e40f79b42e83503fbf2",
+ "sha256:96d4dc103d1a0fa6d47c6c55a47de5f5dafd5ef0114fa10c85a1fd8e0216284b",
+ "sha256:a3d3e086474ef12ef13d42e5f9b7bbf09d39cf6bd4940f982263d6954b13f6a9",
+ "sha256:b02a0b9f332086657852b1f7cb380f6a42403a6d9c42a4c34a561aa4530d5234",
+ "sha256:b09e10ec453de97f9a23a5aa5e30b334195e8d2ddd1ce76cc32e52ba63c8b31d",
+ "sha256:b6f00ad5ebe846cc91763b1d0c6d30a8042e02b2316e27b05de04fa6ec831ec5",
+ "sha256:bba80df38cfc17f490ec651c73bb37cd896bc2400cfba27d078c2135223c1206",
+ "sha256:c3d911614b008e8a576b8e5303e3db29224b455d3d66d1b2848ba6ca83f9ece9",
+ "sha256:ca20739e303254287138234485579b28cb0d524401f83d5129b5ff9d606cb0a8",
+ "sha256:cb192176b477d49b0a327b2a5a4979552b7a58cd42037034316b8018ac3ebb59",
+ "sha256:cdbbe7dff4a677fb555a54f9bc0450f2a21a93c5ba2b44e09e54fcb72d2bd13d",
+ "sha256:cf6e33d92b1526190a1de904df21663c46a456758c0424e4f947ae9aa6088bf7",
+ "sha256:d355502dce85ade85a2511b40b4c61a128902f246504f7de29bbeec1ae27933a",
+ "sha256:d673c4990acd016229a5c1c4ee8a9e6d8f481b27ade5fc3d95938697fa443ce0",
+ "sha256:dc577f4cfdda354db3ae37a572428a90ffdbe4e51eda7849bf442fb803f09c9b",
+ "sha256:dd9eef866c70d2cbbea1ae58134eaffda0d4bfea403025f4db6859724b18ab3d",
+ "sha256:f50e7a98b0453f39000619d845be8b06e611e56ee6e8186f7f60c3b1e2f0feae"
],
"markers": "python_version >= '3.6'",
- "version": "==8.0.1"
+ "version": "==8.1.0"
+ },
+ "plotly": {
+ "hashes": [
+ "sha256:7d8aaeed392e82fb8e0e48899f2d3d957b12327f9d38cdd5802bc574a8a39d91",
+ "sha256:d68fc15fcb49f88db27ab3e0c87110943e65fee02a47f33a8590f541b3042461"
+ ],
+ "index": "pypi",
+ "version": "==4.14.3"
},
"prometheus-api-client": {
"hashes": [
@@ -700,68 +700,46 @@
},
"prompt-toolkit": {
"hashes": [
- "sha256:25c95d2ac813909f813c93fde734b6e44406d1477a9faef7c915ff37d39c0a8c",
- "sha256:7debb9a521e0b1ee7d2fe96ee4bd60ef03c6492784de0547337ca4433e46aa63"
+ "sha256:7e966747c18ececaec785699626b771c1ba8344c8d31759a1915d6b12fad6525",
+ "sha256:c96b30925025a7635471dc083ffb6af0cc67482a00611bd81aeaeeeb7e5a5e12"
],
"markers": "python_full_version >= '3.6.1'",
- "version": "==3.0.8"
+ "version": "==3.0.14"
},
"ptyprocess": {
"hashes": [
- "sha256:923f299cc5ad920c68f2bc0bc98b75b9f838b93b599941a6b63ddbc2476394c0",
- "sha256:d7cc528d76e76342423ca640335bd3633420dc1366f258cb31d05e865ef5ca1f"
+ "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35",
+ "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"
],
"markers": "os_name != 'nt'",
- "version": "==0.6.0"
+ "version": "==0.7.0"
},
"pyarrow": {
"hashes": [
- "sha256:00d8fb8a9b2d9bb2f0ced2765b62c5d72689eed06c47315bca004584b0ccda60",
- "sha256:0b358773eb9fb1b31c8217c6c8c0b4681c3dff80562dc23ad5b379f0279dad69",
- "sha256:0bf43e520c33ceb1dd47263a5326830fca65f18d827f7f7b8fe7e64fc4364d88",
- "sha256:0db5156a66615591a4a8c66a9a30890a364a259de8d2a6ccb873c7d1740e6c75",
- "sha256:1000e491e9a539588ec33a2c2603cf05f1d4629aef375345bfd64f2ab7bc8529",
- "sha256:14b02a629986c25e045f81771799e07a8bb3f339898c111314066436769a3dd4",
- "sha256:16ec87163a2fb4abd48bf79cbdf70a7455faa83740e067c2280cfa45a63ed1f3",
- "sha256:3e33e9003794c9062f4c963a10f2a0d787b83d4d1a517a375294f2293180b778",
- "sha256:652c5dff97624375ed0f97cc8ad6f88ee01953f15c17083917735de171f03fe0",
- "sha256:6afc71cc9c234f3cdbe971297468755ec3392966cb19d3a6caf42fd7dbc6aaa9",
- "sha256:916b593a24f2812b9a75adef1143b1dd89d799e1803282fea2829c5dc0b828ea",
- "sha256:9a8d3c6baa6e159017d97e8a028ae9eaa2811d8f1ab3d22710c04dcddc0dd7a1",
- "sha256:9f4ba9ab479c0172e532f5d73c68e30a31c16b01e09bb21eba9201561231f722",
- "sha256:acdd18fd83c0be0b53a8e734c0a650fb27bbf4e7d96a8f7eb0a7506ea58bd594",
- "sha256:b5e6cd217457e8febcc98a6c279b96f72d5c31a24cd2bffd8d3b2da701d2025c",
- "sha256:bc8c3713086e4a137b3fda4b149440458b1b0bd72f67b1afa2c7068df1edc060",
- "sha256:c801e59ec4e8d9d871e299726a528c3ba3139f2ce2d9cdab101f8483c52eec7c",
- "sha256:ccff3a72f70ebfcc002bf75f5ad1248065e5c9c14e0dcfa599a438ea221c5658",
- "sha256:ce0462cec7f81c4ff87ce1a95c82a8d467606dce6c72e92906ac251c6115f32b",
- "sha256:cf9bf10daadbbf1a360ac1c7dab0b4f8381d81a3f452737bd6ed310d57a88be8",
- "sha256:dc0d04c42632e65c4fcbe2f82c70109c5f347652844ead285bc1285dc3a67660",
- "sha256:dd661b6598ce566c6f41d31cc1fc4482308613c2c0c808bd8db33b0643192f84",
- "sha256:eb05038b750a6e16a9680f9d2c40d050796284ea1f94690da8f4f28805af0495",
- "sha256:fb69672e69e1b752744ee1e236fdf03aad78ffec905fc5c19adbaf88bac4d0fd",
- "sha256:ffb306951b5925a0638dc2ef1ab7ce8033f39e5b4e0fef5787b91ef4fa7da19d"
+ "sha256:03e2435da817bc2b5d0fad6f2e53305eb36c24004ddfcb2b30e4217a1a80cf22",
+ "sha256:2be3a9eab4bfd00024dc3c83fa03de1c1d04a0f47ebaf3dc483cd100546eacbf",
+ "sha256:2c3353d38d137f1158595b3b18dcef711f3d8fdb57cf7ae2d861d07235064bc1",
+ "sha256:2d5c95eb04a3d2e786e097b53534893eade6c8b3faf10f53a06143384b4446b1",
+ "sha256:31e6fc0868963aba4e6b8a3e218c9a5ff347bca870d622da0b3d58269d0c5398",
+ "sha256:3b46487c45faaea8d1a5aa65002e2832ae2e1c9e68ecb461cda4fa59891cf490",
+ "sha256:3ea6574d1ae2d9bff7e6e1715f64c31bdc01b42387a5c78311a8ce9c09cfe135",
+ "sha256:4bf8cc43e1db1e0517466209ee8e8f459d9b5e1b4074863317f2a965cf59889e",
+ "sha256:5faa2dc73444bdcf042f121383965a47362be1f946303d46e8fd80f8d26cd90c",
+ "sha256:72206cde1857d5420601feae75f53921cffab4326b42262a858c7b8be67982b7",
+ "sha256:960a9b0fd599601ddac42f16d5acf049637ec08957359c6741d6eb2bf0dbae97",
+ "sha256:978bbe8ec9090d1133a25f00f32ed92600f9d315fbfa29a17952bee01f0d7fe5",
+ "sha256:a07e286e81ceb20f8f0c45f69760d2ebc434fe83794d5f9b44f89fc2dc6dc24d",
+ "sha256:a76031ef19d11db2fef79a97cc69997c97bea35aa07efbe042a177c7e3b1a390",
+ "sha256:b08c119cc2b9fcd1567797fedb245a2f4352a3084a22b7298272afe7cf7a4730",
+ "sha256:b1cf92df9f336f31706249e543dc0ffce3c67a78204ce540f1173c6c07dfafec",
+ "sha256:b7a8903f2b8a80498725ef5d4a35cd7dd5a98b74e080d42692545e61a6cbfbe4",
+ "sha256:bf6684fe9e38f8ddb696e38901461eab783ec1d565974ebd5862270320b3e27f",
+ "sha256:cfea99a01d844c3db5e25374a6cdcf3b5ba1698bfe95d41272c295a4581e884c",
+ "sha256:d5666a7fa2668f3ff95df028c2072d59e8b17e73d682068e8505dafa2688f3cc",
+ "sha256:dec007a0f7adba86bd170252140ede01646b45c3a470d5862ce00d8e40cd29bd"
],
"index": "pypi",
- "version": "==2.0.0"
- },
- "pyasn1": {
- "hashes": [
- "sha256:014c0e9976956a08139dc0712ae195324a75e142284d5f87f1a87ee1b068a359",
- "sha256:03840c999ba71680a131cfaee6fab142e1ed9bbd9c693e285cc6aca0d555e576",
- "sha256:0458773cfe65b153891ac249bcf1b5f8f320b7c2ce462151f8fa74de8934becf",
- "sha256:08c3c53b75eaa48d71cf8c710312316392ed40899cb34710d092e96745a358b7",
- "sha256:39c7e2ec30515947ff4e87fb6f456dfc6e84857d34be479c9d4a4ba4bf46aa5d",
- "sha256:5c9414dcfede6e441f7e8f81b43b34e834731003427e5b09e4e00e3172a10f00",
- "sha256:6e7545f1a61025a4e58bb336952c5061697da694db1cae97b116e9c46abcf7c8",
- "sha256:78fa6da68ed2727915c4767bb386ab32cdba863caa7dbe473eaae45f9959da86",
- "sha256:7ab8a544af125fb704feadb008c99a88805126fb525280b2270bb25cc1d78a12",
- "sha256:99fcc3c8d804d1bc6d9a099921e39d827026409a58f2a720dcdb89374ea0c776",
- "sha256:aef77c9fb94a3ac588e87841208bdec464471d9871bd5050a287cc9a475cd0ba",
- "sha256:e89bf84b5437b532b0803ba5c9a5e054d21fec423a89952a74f87fa2c9b7bce2",
- "sha256:fec3e9d8e36808a28efb59b489e4528c10ad0f480e57dcc32b4de5c9d8c9fdf3"
- ],
- "version": "==0.4.8"
+ "version": "==3.0.0"
},
"pycparser": {
"hashes": [
@@ -773,18 +751,24 @@
},
"pygments": {
"hashes": [
- "sha256:ccf3acacf3782cbed4a989426012f1c535c9a90d3a7fc3f16d231b9372d2b716",
- "sha256:f275b6c0909e5dafd2d6269a656aa90fa58ebf4a74f8fcf9053195d226b24a08"
+ "sha256:bc9591213a8f0e0ca1a5e68a479b4887fdc3e75d0774e5c71c31920c427de435",
+ "sha256:df49d09b498e83c1a73128295860250b0b7edd4c723a32e9bc0d295c7c2ec337"
],
"markers": "python_version >= '3.5'",
- "version": "==2.7.3"
+ "version": "==2.7.4"
+ },
+ "pynndescent": {
+ "hashes": [
+ "sha256:74a05a54d13573a38878781d44812ac6df97d8762a56f9bb5dd87a99911820fe"
+ ],
+ "version": "==0.5.1"
},
"pyparsing": {
"hashes": [
"sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1",
"sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"
],
- "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'",
+ "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2'",
"version": "==2.4.7"
},
"pyrsistent": {
@@ -799,7 +783,7 @@
"sha256:73ebfe9dbf22e832286dafa60473e4cd239f8592f699aa5adaf10050e6e1823c",
"sha256:75bb3f31ea686f1197762692a9ee6a7550b59fc6ca3a1f4b5d7e32fb98e2da2a"
],
- "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'",
"version": "==2.8.1"
},
"python-dotenv": {
@@ -811,64 +795,44 @@
},
"pytz": {
"hashes": [
- "sha256:3e6b7dd2d1e0a59084bcee14a17af60c5c562cdc16d828e8eba2e683d3a7e268",
- "sha256:5c55e189b682d420be27c6995ba6edce0c0a77dd67bfbe2ae6607134d5851ffd"
+ "sha256:16962c5fb8db4a8f63a26646d8886e9d769b6c511543557bc84e9569fb9a9cb4",
+ "sha256:180befebb1927b16f6b57101720075a984c019ac16b1b7575673bea42c6c3da5"
],
- "version": "==2020.4"
- },
- "pyyaml": {
- "hashes": [
- "sha256:06a0d7ba600ce0b2d2fe2e78453a470b5a6e000a985dd4a4e54e436cc36b0e97",
- "sha256:240097ff019d7c70a4922b6869d8a86407758333f02203e0fc6ff79c5dcede76",
- "sha256:4f4b913ca1a7319b33cfb1369e91e50354d6f07a135f3b901aca02aa95940bd2",
- "sha256:6034f55dab5fea9e53f436aa68fa3ace2634918e8b5994d82f3621c04ff5ed2e",
- "sha256:69f00dca373f240f842b2931fb2c7e14ddbacd1397d57157a9b005a6a9942648",
- "sha256:73f099454b799e05e5ab51423c7bcf361c58d3206fa7b0d555426b1f4d9a3eaf",
- "sha256:74809a57b329d6cc0fdccee6318f44b9b8649961fa73144a98735b0aaf029f1f",
- "sha256:7739fc0fa8205b3ee8808aea45e968bc90082c10aef6ea95e855e10abf4a37b2",
- "sha256:95f71d2af0ff4227885f7a6605c37fd53d3a106fcab511b8860ecca9fcf400ee",
- "sha256:ad9c67312c84def58f3c04504727ca879cb0013b2517c85a9a253f0cb6380c0a",
- "sha256:b8eac752c5e14d3eca0e6dd9199cd627518cb5ec06add0de9d32baeee6fe645d",
- "sha256:cc8955cfbfc7a115fa81d85284ee61147059a753344bc51098f3ccd69b0d7e0c",
- "sha256:d13155f591e6fcc1ec3b30685d50bf0711574e2c0dfffd7644babf8b5102ca1a"
- ],
- "markers": "python_version != '3.4'",
- "version": "==5.3.1"
+ "version": "==2020.5"
},
"pyzmq": {
"hashes": [
- "sha256:03638e46d486dd1c118e03c8bf9c634bdcae679600eac6573ae1e54906de7c2f",
- "sha256:0af84f34f27b5c6a0e906c648bdf46d4caebf9c8e6e16db0728f30a58141cad6",
- "sha256:0e554fd390021edbe0330b67226325a820b0319c5b45e1b0a59bf22ccc36e793",
- "sha256:1e9b75a119606732023a305d1c214146c09a91f8116f6aff3e8b7d0a60b6f0ff",
- "sha256:225774a48ed7414c0395335e7123ef8c418dbcbe172caabdc2496133b03254c2",
- "sha256:2742e380d186673eee6a570ef83d4568741945434ba36d92b98d36cdbfedbd44",
- "sha256:309d763d89ec1845c0e0fa14e1fb6558fd8c9ef05ed32baec27d7a8499cc7bb0",
- "sha256:46250789730489009fe139cbf576679557c070a6a3628077d09a4153d52fd381",
- "sha256:4d9259a5eb3f71abbaf61f165cacf42240bfeea3783bebd8255341abdfe206f1",
- "sha256:523d542823cabb94065178090e05347bd204365f6e7cb260f0071c995d392fc2",
- "sha256:53706f4a792cdae422121fb6a5e65119bad02373153364fc9d004cf6a90394de",
- "sha256:5efe02bdcc5eafcac0aab531292294298f0ab8d28ed43be9e507d0e09173d1a4",
- "sha256:63ee08e35be72fdd7568065a249a5b5cf51a2e8ab6ee63cf9f73786fcb9e710b",
- "sha256:6e24907857c80dc67692e31f5bf3ad5bf483ee0142cec95b3d47e2db8c43bdda",
- "sha256:7113eb93dcd0a5750c65d123ed0099e036a3a3f2dcb48afedd025ffa125c983b",
- "sha256:824ad5888331aadeac772bce27e1c2fbcab82fade92edbd234542c4e12f0dca9",
- "sha256:895695be380f0f85d2e3ec5ccf68a93c92d45bd298567525ad5633071589872c",
- "sha256:b62113eeb9a0649cebed9b21fd578f3a0175ef214a2a91dcb7b31bbf55805295",
- "sha256:bc7dd697356b31389d5118b9bcdef3e8d8079e8181800c4e8d72dccd56e1ff68",
- "sha256:bf755905a7d30d2749079611b9a89924c1f2da2695dc09ce221f42122c9808e3",
- "sha256:c63fafd2556d218368c51d18588f8e6f8d86d09d493032415057faf6de869b34",
- "sha256:c95dda497a7c1b1e734b5e8353173ca5dd7b67784d8821d13413a97856588057",
- "sha256:cc09c5cd1a4332611c8564d65e6a432dc6db3e10793d0254da9fa1e31d9ffd6d",
- "sha256:cfa54a162a7b32641665e99b2c12084555afe9fc8fe80ec8b2f71a57320d10e1",
- "sha256:d81184489369ec325bd50ba1c935361e63f31f578430b9ad95471899361a8253",
- "sha256:d92c7f41a53ece82b91703ea433c7d34143248cf0cead33aa11c5fc621c764bf",
- "sha256:dc2f48b575dff6edefd572f1ac84cf0c3f18ad5fcf13384de32df740a010594a",
- "sha256:f0beef935efe78a63c785bb21ed56c1c24448511383e3994927c8bb2caf5e714",
- "sha256:f110a4d3f8f01209eec304ed542f6c8054cce9b0f16dfe3d571e57c290e4e133"
+ "sha256:082abbb95936f7475cee098153191058350878e33b8fb1dbefc82264978297e4",
+ "sha256:098c13c6198913c2a0690235fa74d2e49161755f66b663beaec89651554cc79c",
+ "sha256:0a6890d626b4f95f276a2381aea8d3435bb25ef7a2735bbc74966b105b09e758",
+ "sha256:42ddd761ac71dd7a386849bceffdcf4f35798caf844b762693456fc55c19c721",
+ "sha256:43df5e2fe06e03f41649a48e6339045fe8c68feaedef700a54440551f0ba94a3",
+ "sha256:46ff042f883bb22242ba5a3817fbcb2ff0cc0990827b8f925d49c176b1cb7394",
+ "sha256:4a70ef4e3835333e020c697ebfe3e6be172dd4ef8fe19ad047cd88678c1259c5",
+ "sha256:530ee5571bea541ff68c6e92819a0da0bdab9457c9b637b6c142c267c02a799e",
+ "sha256:544963322b1cb650de3d2f45d81bc644e5d9ada6f8f1f5718d9837cda78ee948",
+ "sha256:62b3c8196b2fa106552b03ed8ea7b91e1047e9a614849c87aea468f0caac4076",
+ "sha256:664f075d38869c6117507193ae3f3d5319491900f11b344030345c11d74863f2",
+ "sha256:68f8120ba7ec704d5acfabdcd1328c37806d8a23e1688a7ae3f59193c3cd46e3",
+ "sha256:71ff9975f23a78c14a303bf4efd8b8924830a170a8eabcffff7f5e5a5b583b9e",
+ "sha256:7307f6efb568a20bb56662041555d08aa2cbc71df91638344b6a088c10b44da7",
+ "sha256:82f59dbbdc47987f7ce0daea4d6ee21059ab9d5896bd8110215736c62762cc7f",
+ "sha256:84ccd4d9f8839353278480d1f06372f5fd149abcb7621f85c4ebe0924acbd110",
+ "sha256:8b984feb536152009e2dc306140ec47f88dd85922063d9e9e8b07f4ff5a0832a",
+ "sha256:a0d3aaff782ee1d423e90604c2abe4e573062e9a2008b27c01c86d94f94dbfa7",
+ "sha256:a3da3d5a66545fa127ad12784babd78859656e0c9614324d40c72d4210aa5bbe",
+ "sha256:b4b7e6edea41257562e9d4b28e717ee04ef078720d46ddb4c2241b9b60dbecc2",
+ "sha256:b7f471ecead3c4b3c88d00eeff5d78f2b2a6a9f56dd33aa96620019d83fcc3dd",
+ "sha256:c34ec0218319f7a78b15315038125d08ab0b37ff1fe2ce002e70b7aafe1423cf",
+ "sha256:d91cbc637a34e1a72ebc47da8bf21a2e6c5e386d1b04143c07c8082258e9b430",
+ "sha256:dbccca5b77162f610727b664804216674b1974a7a65e03a6ed638a9434cdf2b2",
+ "sha256:efd3685579d93f01a742827d4d364df6a3c08df25e14ea091828e3f77d054f19",
+ "sha256:f91a6dd45678fa6bac889267328ed9cfec56e2adeab7af2dddfa8c7e9dab24de",
+ "sha256:fcb790ff9df5d85d059069a7847f5696ec9296b719ed3e7e675a61a7af390e2f",
+ "sha256:fe714a0aeee5d5f230cb67af8e584f243adce63f32e81519dd80f605d036feea"
],
- "markers": "python_version >= '3.5'",
- "version": "==20.0.0"
+ "markers": "python_version >= '3.6'",
+ "version": "==21.0.2"
},
"regex": {
"hashes": [
@@ -918,48 +882,52 @@
},
"requests": {
"hashes": [
- "sha256:7f1a0b932f4a60a1a65caa4263921bb7d9ee911957e0ae4a23a6dd08185ad5f8",
- "sha256:e786fa28d8c9154e6a4de5d46a1d921b8749f8b74e28bde23768e5e16eece998"
+ "sha256:27973dd4a904a4f13b263a19c866c13b92a39ed1c964655f025f3f8d3d75b804",
+ "sha256:c210084e36a42ae6b9219e00e48287def368a26d03a048ddad7bfee44f75871e"
],
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
- "version": "==2.25.0"
+ "version": "==2.25.1"
},
- "rsa": {
+ "retrying": {
"hashes": [
- "sha256:35c5b5f6675ac02120036d97cf96f1fde4d49670543db2822ba5015e21a18032",
- "sha256:4d409f5a7d78530a4a2062574c7bd80311bc3af29b364e293aa9b03eea77714f"
+ "sha256:08c039560a6da2fe4f2c426d0766e284d3b736e355f8dd24b37367b0bb41973b"
],
- "markers": "python_version != '3.4'",
- "version": "==4.5"
- },
- "s3transfer": {
- "hashes": [
- "sha256:2482b4259524933a022d59da830f51bd746db62f047d6eb213f2f8855dcb8a13",
- "sha256:921a37e2aefc64145e7b73d50c71bb4f26f46e4c9f414dc648c6245ff92cf7db"
- ],
- "version": "==0.3.3"
+ "version": "==1.3.3"
},
"scikit-learn": {
"hashes": [
- "sha256:0a127cc70990d4c15b1019680bfedc7fec6c23d14d3719fdf9b64b22d37cdeca",
- "sha256:0d39748e7c9669ba648acf40fb3ce96b8a07b240db6888563a7cb76e05e0d9cc",
- "sha256:1b8a391de95f6285a2f9adffb7db0892718950954b7149a70c783dc848f104ea",
- "sha256:20766f515e6cd6f954554387dfae705d93c7b544ec0e6c6a5d8e006f6f7ef480",
- "sha256:2aa95c2f17d2f80534156215c87bee72b6aa314a7f8b8fe92a2d71f47280570d",
- "sha256:5ce7a8021c9defc2b75620571b350acc4a7d9763c25b7593621ef50f3bd019a2",
- "sha256:6c28a1d00aae7c3c9568f61aafeaad813f0f01c729bee4fd9479e2132b215c1d",
- "sha256:7671bbeddd7f4f9a6968f3b5442dac5f22bf1ba06709ef888cc9132ad354a9ab",
- "sha256:914ac2b45a058d3f1338d7736200f7f3b094857758895f8667be8a81ff443b5b",
- "sha256:98508723f44c61896a4e15894b2016762a55555fbf09365a0bb1870ecbd442de",
- "sha256:a64817b050efd50f9abcfd311870073e500ae11b299683a519fbb52d85e08d25",
- "sha256:cb3e76380312e1f86abd20340ab1d5b3cc46a26f6593d3c33c9ea3e4c7134028",
- "sha256:d0dcaa54263307075cb93d0bee3ceb02821093b1b3d25f66021987d305d01dce",
- "sha256:d9a1ce5f099f29c7c33181cc4386660e0ba891b21a60dc036bf369e3a3ee3aec",
- "sha256:da8e7c302003dd765d92a5616678e591f347460ac7b53e53d667be7dfe6d1b10",
- "sha256:daf276c465c38ef736a79bd79fc80a249f746bcbcae50c40945428f7ece074f8"
+ "sha256:0567a2d29ad08af98653300c623bd8477b448fe66ced7198bef4ed195925f082",
+ "sha256:087dfede39efb06ab30618f9ab55a0397f29c38d63cd0ab88d12b500b7d65fd7",
+ "sha256:1adf483e91007a87171d7ce58c34b058eb5dab01b5fee6052f15841778a8ecd8",
+ "sha256:259ec35201e82e2db1ae2496f229e63f46d7f1695ae68eef9350b00dc74ba52f",
+ "sha256:3c4f07f47c04e81b134424d53c3f5e16dfd7f494e44fd7584ba9ce9de2c5e6c1",
+ "sha256:4562dcf4793e61c5d0f89836d07bc37521c3a1889da8f651e2c326463c4bd697",
+ "sha256:4ddd2b6f7449a5d539ff754fa92d75da22de261fd8fdcfb3596799fadf255101",
+ "sha256:7b04691eb2f41d2c68dbda8d1bd3cb4ef421bdc43aaa56aeb6c762224552dfb6",
+ "sha256:826b92bf45b8ad80444814e5f4ac032156dd481e48d7da33d611f8fe96d5f08b",
+ "sha256:83b21ff053b1ff1c018a2d24db6dd3ea339b1acfbaa4d9c881731f43748d8b3b",
+ "sha256:8772b99d683be8f67fcc04789032f1b949022a0e6880ee7b75a7ec97dbbb5d0b",
+ "sha256:895dbf2030aa7337649e36a83a007df3c9811396b4e2fa672a851160f36ce90c",
+ "sha256:8aa1b3ac46b80eaa552b637eeadbbce3be5931e4b5002b964698e33a1b589e1e",
+ "sha256:99349d77f54e11f962d608d94dfda08f0c9e5720d97132233ebdf35be2858b2d",
+ "sha256:9a24d1ccec2a34d4cd3f2a1f86409f3f5954cc23d4d2270ba0d03cf018aa4780",
+ "sha256:9bed8a1ef133c8e2f13966a542cb8125eac7f4b67dcd234197c827ba9c7dd3e0",
+ "sha256:9c6097b6a9b2bafc5e0f31f659e6ab5e131383209c30c9e978c5b8abdac5ed2a",
+ "sha256:9dfa564ef27e8e674aa1cc74378416d580ac4ede1136c13dd555a87996e13422",
+ "sha256:a0334a1802e64d656022c3bfab56a73fbd6bf4b1298343f3688af2151810bbdf",
+ "sha256:a29460499c1e62b7a830bb57ca42e615375a6ab1bcad053cd25b493588348ea8",
+ "sha256:a36e159a0521e13bbe15ca8c8d038b3a1dd4c7dad18d276d76992e03b92cf643",
+ "sha256:c13ebac42236b1c46397162471ea1c46af68413000e28b9309f8c05722c65a09",
+ "sha256:c3deb3b19dd9806acf00cf0d400e84562c227723013c33abefbbc3cf906596e9",
+ "sha256:c658432d8a20e95398f6bb95ff9731ce9dfa343fdf21eea7ec6a7edfacd4b4d9",
+ "sha256:c7f4eb77504ac586d8ac1bde1b0c04b504487210f95297235311a0ab7edd7e38",
+ "sha256:d54dbaadeb1425b7d6a66bf44bee2bb2b899fe3e8850b8e94cfb9c904dcb46d0",
+ "sha256:ddb52d088889f5596bc4d1de981f2eca106b58243b6679e4782f3ba5096fd645",
+ "sha256:ed9d65594948678827f4ff0e7ae23344e2f2b4cabbca057ccaed3118fdc392ca",
+ "sha256:fab31f48282ebf54dd69f6663cd2d9800096bad1bb67bbc9c9ac84eb77b41972"
],
"index": "pypi",
- "version": "==0.23.2"
+ "version": "==0.24.1"
},
"scipy": {
"hashes": [
@@ -994,11 +962,11 @@
},
"seaborn": {
"hashes": [
- "sha256:390f8437b14f5ce845062f2865ad51656464c306d09bb97d7764c6cba1dd607c",
- "sha256:62439a38482decdb263a8339f54ecb9823995ad8716abc830e91ca0753201e70"
+ "sha256:44e78eaed937c5a87fc7a892c329a7cc091060b67ebd1d0d306b446a74ba01ad",
+ "sha256:4e1cce9489449a1c6ff3c567f2113cdb41122f727e27a984950d004a88ef3c5c"
],
"index": "pypi",
- "version": "==0.11.0"
+ "version": "==0.11.1"
},
"send2trash": {
"hashes": [
@@ -1009,29 +977,29 @@
},
"shap": {
"hashes": [
- "sha256:022c8550214ba589af6771bc36df9b30e323f3f9b11b4fbe2dd3a3de853c99e0",
- "sha256:6a323bd726f8616cad6c1f3156208ce620911994a4fcc1886a662a5f299fdc84",
- "sha256:b173696e1b7f25f74446e9e70900f90df5697ae1ef967f9b3aa5b30db533027a",
- "sha256:dca8127016988d2b64895e8c2afcf8ebdef152e8e1e8bfe84201d41c89c09b0f"
+ "sha256:0457e7fb80d2398454a16d16c7cd7934003e8c8bd9c1e002d965fce6a3815e54",
+ "sha256:34913391184180f9359e2627131960a473d67143e94b7f649c75a2d0c7d4cd40",
+ "sha256:4cc1e1ac2e1e30aa9857fcf3fcfa0a6b2bf5e6aa0670c16a36bc28cd9b11aae5",
+ "sha256:8f23e2ee3c80774d8c0942ecbd71b4dc0c2beba6d3de41dfc3a86e55adb9d28a"
],
"index": "pypi",
- "version": "==0.37.0"
+ "version": "==0.38.1"
},
"six": {
"hashes": [
"sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259",
"sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"
],
- "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'",
"version": "==1.15.0"
},
"slicer": {
"hashes": [
- "sha256:027e87357785c1031cbeb8447a3b8c324efbb9fa184a678a4f4d9e182a62002d",
- "sha256:c82500e0120e648dcd541f785e1c04a35fa9cd61baed5cf3f83e6b6b21667114"
+ "sha256:0b94faa5251c0f23782c03f7b7eedda91d80144059645f452c4bc80fab875976",
+ "sha256:f5d5f7b45f98d155b9c0ba6554fa9770c6b26d5793a3e77a1030fb56910ebeec"
],
"markers": "python_version >= '3.6'",
- "version": "==0.0.3"
+ "version": "==0.0.7"
},
"src": {
"editable": true,
@@ -1039,11 +1007,11 @@
},
"terminado": {
"hashes": [
- "sha256:3da72a155b807b01c9e8a5babd214e052a0a45a975751da3521a1c3381ce6d76",
- "sha256:c55f025beb06c2e2669f7ba5a04f47bb3304c30c05842d4981d8f0fc9ab3b4e3"
+ "sha256:23a053e06b22711269563c8bb96b36a036a86be8b5353e85e804f89b84aaa23f",
+ "sha256:89e6d94b19e4bc9dce0ffd908dfaf55cc78a9bf735934e915a4a96f65ac9704c"
],
"markers": "python_version >= '3.6'",
- "version": "==0.9.1"
+ "version": "==0.9.2"
},
"testpath": {
"hashes": [
@@ -1109,11 +1077,11 @@
},
"tqdm": {
"hashes": [
- "sha256:38b658a3e4ecf9b4f6f8ff75ca16221ae3378b2e175d846b6b33ea3a20852cf5",
- "sha256:d4f413aecb61c9779888c64ddf0c62910ad56dcbe857d8922bb505d4dbff0df1"
+ "sha256:4621f6823bab46a9cc33d48105753ccbea671b68bab2c50a9f0be23d4065cb5a",
+ "sha256:fe3d08dd00a526850568d542ff9de9bbc2a09a791da3c334f3213d8d0bbbca65"
],
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
- "version": "==4.54.1"
+ "version": "==4.56.0"
},
"traitlets": {
"hashes": [
@@ -1138,13 +1106,20 @@
],
"version": "==2.1"
},
+ "umap-learn": {
+ "hashes": [
+ "sha256:769c50629871384e85e952ad6f7086c49895f0390e1da8d2b2d7c60ad03a0ed0"
+ ],
+ "index": "pypi",
+ "version": "==0.5.0"
+ },
"urllib3": {
"hashes": [
- "sha256:19188f96923873c92ccb987120ec4acaa12f0461fa9ce5d3d0772bc965a39e08",
- "sha256:d8ff90d979214d7b4f8ce956e80f4028fc6860e4431f731ea4a8c08f23f99473"
+ "sha256:1b465e494e3e0d8939b50680403e3aedaa2bc434b7d5af64dfd3c958d7f5ae80",
+ "sha256:de3eedaad74a2683334e282005cd8d7f22f4d55fa690a2a1020a416cb0a47e73"
],
- "markers": "python_version != '3.4'",
- "version": "==1.26.2"
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'",
+ "version": "==1.26.3"
},
"wcwidth": {
"hashes": [
@@ -1254,11 +1229,11 @@
},
"bleach": {
"hashes": [
- "sha256:52b5919b81842b1854196eaae5ca29679a2f2e378905c346d3ca8227c2c66080",
- "sha256:9f8ccbeb6183c6e6cddea37592dfb0167485c1e3b13b3363bc325aa8bda3adbd"
+ "sha256:2d3b3f7e7d69148bb683b26a3f21eabcf62fa8fb7bc75d0e7a13bcecd9568d4d",
+ "sha256:c6ad42174219b64848e2e2cd434e44f56cd24a93a9b4f8bc52cfed55a1cd5aad"
],
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
- "version": "==3.2.1"
+ "version": "==3.2.3"
},
"certifi": {
"hashes": [
@@ -1310,10 +1285,11 @@
},
"chardet": {
"hashes": [
- "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae",
- "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"
+ "sha256:0d6f53a15db4120f2b08c94f11e7d93d2c911ee118b6b30a04ec3ee8310179fa",
+ "sha256:f864054d66fd9118f2e67044ac8981a54775ec5b67aed0441892edb553d21da5"
],
- "version": "==3.0.4"
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
+ "version": "==4.0.0"
},
"click": {
"hashes": [
@@ -1325,51 +1301,66 @@
},
"colorama": {
"hashes": [
- "sha256:7d73d2a99753107a36ac6b455ee49046802e59d9d076ef8e47b61499fa29afff",
- "sha256:e96da0d330793e2cb9485e9ddfd918d456036c7149416295932478192f4436a1"
+ "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b",
+ "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"
],
- "markers": "python_version != '3.4'",
- "version": "==0.4.3"
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
+ "version": "==0.4.4"
},
"coverage": {
"hashes": [
- "sha256:0203acd33d2298e19b57451ebb0bed0ab0c602e5cf5a818591b4918b1f97d516",
- "sha256:0f313707cdecd5cd3e217fc68c78a960b616604b559e9ea60cc16795c4304259",
- "sha256:1c6703094c81fa55b816f5ae542c6ffc625fec769f22b053adb42ad712d086c9",
- "sha256:1d44bb3a652fed01f1f2c10d5477956116e9b391320c94d36c6bf13b088a1097",
- "sha256:280baa8ec489c4f542f8940f9c4c2181f0306a8ee1a54eceba071a449fb870a0",
- "sha256:29a6272fec10623fcbe158fdf9abc7a5fa032048ac1d8631f14b50fbfc10d17f",
- "sha256:2b31f46bf7b31e6aa690d4c7a3d51bb262438c6dcb0d528adde446531d0d3bb7",
- "sha256:2d43af2be93ffbad25dd959899b5b809618a496926146ce98ee0b23683f8c51c",
- "sha256:381ead10b9b9af5f64646cd27107fb27b614ee7040bb1226f9c07ba96625cbb5",
- "sha256:47a11bdbd8ada9b7ee628596f9d97fbd3851bd9999d398e9436bd67376dbece7",
- "sha256:4d6a42744139a7fa5b46a264874a781e8694bb32f1d76d8137b68138686f1729",
- "sha256:50691e744714856f03a86df3e2bff847c2acede4c191f9a1da38f088df342978",
- "sha256:530cc8aaf11cc2ac7430f3614b04645662ef20c348dce4167c22d99bec3480e9",
- "sha256:582ddfbe712025448206a5bc45855d16c2e491c2dd102ee9a2841418ac1c629f",
- "sha256:63808c30b41f3bbf65e29f7280bf793c79f54fb807057de7e5238ffc7cc4d7b9",
- "sha256:71b69bd716698fa62cd97137d6f2fdf49f534decb23a2c6fc80813e8b7be6822",
- "sha256:7858847f2d84bf6e64c7f66498e851c54de8ea06a6f96a32a1d192d846734418",
- "sha256:78e93cc3571fd928a39c0b26767c986188a4118edc67bc0695bc7a284da22e82",
- "sha256:7f43286f13d91a34fadf61ae252a51a130223c52bfefb50310d5b2deb062cf0f",
- "sha256:86e9f8cd4b0cdd57b4ae71a9c186717daa4c5a99f3238a8723f416256e0b064d",
- "sha256:8f264ba2701b8c9f815b272ad568d555ef98dfe1576802ab3149c3629a9f2221",
- "sha256:9342dd70a1e151684727c9c91ea003b2fb33523bf19385d4554f7897ca0141d4",
- "sha256:9361de40701666b034c59ad9e317bae95c973b9ff92513dd0eced11c6adf2e21",
- "sha256:9669179786254a2e7e57f0ecf224e978471491d660aaca833f845b72a2df3709",
- "sha256:aac1ba0a253e17889550ddb1b60a2063f7474155465577caa2a3b131224cfd54",
- "sha256:aef72eae10b5e3116bac6957de1df4d75909fc76d1499a53fb6387434b6bcd8d",
- "sha256:bd3166bb3b111e76a4f8e2980fa1addf2920a4ca9b2b8ca36a3bc3dedc618270",
- "sha256:c1b78fb9700fc961f53386ad2fd86d87091e06ede5d118b8a50dea285a071c24",
- "sha256:c3888a051226e676e383de03bf49eb633cd39fc829516e5334e69b8d81aae751",
- "sha256:c5f17ad25d2c1286436761b462e22b5020d83316f8e8fcb5deb2b3151f8f1d3a",
- "sha256:c851b35fc078389bc16b915a0a7c1d5923e12e2c5aeec58c52f4aa8085ac8237",
- "sha256:cb7df71de0af56000115eafd000b867d1261f786b5eebd88a0ca6360cccfaca7",
- "sha256:cedb2f9e1f990918ea061f28a0f0077a07702e3819602d3507e2ff98c8d20636",
- "sha256:e8caf961e1b1a945db76f1b5fa9c91498d15f545ac0ababbe575cfab185d3bd8"
+ "sha256:03ed2a641e412e42cc35c244508cf186015c217f0e4d496bf6d7078ebe837ae7",
+ "sha256:04b14e45d6a8e159c9767ae57ecb34563ad93440fc1b26516a89ceb5b33c1ad5",
+ "sha256:0cdde51bfcf6b6bd862ee9be324521ec619b20590787d1655d005c3fb175005f",
+ "sha256:0f48fc7dc82ee14aeaedb986e175a429d24129b7eada1b7e94a864e4f0644dde",
+ "sha256:107d327071061fd4f4a2587d14c389a27e4e5c93c7cba5f1f59987181903902f",
+ "sha256:1375bb8b88cb050a2d4e0da901001347a44302aeadb8ceb4b6e5aa373b8ea68f",
+ "sha256:14a9f1887591684fb59fdba8feef7123a0da2424b0652e1b58dd5b9a7bb1188c",
+ "sha256:16baa799ec09cc0dcb43a10680573269d407c159325972dd7114ee7649e56c66",
+ "sha256:1b811662ecf72eb2d08872731636aee6559cae21862c36f74703be727b45df90",
+ "sha256:1ccae21a076d3d5f471700f6d30eb486da1626c380b23c70ae32ab823e453337",
+ "sha256:2f2cf7a42d4b7654c9a67b9d091ec24374f7c58794858bff632a2039cb15984d",
+ "sha256:322549b880b2d746a7672bf6ff9ed3f895e9c9f108b714e7360292aa5c5d7cf4",
+ "sha256:32ab83016c24c5cf3db2943286b85b0a172dae08c58d0f53875235219b676409",
+ "sha256:3fe50f1cac369b02d34ad904dfe0771acc483f82a1b54c5e93632916ba847b37",
+ "sha256:4a780807e80479f281d47ee4af2eb2df3e4ccf4723484f77da0bb49d027e40a1",
+ "sha256:4a8eb7785bd23565b542b01fb39115a975fefb4a82f23d407503eee2c0106247",
+ "sha256:5bee3970617b3d74759b2d2df2f6a327d372f9732f9ccbf03fa591b5f7581e39",
+ "sha256:60a3307a84ec60578accd35d7f0c71a3a971430ed7eca6567399d2b50ef37b8c",
+ "sha256:6625e52b6f346a283c3d563d1fd8bae8956daafc64bb5bbd2b8f8a07608e3994",
+ "sha256:66a5aae8233d766a877c5ef293ec5ab9520929c2578fd2069308a98b7374ea8c",
+ "sha256:68fb816a5dd901c6aff352ce49e2a0ffadacdf9b6fae282a69e7a16a02dad5fb",
+ "sha256:6b588b5cf51dc0fd1c9e19f622457cc74b7d26fe295432e434525f1c0fae02bc",
+ "sha256:6c4d7165a4e8f41eca6b990c12ee7f44fef3932fac48ca32cecb3a1b2223c21f",
+ "sha256:6d2e262e5e8da6fa56e774fb8e2643417351427604c2b177f8e8c5f75fc928ca",
+ "sha256:6d9c88b787638a451f41f97446a1c9fd416e669b4d9717ae4615bd29de1ac135",
+ "sha256:755c56beeacac6a24c8e1074f89f34f4373abce8b662470d3aa719ae304931f3",
+ "sha256:7e40d3f8eb472c1509b12ac2a7e24158ec352fc8567b77ab02c0db053927e339",
+ "sha256:812eaf4939ef2284d29653bcfee9665f11f013724f07258928f849a2306ea9f9",
+ "sha256:84df004223fd0550d0ea7a37882e5c889f3c6d45535c639ce9802293b39cd5c9",
+ "sha256:859f0add98707b182b4867359e12bde806b82483fb12a9ae868a77880fc3b7af",
+ "sha256:87c4b38288f71acd2106f5d94f575bc2136ea2887fdb5dfe18003c881fa6b370",
+ "sha256:89fc12c6371bf963809abc46cced4a01ca4f99cba17be5e7d416ed7ef1245d19",
+ "sha256:9564ac7eb1652c3701ac691ca72934dd3009997c81266807aef924012df2f4b3",
+ "sha256:9754a5c265f991317de2bac0c70a746efc2b695cf4d49f5d2cddeac36544fb44",
+ "sha256:a565f48c4aae72d1d3d3f8e8fb7218f5609c964e9c6f68604608e5958b9c60c3",
+ "sha256:a636160680c6e526b84f85d304e2f0bb4e94f8284dd765a1911de9a40450b10a",
+ "sha256:a839e25f07e428a87d17d857d9935dd743130e77ff46524abb992b962eb2076c",
+ "sha256:b62046592b44263fa7570f1117d372ae3f310222af1fc1407416f037fb3af21b",
+ "sha256:b7f7421841f8db443855d2854e25914a79a1ff48ae92f70d0a5c2f8907ab98c9",
+ "sha256:ba7ca81b6d60a9f7a0b4b4e175dcc38e8fef4992673d9d6e6879fd6de00dd9b8",
+ "sha256:bb32ca14b4d04e172c541c69eec5f385f9a075b38fb22d765d8b0ce3af3a0c22",
+ "sha256:c0ff1c1b4d13e2240821ef23c1efb1f009207cb3f56e16986f713c2b0e7cd37f",
+ "sha256:c669b440ce46ae3abe9b2d44a913b5fd86bb19eb14a8701e88e3918902ecd345",
+ "sha256:c67734cff78383a1f23ceba3b3239c7deefc62ac2b05fa6a47bcd565771e5880",
+ "sha256:c6809ebcbf6c1049002b9ac09c127ae43929042ec1f1dbd8bb1615f7cd9f70a0",
+ "sha256:cd601187476c6bed26a0398353212684c427e10a903aeafa6da40c63309d438b",
+ "sha256:ebfa374067af240d079ef97b8064478f3bf71038b78b017eb6ec93ede1b6bcec",
+ "sha256:fbb17c0d0822684b7d6c09915677a32319f16ff1115df5ec05bdcaaee40b35f3",
+ "sha256:fff1f3a586246110f34dc762098b5afd2de88de507559e63553d7da643053786"
],
"index": "pypi",
- "version": "==5.3"
+ "version": "==5.4"
},
"dataclasses": {
"hashes": [
@@ -1396,12 +1387,11 @@
},
"docutils": {
"hashes": [
- "sha256:6c4f696463b79f1fb8ba0c594b63840ebd41f059e92b31957c46b74a4599b6d0",
- "sha256:9e4d7ecfc600058e07ba661411a2b7de2fd0fafa17d1a7f7361cd47b1175c827",
- "sha256:a2aeea129088da402665e92e0b25b04b073c04b2dce4ab65caaa38b7ce2e1a99"
+ "sha256:0c5b78adfbf7762415433f5515cd5c9e762339e23369dbe8000d84a4bf4ab3af",
+ "sha256:c2de3a60e9e7d07be26b7f2b00ca0309c207e06c100f9cc2a94931fc75a478fc"
],
- "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'",
- "version": "==0.15.2"
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
+ "version": "==0.16"
},
"entrypoints": {
"hashes": [
@@ -1429,11 +1419,11 @@
},
"gitpython": {
"hashes": [
- "sha256:6eea89b655917b500437e9668e4a12eabdcf00229a0df1762aabd692ef9b746b",
- "sha256:befa4d101f91bad1b632df4308ec64555db684c360bd7d2130b4807d49ce86b8"
+ "sha256:42dbefd8d9e2576c496ed0059f3103dcef7125b9ce16f9d5f9c834aed44a1dac",
+ "sha256:867ec3dfb126aac0f8296b19fb63b8c4a399f32b4b6fafe84c4b10af5fa9f7b5"
],
"markers": "python_version >= '3.4'",
- "version": "==3.1.11"
+ "version": "==3.1.12"
},
"idna": {
"hashes": [
@@ -1453,19 +1443,19 @@
},
"importlib-metadata": {
"hashes": [
- "sha256:5c5a2720817414a6c41f0a49993908068243ae02c1635a228126519b509c8aed",
- "sha256:bf792d480abbd5eda85794e4afb09dd538393f7d6e6ffef6e9f03d2014cf9450"
+ "sha256:ace61d5fc652dc280e7b6b4ff732a9c2d40db2c0f92bc6cb74e07b73d53a1771",
+ "sha256:fa5daa4477a7414ae34e95942e4dd07f62adf589143c875c133c1e53c4eff38d"
],
"markers": "python_version < '3.8'",
- "version": "==3.3.0"
+ "version": "==3.4.0"
},
"ipykernel": {
"hashes": [
- "sha256:63b4b96c513e1138874934e3e783a8e5e13c02b9036e37107bfe042ac8955005",
- "sha256:e20ceb7e52cb4d250452e1230be76e0b2323f33bd46c6b2bc7abb6601740e182"
+ "sha256:4ed205700001a83b5832d4821c46a5733f1bf4b1c55744314ae3c756be6b6095",
+ "sha256:697103d218e9a8828025af7986e033c89e0b36e2b6eb84a5bda4739b9a27f3cb"
],
"markers": "python_version >= '3.5'",
- "version": "==5.4.2"
+ "version": "==5.4.3"
},
"ipython": {
"hashes": [
@@ -1484,11 +1474,11 @@
},
"jedi": {
"hashes": [
- "sha256:86ed7d9b750603e4ba582ea8edc678657fb4007894a12bcf6f4bb97892f31d20",
- "sha256:98cc583fa0f2f8304968199b01b6b4b94f469a1f4a74c1560506ca2a211378b5"
+ "sha256:18456d83f65f400ab0c2d3319e48520420ef43b23a086fdc05dff34132f0fb93",
+ "sha256:92550a404bad8afed881a137ec9a461fed49eca661414be45059329614ed0707"
],
- "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
- "version": "==0.17.2"
+ "markers": "python_version >= '3.6'",
+ "version": "==0.18.0"
},
"jinja2": {
"hashes": [
@@ -1507,11 +1497,11 @@
},
"jupyter-client": {
"hashes": [
- "sha256:49e390b36fe4b4226724704ea28d9fb903f1a3601b6882ce3105221cd09377a1",
- "sha256:c958d24d6eacb975c1acebb68ac9077da61b5f5c040f22f6849928ad7393b950"
+ "sha256:5eaaa41df449167ebba5e1cf6ca9b31f7fd4f71625069836e2e4fee07fe3cb13",
+ "sha256:649ca3aca1e28f27d73ef15868a7c7f10d6e70f761514582accec3ca6bb13085"
],
"markers": "python_version >= '3.5'",
- "version": "==6.1.7"
+ "version": "==6.1.11"
},
"jupyter-core": {
"hashes": [
@@ -1614,11 +1604,11 @@
},
"nbformat": {
"hashes": [
- "sha256:aa9450c16d29286dc69b92ea4913c1bffe86488f90184445996ccc03a2f60382",
- "sha256:f545b22138865bfbcc6b1ffe89ed5a2b8e2dc5d4fe876f2ca60d8e6f702a30f8"
+ "sha256:1d223e64a18bfa7cdf2db2e9ba8a818312fc2a0701d2e910b58df66809385a56",
+ "sha256:3949fdc8f5fa0b1afca16fb307546e78494fa7a7bceff880df8168eafda0e7ac"
],
"markers": "python_version >= '3.5'",
- "version": "==5.0.8"
+ "version": "==5.1.2"
},
"nest-asyncio": {
"hashes": [
@@ -1630,11 +1620,11 @@
},
"notebook": {
"hashes": [
- "sha256:3db37ae834c5f3b6378381229d0e5dfcbfb558d08c8ce646b1ad355147f5e91d",
- "sha256:508cf9dad7cdb3188f1aa27017dc78179029dfe83814fc505329f689bc2ab50f"
+ "sha256:0464b28e18e7a06cec37e6177546c2322739be07962dd13bf712bcb88361f013",
+ "sha256:25ad93c982b623441b491e693ef400598d1a46cdf11b8c9c0b3be6c61ebbb6cd"
],
"markers": "python_version >= '3.5'",
- "version": "==6.1.5"
+ "version": "==6.2.0"
},
"packaging": {
"hashes": [
@@ -1652,11 +1642,11 @@
},
"parso": {
"hashes": [
- "sha256:97218d9159b2520ff45eb78028ba8b50d2bc61dcc062a9682666f2dc4bd331ea",
- "sha256:caba44724b994a8a5e086460bb212abc5a8bc46951bf4a9a1210745953622eb9"
+ "sha256:15b00182f472319383252c18d5913b69269590616c947747bc50bf4ac768f410",
+ "sha256:8519430ad07087d4c997fda3a7918f7cfa27cb58972a8c89c2a0295a1c940e9e"
],
- "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
- "version": "==0.7.1"
+ "markers": "python_version >= '3.6'",
+ "version": "==0.8.1"
},
"pathspec": {
"hashes": [
@@ -1689,19 +1679,19 @@
},
"prompt-toolkit": {
"hashes": [
- "sha256:25c95d2ac813909f813c93fde734b6e44406d1477a9faef7c915ff37d39c0a8c",
- "sha256:7debb9a521e0b1ee7d2fe96ee4bd60ef03c6492784de0547337ca4433e46aa63"
+ "sha256:7e966747c18ececaec785699626b771c1ba8344c8d31759a1915d6b12fad6525",
+ "sha256:c96b30925025a7635471dc083ffb6af0cc67482a00611bd81aeaeeeb7e5a5e12"
],
"markers": "python_full_version >= '3.6.1'",
- "version": "==3.0.8"
+ "version": "==3.0.14"
},
"ptyprocess": {
"hashes": [
- "sha256:923f299cc5ad920c68f2bc0bc98b75b9f838b93b599941a6b63ddbc2476394c0",
- "sha256:d7cc528d76e76342423ca640335bd3633420dc1366f258cb31d05e865ef5ca1f"
+ "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35",
+ "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"
],
"markers": "os_name != 'nt'",
- "version": "==0.6.0"
+ "version": "==0.7.0"
},
"pycodestyle": {
"hashes": [
@@ -1729,18 +1719,18 @@
},
"pygments": {
"hashes": [
- "sha256:ccf3acacf3782cbed4a989426012f1c535c9a90d3a7fc3f16d231b9372d2b716",
- "sha256:f275b6c0909e5dafd2d6269a656aa90fa58ebf4a74f8fcf9053195d226b24a08"
+ "sha256:bc9591213a8f0e0ca1a5e68a479b4887fdc3e75d0774e5c71c31920c427de435",
+ "sha256:df49d09b498e83c1a73128295860250b0b7edd4c723a32e9bc0d295c7c2ec337"
],
"markers": "python_version >= '3.5'",
- "version": "==2.7.3"
+ "version": "==2.7.4"
},
"pyparsing": {
"hashes": [
"sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1",
"sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"
],
- "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'",
+ "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2'",
"version": "==2.4.7"
},
"pyrsistent": {
@@ -1755,50 +1745,49 @@
"sha256:73ebfe9dbf22e832286dafa60473e4cd239f8592f699aa5adaf10050e6e1823c",
"sha256:75bb3f31ea686f1197762692a9ee6a7550b59fc6ca3a1f4b5d7e32fb98e2da2a"
],
- "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'",
"version": "==2.8.1"
},
"pytz": {
"hashes": [
- "sha256:3e6b7dd2d1e0a59084bcee14a17af60c5c562cdc16d828e8eba2e683d3a7e268",
- "sha256:5c55e189b682d420be27c6995ba6edce0c0a77dd67bfbe2ae6607134d5851ffd"
+ "sha256:16962c5fb8db4a8f63a26646d8886e9d769b6c511543557bc84e9569fb9a9cb4",
+ "sha256:180befebb1927b16f6b57101720075a984c019ac16b1b7575673bea42c6c3da5"
],
- "version": "==2020.4"
+ "version": "==2020.5"
},
"pyzmq": {
"hashes": [
- "sha256:03638e46d486dd1c118e03c8bf9c634bdcae679600eac6573ae1e54906de7c2f",
- "sha256:0af84f34f27b5c6a0e906c648bdf46d4caebf9c8e6e16db0728f30a58141cad6",
- "sha256:0e554fd390021edbe0330b67226325a820b0319c5b45e1b0a59bf22ccc36e793",
- "sha256:1e9b75a119606732023a305d1c214146c09a91f8116f6aff3e8b7d0a60b6f0ff",
- "sha256:225774a48ed7414c0395335e7123ef8c418dbcbe172caabdc2496133b03254c2",
- "sha256:2742e380d186673eee6a570ef83d4568741945434ba36d92b98d36cdbfedbd44",
- "sha256:309d763d89ec1845c0e0fa14e1fb6558fd8c9ef05ed32baec27d7a8499cc7bb0",
- "sha256:46250789730489009fe139cbf576679557c070a6a3628077d09a4153d52fd381",
- "sha256:4d9259a5eb3f71abbaf61f165cacf42240bfeea3783bebd8255341abdfe206f1",
- "sha256:523d542823cabb94065178090e05347bd204365f6e7cb260f0071c995d392fc2",
- "sha256:53706f4a792cdae422121fb6a5e65119bad02373153364fc9d004cf6a90394de",
- "sha256:5efe02bdcc5eafcac0aab531292294298f0ab8d28ed43be9e507d0e09173d1a4",
- "sha256:63ee08e35be72fdd7568065a249a5b5cf51a2e8ab6ee63cf9f73786fcb9e710b",
- "sha256:6e24907857c80dc67692e31f5bf3ad5bf483ee0142cec95b3d47e2db8c43bdda",
- "sha256:7113eb93dcd0a5750c65d123ed0099e036a3a3f2dcb48afedd025ffa125c983b",
- "sha256:824ad5888331aadeac772bce27e1c2fbcab82fade92edbd234542c4e12f0dca9",
- "sha256:895695be380f0f85d2e3ec5ccf68a93c92d45bd298567525ad5633071589872c",
- "sha256:b62113eeb9a0649cebed9b21fd578f3a0175ef214a2a91dcb7b31bbf55805295",
- "sha256:bc7dd697356b31389d5118b9bcdef3e8d8079e8181800c4e8d72dccd56e1ff68",
- "sha256:bf755905a7d30d2749079611b9a89924c1f2da2695dc09ce221f42122c9808e3",
- "sha256:c63fafd2556d218368c51d18588f8e6f8d86d09d493032415057faf6de869b34",
- "sha256:c95dda497a7c1b1e734b5e8353173ca5dd7b67784d8821d13413a97856588057",
- "sha256:cc09c5cd1a4332611c8564d65e6a432dc6db3e10793d0254da9fa1e31d9ffd6d",
- "sha256:cfa54a162a7b32641665e99b2c12084555afe9fc8fe80ec8b2f71a57320d10e1",
- "sha256:d81184489369ec325bd50ba1c935361e63f31f578430b9ad95471899361a8253",
- "sha256:d92c7f41a53ece82b91703ea433c7d34143248cf0cead33aa11c5fc621c764bf",
- "sha256:dc2f48b575dff6edefd572f1ac84cf0c3f18ad5fcf13384de32df740a010594a",
- "sha256:f0beef935efe78a63c785bb21ed56c1c24448511383e3994927c8bb2caf5e714",
- "sha256:f110a4d3f8f01209eec304ed542f6c8054cce9b0f16dfe3d571e57c290e4e133"
+ "sha256:082abbb95936f7475cee098153191058350878e33b8fb1dbefc82264978297e4",
+ "sha256:098c13c6198913c2a0690235fa74d2e49161755f66b663beaec89651554cc79c",
+ "sha256:0a6890d626b4f95f276a2381aea8d3435bb25ef7a2735bbc74966b105b09e758",
+ "sha256:42ddd761ac71dd7a386849bceffdcf4f35798caf844b762693456fc55c19c721",
+ "sha256:43df5e2fe06e03f41649a48e6339045fe8c68feaedef700a54440551f0ba94a3",
+ "sha256:46ff042f883bb22242ba5a3817fbcb2ff0cc0990827b8f925d49c176b1cb7394",
+ "sha256:4a70ef4e3835333e020c697ebfe3e6be172dd4ef8fe19ad047cd88678c1259c5",
+ "sha256:530ee5571bea541ff68c6e92819a0da0bdab9457c9b637b6c142c267c02a799e",
+ "sha256:544963322b1cb650de3d2f45d81bc644e5d9ada6f8f1f5718d9837cda78ee948",
+ "sha256:62b3c8196b2fa106552b03ed8ea7b91e1047e9a614849c87aea468f0caac4076",
+ "sha256:664f075d38869c6117507193ae3f3d5319491900f11b344030345c11d74863f2",
+ "sha256:68f8120ba7ec704d5acfabdcd1328c37806d8a23e1688a7ae3f59193c3cd46e3",
+ "sha256:71ff9975f23a78c14a303bf4efd8b8924830a170a8eabcffff7f5e5a5b583b9e",
+ "sha256:7307f6efb568a20bb56662041555d08aa2cbc71df91638344b6a088c10b44da7",
+ "sha256:82f59dbbdc47987f7ce0daea4d6ee21059ab9d5896bd8110215736c62762cc7f",
+ "sha256:84ccd4d9f8839353278480d1f06372f5fd149abcb7621f85c4ebe0924acbd110",
+ "sha256:8b984feb536152009e2dc306140ec47f88dd85922063d9e9e8b07f4ff5a0832a",
+ "sha256:a0d3aaff782ee1d423e90604c2abe4e573062e9a2008b27c01c86d94f94dbfa7",
+ "sha256:a3da3d5a66545fa127ad12784babd78859656e0c9614324d40c72d4210aa5bbe",
+ "sha256:b4b7e6edea41257562e9d4b28e717ee04ef078720d46ddb4c2241b9b60dbecc2",
+ "sha256:b7f471ecead3c4b3c88d00eeff5d78f2b2a6a9f56dd33aa96620019d83fcc3dd",
+ "sha256:c34ec0218319f7a78b15315038125d08ab0b37ff1fe2ce002e70b7aafe1423cf",
+ "sha256:d91cbc637a34e1a72ebc47da8bf21a2e6c5e386d1b04143c07c8082258e9b430",
+ "sha256:dbccca5b77162f610727b664804216674b1974a7a65e03a6ed638a9434cdf2b2",
+ "sha256:efd3685579d93f01a742827d4d364df6a3c08df25e14ea091828e3f77d054f19",
+ "sha256:f91a6dd45678fa6bac889267328ed9cfec56e2adeab7af2dddfa8c7e9dab24de",
+ "sha256:fcb790ff9df5d85d059069a7847f5696ec9296b719ed3e7e675a61a7af390e2f",
+ "sha256:fe714a0aeee5d5f230cb67af8e584f243adce63f32e81519dd80f605d036feea"
],
- "markers": "python_version >= '3.5'",
- "version": "==20.0.0"
+ "markers": "python_version >= '3.6'",
+ "version": "==21.0.2"
},
"regex": {
"hashes": [
@@ -1848,11 +1837,11 @@
},
"requests": {
"hashes": [
- "sha256:7f1a0b932f4a60a1a65caa4263921bb7d9ee911957e0ae4a23a6dd08185ad5f8",
- "sha256:e786fa28d8c9154e6a4de5d46a1d921b8749f8b74e28bde23768e5e16eece998"
+ "sha256:27973dd4a904a4f13b263a19c866c13b92a39ed1c964655f025f3f8d3d75b804",
+ "sha256:c210084e36a42ae6b9219e00e48287def368a26d03a048ddad7bfee44f75871e"
],
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
- "version": "==2.25.0"
+ "version": "==2.25.1"
},
"send2trash": {
"hashes": [
@@ -1866,31 +1855,31 @@
"sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259",
"sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"
],
- "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'",
"version": "==1.15.0"
},
"smmap": {
"hashes": [
- "sha256:54c44c197c819d5ef1991799a7e30b662d1e520f2ac75c9efbeb54a742214cf4",
- "sha256:9c98bbd1f9786d22f14b3d4126894d56befb835ec90cef151af566c7e19b5d24"
+ "sha256:7bfcf367828031dc893530a29cb35eb8c8f2d7c8f2d0989354d75d24c8573714",
+ "sha256:84c2751ef3072d4f6b2785ec7ee40244c6f45eb934d9e543e2c51f1bd3d54c50"
],
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
- "version": "==3.0.4"
+ "version": "==3.0.5"
},
"snowballstemmer": {
"hashes": [
- "sha256:209f257d7533fdb3cb73bdbd24f436239ca3b2fa67d56f6ff88e86be08cc5ef0",
- "sha256:df3bac3df4c2c01363f3dd2cfa78cce2840a79b9f1c2d2de9ce8d31683992f52"
+ "sha256:b51b447bea85f9968c13b650126a888aabd4cb4463fca868ec596826325dedc2",
+ "sha256:e997baa4f2e9139951b6f4c631bad912dfd3c792467e2f03d7239464af90e914"
],
- "version": "==2.0.0"
+ "version": "==2.1.0"
},
"sphinx": {
"hashes": [
- "sha256:1e8d592225447104d1172be415bc2972bd1357e3e12fdc76edf2261105db4300",
- "sha256:d4e59ad4ea55efbb3c05cde3bfc83bfc14f0c95aa95c3d75346fcce186a47960"
+ "sha256:41cad293f954f7d37f803d97eb184158cfd90f51195131e94875bc07cd08b93c",
+ "sha256:c314c857e7cd47c856d2c5adff514ac2e6495f8b8e0f886a8a37e9305dfea0d8"
],
"index": "pypi",
- "version": "==3.3.1"
+ "version": "==3.4.3"
},
"sphinxcontrib-applehelp": {
"hashes": [
@@ -1942,11 +1931,11 @@
},
"terminado": {
"hashes": [
- "sha256:3da72a155b807b01c9e8a5babd214e052a0a45a975751da3521a1c3381ce6d76",
- "sha256:c55f025beb06c2e2669f7ba5a04f47bb3304c30c05842d4981d8f0fc9ab3b4e3"
+ "sha256:23a053e06b22711269563c8bb96b36a036a86be8b5353e85e804f89b84aaa23f",
+ "sha256:89e6d94b19e4bc9dce0ffd908dfaf55cc78a9bf735934e915a4a96f65ac9704c"
],
"markers": "python_version >= '3.6'",
- "version": "==0.9.1"
+ "version": "==0.9.2"
},
"testpath": {
"hashes": [
@@ -1960,7 +1949,7 @@
"sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b",
"sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"
],
- "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'",
+ "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2'",
"version": "==0.10.2"
},
"tornado": {
@@ -2019,38 +2008,38 @@
},
"typed-ast": {
"hashes": [
- "sha256:0666aa36131496aed8f7be0410ff974562ab7eeac11ef351def9ea6fa28f6355",
- "sha256:0c2c07682d61a629b68433afb159376e24e5b2fd4641d35424e462169c0a7919",
- "sha256:0d8110d78a5736e16e26213114a38ca35cb15b6515d535413b090bd50951556d",
- "sha256:249862707802d40f7f29f6e1aad8d84b5aa9e44552d2cc17384b209f091276aa",
- "sha256:24995c843eb0ad11a4527b026b4dde3da70e1f2d8806c99b7b4a7cf491612652",
- "sha256:269151951236b0f9a6f04015a9004084a5ab0d5f19b57de779f908621e7d8b75",
- "sha256:3742b32cf1c6ef124d57f95be609c473d7ec4c14d0090e5a5e05a15269fb4d0c",
- "sha256:4083861b0aa07990b619bd7ddc365eb7fa4b817e99cf5f8d9cf21a42780f6e01",
- "sha256:498b0f36cc7054c1fead3d7fc59d2150f4d5c6c56ba7fb150c013fbc683a8d2d",
- "sha256:4e3e5da80ccbebfff202a67bf900d081906c358ccc3d5e3c8aea42fdfdfd51c1",
- "sha256:6daac9731f172c2a22ade6ed0c00197ee7cc1221aa84cfdf9c31defeb059a907",
- "sha256:715ff2f2df46121071622063fc7543d9b1fd19ebfc4f5c8895af64a77a8c852c",
- "sha256:73d785a950fc82dd2a25897d525d003f6378d1cb23ab305578394694202a58c3",
- "sha256:7e4c9d7658aaa1fc80018593abdf8598bf91325af6af5cce4ce7c73bc45ea53d",
- "sha256:8c8aaad94455178e3187ab22c8b01a3837f8ee50e09cf31f1ba129eb293ec30b",
- "sha256:8ce678dbaf790dbdb3eba24056d5364fb45944f33553dd5869b7580cdbb83614",
- "sha256:92c325624e304ebf0e025d1224b77dd4e6393f18aab8d829b5b7e04afe9b7a2c",
- "sha256:aaee9905aee35ba5905cfb3c62f3e83b3bec7b39413f0a7f19be4e547ea01ebb",
- "sha256:b52ccf7cfe4ce2a1064b18594381bccf4179c2ecf7f513134ec2f993dd4ab395",
- "sha256:bcd3b13b56ea479b3650b82cabd6b5343a625b0ced5429e4ccad28a8973f301b",
- "sha256:c9e348e02e4d2b4a8b2eedb48210430658df6951fa484e59de33ff773fbd4b41",
- "sha256:d205b1b46085271b4e15f670058ce182bd1199e56b317bf2ec004b6a44f911f6",
- "sha256:d43943ef777f9a1c42bf4e552ba23ac77a6351de620aa9acf64ad54933ad4d34",
- "sha256:d5d33e9e7af3b34a40dc05f498939f0ebf187f07c385fd58d591c533ad8562fe",
- "sha256:d648b8e3bf2fe648745c8ffcee3db3ff903d0817a01a12dd6a6ea7a8f4889072",
- "sha256:f208eb7aff048f6bea9586e61af041ddf7f9ade7caed625742af423f6bae3298",
- "sha256:fac11badff8313e23717f3dada86a15389d0708275bddf766cca67a84ead3e91",
- "sha256:fc0fea399acb12edbf8a628ba8d2312f583bdbdb3335635db062fa98cf71fca4",
- "sha256:fcf135e17cc74dbfbc05894ebca928ffeb23d9790b3167a674921db19082401f",
- "sha256:fe460b922ec15dd205595c9b5b99e2f056fd98ae8f9f56b888e7a17dc2b757e7"
- ],
- "version": "==1.4.1"
+ "sha256:07d49388d5bf7e863f7fa2f124b1b1d89d8aa0e2f7812faff0a5658c01c59aa1",
+ "sha256:14bf1522cdee369e8f5581238edac09150c765ec1cb33615855889cf33dcb92d",
+ "sha256:240296b27397e4e37874abb1df2a608a92df85cf3e2a04d0d4d61055c8305ba6",
+ "sha256:36d829b31ab67d6fcb30e185ec996e1f72b892255a745d3a82138c97d21ed1cd",
+ "sha256:37f48d46d733d57cc70fd5f30572d11ab8ed92da6e6b28e024e4a3edfb456e37",
+ "sha256:4c790331247081ea7c632a76d5b2a265e6d325ecd3179d06e9cf8d46d90dd151",
+ "sha256:5dcfc2e264bd8a1db8b11a892bd1647154ce03eeba94b461effe68790d8b8e07",
+ "sha256:7147e2a76c75f0f64c4319886e7639e490fee87c9d25cb1d4faef1d8cf83a440",
+ "sha256:7703620125e4fb79b64aa52427ec192822e9f45d37d4b6625ab37ef403e1df70",
+ "sha256:8368f83e93c7156ccd40e49a783a6a6850ca25b556c0fa0240ed0f659d2fe496",
+ "sha256:84aa6223d71012c68d577c83f4e7db50d11d6b1399a9c779046d75e24bed74ea",
+ "sha256:85f95aa97a35bdb2f2f7d10ec5bbdac0aeb9dafdaf88e17492da0504de2e6400",
+ "sha256:8db0e856712f79c45956da0c9a40ca4246abc3485ae0d7ecc86a20f5e4c09abc",
+ "sha256:9044ef2df88d7f33692ae3f18d3be63dec69c4fb1b5a4a9ac950f9b4ba571606",
+ "sha256:963c80b583b0661918718b095e02303d8078950b26cc00b5e5ea9ababe0de1fc",
+ "sha256:987f15737aba2ab5f3928c617ccf1ce412e2e321c77ab16ca5a293e7bbffd581",
+ "sha256:9ec45db0c766f196ae629e509f059ff05fc3148f9ffd28f3cfe75d4afb485412",
+ "sha256:9fc0b3cb5d1720e7141d103cf4819aea239f7d136acf9ee4a69b047b7986175a",
+ "sha256:a2c927c49f2029291fbabd673d51a2180038f8cd5a5b2f290f78c4516be48be2",
+ "sha256:a38878a223bdd37c9709d07cd357bb79f4c760b29210e14ad0fb395294583787",
+ "sha256:b4fcdcfa302538f70929eb7b392f536a237cbe2ed9cba88e3bf5027b39f5f77f",
+ "sha256:c0c74e5579af4b977c8b932f40a5464764b2f86681327410aa028a22d2f54937",
+ "sha256:c1c876fd795b36126f773db9cbb393f19808edd2637e00fd6caba0e25f2c7b64",
+ "sha256:c9aadc4924d4b5799112837b226160428524a9a45f830e0d0f184b19e4090487",
+ "sha256:cc7b98bf58167b7f2db91a4327da24fb93368838eb84a44c472283778fc2446b",
+ "sha256:cf54cfa843f297991b7388c281cb3855d911137223c6b6d2dd82a47ae5125a41",
+ "sha256:d003156bb6a59cda9050e983441b7fa2487f7800d76bdc065566b7d728b4581a",
+ "sha256:d175297e9533d8d37437abc14e8a83cbc68af93cc9c1c59c2c292ec59a0697a3",
+ "sha256:d746a437cdbca200622385305aedd9aef68e8a645e385cc483bdc5e488f07166",
+ "sha256:e683e409e5c45d5c9082dc1daf13f6374300806240719f95dc783d1fc942af10"
+ ],
+ "version": "==1.4.2"
},
"typing-extensions": {
"hashes": [
@@ -2063,11 +2052,11 @@
},
"urllib3": {
"hashes": [
- "sha256:19188f96923873c92ccb987120ec4acaa12f0461fa9ce5d3d0772bc965a39e08",
- "sha256:d8ff90d979214d7b4f8ce956e80f4028fc6860e4431f731ea4a8c08f23f99473"
+ "sha256:1b465e494e3e0d8939b50680403e3aedaa2bc434b7d5af64dfd3c958d7f5ae80",
+ "sha256:de3eedaad74a2683334e282005cd8d7f22f4d55fa690a2a1020a416cb0a47e73"
],
- "markers": "python_version != '3.4'",
- "version": "==1.26.2"
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'",
+ "version": "==1.26.3"
},
"wcwidth": {
"hashes": [
diff --git a/data/processed/clusters_df_20201203.parquet b/data/processed/clusters_df_20201203.parquet
new file mode 100644
index 0000000..397627a
Binary files /dev/null and b/data/processed/clusters_df_20201203.parquet differ
diff --git a/data/processed/clusters_symptoms_df_20201203.parquet b/data/processed/clusters_symptoms_df_20201203.parquet
new file mode 100644
index 0000000..2c3c9e2
Binary files /dev/null and b/data/processed/clusters_symptoms_df_20201203.parquet differ
diff --git a/data/processed/diagnoses_df_20201203.parquet b/data/processed/diagnoses_df_20201203.parquet
new file mode 100644
index 0000000..c92984a
Binary files /dev/null and b/data/processed/diagnoses_df_20201203.parquet differ
diff --git a/notebooks/stage/diagnosis-discovery-demo.ipynb b/notebooks/stage/diagnosis-discovery-demo.ipynb
new file mode 100644
index 0000000..04c0bc9
--- /dev/null
+++ b/notebooks/stage/diagnosis-discovery-demo.ipynb
@@ -0,0 +1,18423 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Potential Diagnosis Discovery\n",
+ "\n",
+ "The CCX team at Red Hat defines a **symptom** as a piece of health data reported by an OpenShift deployment, that could indicate there is something wrong with that deployment. Examples of symptoms include alerts, failing operators, pre-defined rules being triggered, etc. A particular combination of symptoms which is found to occur in several deployments, and which could be indicative of a specific issue, is called a **potential diagnosis**.\n",
+ "\n",
+ "In this notebook, we will investigate the use of machine learning for finding such combinations of symptoms that could be used as potential diagnoses. Broadly speaking, we will first try using clustering to find groups of deployments that show similar symptoms. Then, we will explore frequent pattern mining to find the combinations seen most often in each cluster. Lastly, we will try to determine the \"defining\" symptoms and symptom combinations for deployments in each cluster. These are the results we want to present to subject matter experts as candidates for diagnosis definitions for the problems seen in deployments.\n",
+ "\n",
+ "Internally, the data we used for this experiment was that provided by customers' production OpenShift deployments. Since we cannot open source that data (for obvious reasons), in this notebook we will restrict ourselves to use the data collected from CI/CD deployments (which is already publicly accessible). Therefore, the results in this notebook might not accurately portray the effectiveness of this ML approach."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 28,
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2021-01-27T16:43:00.862394Z",
+ "start_time": "2021-01-27T16:43:00.590814Z"
+ },
+ "code_folding": [
+ 0
+ ]
+ },
+ "outputs": [],
+ "source": [
+ "# imports\n",
+ "import copy\n",
+ "import datetime as dt\n",
+ "\n",
+ "import numpy as np\n",
+ "import pandas as pd\n",
+ "\n",
+ "from umap import UMAP\n",
+ "from sklearn.cluster import DBSCAN\n",
+ "\n",
+ "import mlxtend.frequent_patterns\n",
+ "\n",
+ "import plotly\n",
+ "import plotly.express as px\n",
+ "from plotly import graph_objects as go\n",
+ "\n",
+ "import ipywidgets as widgets\n",
+ "from ipywidgets import interactive\n",
+ "from IPython.core.display import display, HTML"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2021-01-27T16:42:43.145675Z",
+ "start_time": "2021-01-27T16:42:43.142716Z"
+ },
+ "code_folding": []
+ },
+ "outputs": [],
+ "source": [
+ "# set this to False to just view images inside notebook only\n",
+ "# set this to True to also save the images them locally\n",
+ "SAVE_PLOTS = True"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2021-01-27T16:42:43.263937Z",
+ "start_time": "2021-01-27T16:42:43.147986Z"
+ },
+ "code_folding": []
+ },
+ "outputs": [],
+ "source": [
+ "# \"tag\" to identify images produced during current run of the notbeook\n",
+ "IMAGES_TAG = str(int(dt.datetime.now().timestamp()))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2021-01-27T16:42:43.273268Z",
+ "start_time": "2021-01-27T16:42:43.265948Z"
+ },
+ "code_folding": [
+ 0
+ ]
+ },
+ "outputs": [],
+ "source": [
+ "# visualization utils\n",
+ "def create_hoverinfo(row):\n",
+ " \"\"\"\n",
+ " Helper function for labelling data on plotly scatter3d\n",
+ " For input one-hot encoded row of symptoms, returns a string that is the\n",
+ " concatenation of the symptoms shown by this deployment, joined by \"
\"\n",
+ " The \"
\" ensures that only one symptom is displayed per line in the hover info box in plotly\n",
+ " \"\"\"\n",
+ " symptomlist = row[row != 0].index.tolist()\n",
+ " return \"
\".join(sorted(symptomlist))\n",
+ "\n",
+ "\n",
+ "# color scheme\n",
+ "custom_colors = copy.deepcopy(px.colors.qualitative.Dark24)\n",
+ "primary = custom_colors[0]\n",
+ "to_remove = [primary] + [custom_colors[i] for i in [5, 7]]\n",
+ "for t in to_remove:\n",
+ " custom_colors.remove(t)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Get Symptoms Data from CI/CD Deployments\n",
+ "\n",
+ "In this section, we will fetch the symptoms dataset. This is just a table describing which deployments are showing which symptoms. \n",
+ "\n",
+ "Internally this dataset is extracted from Kraken Reports, which provide a summary of health and usage status of customer deployments. Since the tools developed by CCX have not been open sourced yet, we won't be using them in this notebook. Instead, we will simply read the sample data that has already been extracted and provided in this repo."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2021-01-27T16:42:43.300109Z",
+ "start_time": "2021-01-27T16:42:43.275067Z"
+ },
+ "code_folding": []
+ },
+ "outputs": [],
+ "source": [
+ "# YYYYMMDD string that specifies the date from which we want data\n",
+ "DATE_PREFIX = \"20201203\""
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2021-01-27T16:42:43.402561Z",
+ "start_time": "2021-01-27T16:42:43.302231Z"
+ },
+ "code_folding": [
+ 0
+ ],
+ "scrolled": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "(565, 13)\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " cluster_id | \n",
+ " email_domain | \n",
+ " support | \n",
+ " managed | \n",
+ " initial_version | \n",
+ " current_version | \n",
+ " desired_version | \n",
+ " platform | \n",
+ " network_type | \n",
+ " install_type | \n",
+ " etc_objects_count | \n",
+ " anomaly_score | \n",
+ " current_version_maj_min | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 2 | \n",
+ " 0020a49e-d3c1-4d30-890e-3c988f03d3cd | \n",
+ " redhat.com | \n",
+ " Eval | \n",
+ " False | \n",
+ " 4.7.0-0.ci.test-2020-12-02-234216-ci-op-m3tr842i | \n",
+ " 4.7.0-0.ci.test-2020-12-02-234216-ci-op-m3tr842i | \n",
+ " 4.7.0-0.ci.test-2020-12-02-234216-ci-op-m3tr842i | \n",
+ " AWS | \n",
+ " OpenShiftSDN | \n",
+ " IPI | \n",
+ " 9606.0 | \n",
+ " NaN | \n",
+ " 4.7 | \n",
+ "
\n",
+ " \n",
+ " 25 | \n",
+ " 00e8050c-dc82-4a72-80c3-4b535243230f | \n",
+ " redhat.com | \n",
+ " Eval | \n",
+ " False | \n",
+ " 4.7.0-0.ci.test-2020-12-02-204557-ci-op-mxf8h1wz | \n",
+ " 4.7.0-0.ci.test-2020-12-02-204557-ci-op-mxf8h1wz | \n",
+ " 4.7.0-0.ci.test-2020-12-02-204557-ci-op-mxf8h1wz | \n",
+ " GCP | \n",
+ " OpenShiftSDN | \n",
+ " IPI | \n",
+ " 569.0 | \n",
+ " NaN | \n",
+ " 4.7 | \n",
+ "
\n",
+ " \n",
+ " 40 | \n",
+ " 013895d7-4d77-4522-9d87-fe26a324fdfe | \n",
+ " redhat.com | \n",
+ " Eval | \n",
+ " False | \n",
+ " 4.7.0-0.ci.test-2020-12-02-091239-ci-op-k21s380c | \n",
+ " 4.7.0-0.ci.test-2020-12-02-091239-ci-op-k21s380c | \n",
+ " 4.7.0-0.ci.test-2020-12-02-091239-ci-op-k21s380c | \n",
+ " AWS | \n",
+ " OpenShiftSDN | \n",
+ " IPI | \n",
+ " 569.0 | \n",
+ " NaN | \n",
+ " 4.7 | \n",
+ "
\n",
+ " \n",
+ " 63 | \n",
+ " 01dcac72-145a-4897-928c-dc694c63dbc6 | \n",
+ " redhat.com | \n",
+ " Eval | \n",
+ " False | \n",
+ " 4.7.0-0.nightly-2020-12-03-012053 | \n",
+ " 4.7.0-0.nightly-2020-12-03-012053 | \n",
+ " 4.7.0-0.nightly-2020-12-03-012053 | \n",
+ " GCP | \n",
+ " OpenShiftSDN | \n",
+ " IPI | \n",
+ " 8329.0 | \n",
+ " NaN | \n",
+ " 4.7 | \n",
+ "
\n",
+ " \n",
+ " 99 | \n",
+ " 02e77350-8c29-474d-8515-feb81e6a6877 | \n",
+ " redhat.com | \n",
+ " Eval | \n",
+ " False | \n",
+ " 4.5.0-0.ci.test-2020-12-03-004835-ci-op-n1p0miw9 | \n",
+ " 4.5.0-0.ci.test-2020-12-03-004835-ci-op-n1p0miw9 | \n",
+ " 4.5.0-0.ci.test-2020-12-03-004835-ci-op-n1p0miw9 | \n",
+ " AWS | \n",
+ " OpenShiftSDN | \n",
+ " IPI | \n",
+ " 8968.0 | \n",
+ " NaN | \n",
+ " 4.5 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " cluster_id email_domain support managed \\\n",
+ "2 0020a49e-d3c1-4d30-890e-3c988f03d3cd redhat.com Eval False \n",
+ "25 00e8050c-dc82-4a72-80c3-4b535243230f redhat.com Eval False \n",
+ "40 013895d7-4d77-4522-9d87-fe26a324fdfe redhat.com Eval False \n",
+ "63 01dcac72-145a-4897-928c-dc694c63dbc6 redhat.com Eval False \n",
+ "99 02e77350-8c29-474d-8515-feb81e6a6877 redhat.com Eval False \n",
+ "\n",
+ " initial_version \\\n",
+ "2 4.7.0-0.ci.test-2020-12-02-234216-ci-op-m3tr842i \n",
+ "25 4.7.0-0.ci.test-2020-12-02-204557-ci-op-mxf8h1wz \n",
+ "40 4.7.0-0.ci.test-2020-12-02-091239-ci-op-k21s380c \n",
+ "63 4.7.0-0.nightly-2020-12-03-012053 \n",
+ "99 4.5.0-0.ci.test-2020-12-03-004835-ci-op-n1p0miw9 \n",
+ "\n",
+ " current_version \\\n",
+ "2 4.7.0-0.ci.test-2020-12-02-234216-ci-op-m3tr842i \n",
+ "25 4.7.0-0.ci.test-2020-12-02-204557-ci-op-mxf8h1wz \n",
+ "40 4.7.0-0.ci.test-2020-12-02-091239-ci-op-k21s380c \n",
+ "63 4.7.0-0.nightly-2020-12-03-012053 \n",
+ "99 4.5.0-0.ci.test-2020-12-03-004835-ci-op-n1p0miw9 \n",
+ "\n",
+ " desired_version platform network_type \\\n",
+ "2 4.7.0-0.ci.test-2020-12-02-234216-ci-op-m3tr842i AWS OpenShiftSDN \n",
+ "25 4.7.0-0.ci.test-2020-12-02-204557-ci-op-mxf8h1wz GCP OpenShiftSDN \n",
+ "40 4.7.0-0.ci.test-2020-12-02-091239-ci-op-k21s380c AWS OpenShiftSDN \n",
+ "63 4.7.0-0.nightly-2020-12-03-012053 GCP OpenShiftSDN \n",
+ "99 4.5.0-0.ci.test-2020-12-03-004835-ci-op-n1p0miw9 AWS OpenShiftSDN \n",
+ "\n",
+ " install_type etc_objects_count anomaly_score current_version_maj_min \n",
+ "2 IPI 9606.0 NaN 4.7 \n",
+ "25 IPI 569.0 NaN 4.7 \n",
+ "40 IPI 569.0 NaN 4.7 \n",
+ "63 IPI 8329.0 NaN 4.7 \n",
+ "99 IPI 8968.0 NaN 4.5 "
+ ]
+ },
+ "execution_count": 6,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# combine all reports to create clusters df\n",
+ "clusters_df = pd.read_parquet(\n",
+ " f\"../../data/processed/clusters_df_{DATE_PREFIX}.parquet\"\n",
+ ")\n",
+ "\n",
+ "print(clusters_df.shape)\n",
+ "clusters_df.head()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "**NOTE** When this notebook was run with production deployments data, we had several thousands of clusters per day. However, we have only ~550 ci clusters. So there is a lot less training data."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2021-01-27T16:42:43.423458Z",
+ "start_time": "2021-01-27T16:42:43.405216Z"
+ },
+ "code_folding": [
+ 0
+ ]
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "(2314, 2)\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " cluster_id | \n",
+ " symptom_id | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 21 | \n",
+ " 0020a49e-d3c1-4d30-890e-3c988f03d3cd | \n",
+ " alert|AlertmanagerReceiversNotConfigured | \n",
+ "
\n",
+ " \n",
+ " 169 | \n",
+ " 00e8050c-dc82-4a72-80c3-4b535243230f | \n",
+ " rule|operators_check|OPERATOR_ISSUE | \n",
+ "
\n",
+ " \n",
+ " 170 | \n",
+ " 00e8050c-dc82-4a72-80c3-4b535243230f | \n",
+ " alert|AlertmanagerReceiversNotConfigured | \n",
+ "
\n",
+ " \n",
+ " 171 | \n",
+ " 00e8050c-dc82-4a72-80c3-4b535243230f | \n",
+ " foc|monitoring|Degraded|UpdatingprometheusAdap... | \n",
+ "
\n",
+ " \n",
+ " 172 | \n",
+ " 00e8050c-dc82-4a72-80c3-4b535243230f | \n",
+ " rule|pods_check_containers|POD_CONTAINER_ISSUE | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " cluster_id \\\n",
+ "21 0020a49e-d3c1-4d30-890e-3c988f03d3cd \n",
+ "169 00e8050c-dc82-4a72-80c3-4b535243230f \n",
+ "170 00e8050c-dc82-4a72-80c3-4b535243230f \n",
+ "171 00e8050c-dc82-4a72-80c3-4b535243230f \n",
+ "172 00e8050c-dc82-4a72-80c3-4b535243230f \n",
+ "\n",
+ " symptom_id \n",
+ "21 alert|AlertmanagerReceiversNotConfigured \n",
+ "169 rule|operators_check|OPERATOR_ISSUE \n",
+ "170 alert|AlertmanagerReceiversNotConfigured \n",
+ "171 foc|monitoring|Degraded|UpdatingprometheusAdap... \n",
+ "172 rule|pods_check_containers|POD_CONTAINER_ISSUE "
+ ]
+ },
+ "execution_count": 7,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# combine symptoms data collected at all time intervals for the current date\n",
+ "clusters_symptoms_df = pd.read_parquet(\n",
+ " f\"../../data/processed/clusters_symptoms_df_{DATE_PREFIX}.parquet\"\n",
+ ")\n",
+ "\n",
+ "print(clusters_symptoms_df.shape)\n",
+ "clusters_symptoms_df.head()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "**NOTE** You may notice that some clusters are not included in this df. That is because there are no symptoms recorded for them"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Apply Known Diagnoses\n",
+ "\n",
+ "In this section, we will apply the known diagnoses to the symptoms data. That is, for each deployment, check whether the symptoms correspond to the definition of a known diagnosis. If they do, then label the deployment with that particular diagnosis.\n",
+ "\n",
+ "By default, the diagnosis definitions used are the ones defined in the \"Symptoms and Diagnoses Walkthrough\" notebook on the kraken repo (see screenshots below). Again, since CCX tools have not been open sourced yet, we will use the labels for the sample data already extracted and provided in this repo.\n",
+ "\n",
+ "**NOTE** The diagnosis labels will **_NOT_** be used to train the ML models. Rather, they are here for evaluation and validation purpose, i.e. to compare the output of ML models against human definted diagnoses,."
+ ]
+ },
+ {
+ "attachments": {
+ "Screenshot%20from%202021-01-26%2022-04-35.png": {
+ "image/png": "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eqRkMhm2b9/+WO5hJ3qc0tPTcebMGej1eqxdu9ZrAZfeSi6XY9OmTV47YQGA999/HxERESgrK/NazgzyT/4w1sTHxyMhIcEuifODbt26BYPBgJSUFPul6g9JS0vDkCFOTjD6iClTpuDll19+bLc19Ub+NiaNGDEC+fn5XrmY2IFjEj1uTz31FIqKinxeNZF+/7Zu3Wqr1u6IRqNBY2MjEhISMGXKlG5/k1FRUSgqKkJ0tH0FSInZbBEBAf47GFPvd/DgQQwfPhzDhg3zdVeIbH766Sfo9XqMHDmy24O1KxobG3HixAlMmDDBa1d1qTPd7r8jSPn872LVjz8yGAwoKirCK6+84rWcX+RdZWVlWLp0KaZOnerZ6jFyC8ck8haOl95z9epVnDp1CpMnT7ZVl/YFY3kNjBdqEfKnN51vTOQmi0UwuERERERERERERO6xWAR+32tmiYiIiIiIiIjokWJwiYiIiIiIiIiI3MbgEhERERERERERuY3BJSIiIiIiIiIichuDS0RERERERERE5DYGl4iIiIiIiIiIyG0MLhERERERERERkdsYXCIiIiIiIiIiIrf5bXDp+vXrOHbsmK+7QURERERERETUp/ltcEkul2P+/PkoKSnxdVeIiIiIiIiIiPosvw0uRUREICkpCevWrfN1V4iIiIiIiIiI+iy/DS4BwFtvvYULFy6grKzM110hIiIiIiIiIuqT/Dq4NGLECERFRaGoqMjXXSEiIiIiIiIi6pP8OrgEALGxsTh9+rSvu0FERERERERE1Cf5fXDp2WefxZUrV2AwGHzdFSIiIiIiIiKiPsfvg0thYWEAAI1G4+OeEBERERERERH1PX4fXDKZTAAAmUzm454QEREREREREfU9fh9c0mg0kEgkthVMRERERERERETkOr8PLlVWVuL5559HYGCgr7tCRERERERERNTn+HVwyWw2o7y8HHFxcb7uChERERERERFRn+TXwaVTp05Bq9UiKSnJ110hIiIiIiIiIuqT/Dq4VFhYiAkTJuCZZ57xdVeIiIiIiIiIiPokvy2RVl1djeLiYuzdu9fXXSEiIiIiIiIi6rMkZrNFBARIfN2Px06n00Gv1yM6OtrXXSEiIiIiIiIi6pMsFuG/wSUiIiIiIiIiIvKMxSL8O+cSERERERERERF5RgZYo0xEREREREREREQ99f9RoXUQ6coVawAAAABJRU5ErkJggg=="
+ }
+ },
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "![Screenshot%20from%202021-01-26%2022-04-35.png](attachment:Screenshot%20from%202021-01-26%2022-04-35.png)\n",
+ "Figure: Definition of the \"sdn-issue\" diagnosis"
+ ]
+ },
+ {
+ "attachments": {
+ "Screenshot%20from%202021-01-26%2022-03-41.png": {
+ "image/png": "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"
+ }
+ },
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "![Screenshot%20from%202021-01-26%2022-03-41.png](attachment:Screenshot%20from%202021-01-26%2022-03-41.png)\n",
+ "Figure: Definition of the \"kubelet-down\" diagnosis"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2021-01-27T16:42:43.440921Z",
+ "start_time": "2021-01-27T16:42:43.425496Z"
+ },
+ "code_folding": [
+ 0
+ ]
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "(1527, 2)\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " cluster_id | \n",
+ " symptom_id | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 18 | \n",
+ " 0020a49e-d3c1-4d30-890e-3c988f03d3cd | \n",
+ " alert|AlertmanagerReceiversNotConfigured | \n",
+ "
\n",
+ " \n",
+ " 138 | \n",
+ " 00e8050c-dc82-4a72-80c3-4b535243230f | \n",
+ " rule|nodes_requirements_check|NODES_MINIMUM_RE... | \n",
+ "
\n",
+ " \n",
+ " 139 | \n",
+ " 00e8050c-dc82-4a72-80c3-4b535243230f | \n",
+ " foc|monitoring|Degraded|UpdatingprometheusAdap... | \n",
+ "
\n",
+ " \n",
+ " 140 | \n",
+ " 00e8050c-dc82-4a72-80c3-4b535243230f | \n",
+ " foc|version|Failing|ClusterOperatorDegraded|8c59 | \n",
+ "
\n",
+ " \n",
+ " 141 | \n",
+ " 00e8050c-dc82-4a72-80c3-4b535243230f | \n",
+ " foc|monitoring|Progressing|RollOutInProgress|f311 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " cluster_id \\\n",
+ "18 0020a49e-d3c1-4d30-890e-3c988f03d3cd \n",
+ "138 00e8050c-dc82-4a72-80c3-4b535243230f \n",
+ "139 00e8050c-dc82-4a72-80c3-4b535243230f \n",
+ "140 00e8050c-dc82-4a72-80c3-4b535243230f \n",
+ "141 00e8050c-dc82-4a72-80c3-4b535243230f \n",
+ "\n",
+ " symptom_id \n",
+ "18 alert|AlertmanagerReceiversNotConfigured \n",
+ "138 rule|nodes_requirements_check|NODES_MINIMUM_RE... \n",
+ "139 foc|monitoring|Degraded|UpdatingprometheusAdap... \n",
+ "140 foc|version|Failing|ClusterOperatorDegraded|8c59 \n",
+ "141 foc|monitoring|Progressing|RollOutInProgress|f311 "
+ ]
+ },
+ "execution_count": 8,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# get known diagnosis labels\n",
+ "diag_names = [\n",
+ " \"ignored-symptoms\",\n",
+ " \"sdn-issue\",\n",
+ " \"kubelet-down\",\n",
+ " \"BZ-1821905-DefaultSecurityContextConstraints_Mutated\",\n",
+ " \"4.3-major-upgrade-autoscaler\",\n",
+ "]\n",
+ "diagnoses_df = pd.read_parquet(\n",
+ " f\"../../data/processed/diagnoses_df_{DATE_PREFIX}.parquet\"\n",
+ ")\n",
+ "\n",
+ "print(diagnoses_df.shape)\n",
+ "diagnoses_df.head()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2021-01-27T16:42:43.455620Z",
+ "start_time": "2021-01-27T16:42:43.444017Z"
+ },
+ "code_folding": [
+ 0
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " cluster_id | \n",
+ " symptom_id | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 619 | \n",
+ " 034265cb-0256-4a34-8975-fad19d73cf66 | \n",
+ " diagnosis|sdn-issue | \n",
+ "
\n",
+ " \n",
+ " 34482 | \n",
+ " aacf11ec-249d-4837-a9ac-749913fc4943 | \n",
+ " diagnosis|sdn-issue | \n",
+ "
\n",
+ " \n",
+ " 34483 | \n",
+ " aacf11ec-249d-4837-a9ac-749913fc4943 | \n",
+ " diagnosis|kubelet-down | \n",
+ "
\n",
+ " \n",
+ " 362 | \n",
+ " 01dcac72-145a-4897-928c-dc694c63dbc6 | \n",
+ " diagnosis|sdn-issue | \n",
+ "
\n",
+ " \n",
+ " 363 | \n",
+ " 01dcac72-145a-4897-928c-dc694c63dbc6 | \n",
+ " diagnosis|kubelet-down | \n",
+ "
\n",
+ " \n",
+ " 4120 | \n",
+ " 15d71e6b-ccd9-4b3c-86c9-3f4e36d14499 | \n",
+ " diagnosis|sdn-issue | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " cluster_id symptom_id\n",
+ "619 034265cb-0256-4a34-8975-fad19d73cf66 diagnosis|sdn-issue\n",
+ "34482 aacf11ec-249d-4837-a9ac-749913fc4943 diagnosis|sdn-issue\n",
+ "34483 aacf11ec-249d-4837-a9ac-749913fc4943 diagnosis|kubelet-down\n",
+ "362 01dcac72-145a-4897-928c-dc694c63dbc6 diagnosis|sdn-issue\n",
+ "363 01dcac72-145a-4897-928c-dc694c63dbc6 diagnosis|kubelet-down\n",
+ "4120 15d71e6b-ccd9-4b3c-86c9-3f4e36d14499 diagnosis|sdn-issue"
+ ]
+ },
+ "execution_count": 9,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# how many ci/cd clusters matched the signature/definition of known diagnoses\n",
+ "diagnoses_df[diagnoses_df[\"symptom_id\"].str.startswith(\"diagnosis\")]"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "**NOTE** There are only 4 deployments with known diagnoses. So in addition to not having a ton of training data, we also don't have many labels."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Create Training Dataset\n",
+ "\n",
+ "In this section, we slice-and-dice the dataset. In the widgets output by the cell below,\n",
+ "\n",
+ "**1.** Use the first selection box to select the \"major.minor\" OpenShift version (e.g. `4.3`). This will keep only the deployments from that major.minor version in the dataset.\n",
+ "\n",
+ "**2.** Within a major.minor version, you can decide to keep only the deployments from specific patch versions (e.g. `4.3.2` and `4.3.3`). Use the second selection box to select the patch versions (by default, all will be included). Use `Ctrl + click` or `Shift + click` to select multiple.\n",
+ "\n",
+ "**3.** Optionally, if you wish to confine the dataset to deployments of a specific customer, use the drop down to select that customer's email domain.\n",
+ "\n",
+ "After slicing-dicing, we will change the format in which data is represented from a \"string\" representation to a \"one-hot encoded\" numeric representation. The result will be the final dataset that will be preprocessed and fed to ML models."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2021-01-27T16:42:43.558484Z",
+ "start_time": "2021-01-27T16:42:43.458336Z"
+ },
+ "code_folding": [
+ 0
+ ],
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "616354b199c44f1da42a54c4097cc183",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ "interactive(children=(Select(description='Major.Minor', options=('ALL ( 565 depls)', '4.7 ( 385 depls)', '4.6 …"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "2a16518cd19e4fa9949e466e9c9560ae",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ "interactive(children=(SelectMultiple(description='Patches', index=(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1…"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "c903e36e98a14fbcb8e7ba41cf0339c8",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ "interactive(children=(Dropdown(description='Email Domain', options=('ALL (565)', 'redhat.com (565 depls)'), v…"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# mapping from maj.min to all maj.min.patch\n",
+ "patches_per_majmin = clusters_df.groupby(\"current_version_maj_min\").apply(\n",
+ " lambda g: sorted(g[\"current_version\"].unique())\n",
+ ")\n",
+ "patches_per_majmin[\"ALL\"] = sorted(clusters_df[\"current_version\"].unique())\n",
+ "\n",
+ "# how many depls of each maj.min\n",
+ "depls_per_majmin = clusters_df[\n",
+ " clusters_df.cluster_id.isin(clusters_symptoms_df.cluster_id)\n",
+ "][\"current_version_maj_min\"].value_counts()\n",
+ "depls_per_majmin[\"ALL\"] = depls_per_majmin.sum()\n",
+ "\n",
+ "# add number of dpels info to maj.min names, sort by num depls\n",
+ "patches_per_majmin = patches_per_majmin.sort_index()\n",
+ "new_index = [\n",
+ " \"{0} ({1:4d} depls)\".format(val, ct)\n",
+ " for val, ct in depls_per_majmin.iteritems()\n",
+ "]\n",
+ "patches_per_majmin.index = sorted(new_index)\n",
+ "\n",
+ "\n",
+ "# func needed to ensure both select boxes are displayed\n",
+ "def do_nothing(dummy_input):\n",
+ " return\n",
+ "\n",
+ "\n",
+ "# func to update pathces shown based on maj.min selected\n",
+ "def select_patch_version(maj_min_version):\n",
+ " maj_min_patch_widget.options = patches_per_majmin[maj_min_version]\n",
+ " maj_min_patch_widget.value = patches_per_majmin[maj_min_version]\n",
+ "\n",
+ "\n",
+ "# widget to select maj.min, showing in descending order of # depls\n",
+ "maj_min_widget_options = sorted(\n",
+ " patches_per_majmin.index,\n",
+ " key=lambda x: int(x.rsplit(\" \", 1)[0].rsplit(\"(\")[-1]),\n",
+ " reverse=True,\n",
+ ")\n",
+ "maj_min_widget = widgets.Select(\n",
+ " options=maj_min_widget_options,\n",
+ " value=maj_min_widget_options[0],\n",
+ " description=\"Major.Minor\",\n",
+ ")\n",
+ "\n",
+ "# widget to select maj.min.patch, all selected by default\n",
+ "maj_min_patch_widget = widgets.SelectMultiple(\n",
+ " options=patches_per_majmin[maj_min_widget.value],\n",
+ " value=patches_per_majmin[maj_min_widget.value],\n",
+ " description=\"Patches\",\n",
+ ")\n",
+ "\n",
+ "# emails + count (how many depls of that email domain)\n",
+ "email_vc = clusters_df[\n",
+ " clusters_df.cluster_id.isin(clusters_symptoms_df.cluster_id)\n",
+ "][\"email_domain\"].value_counts()\n",
+ "emails_with_ct = []\n",
+ "for i, v in email_vc.items():\n",
+ " emails_with_ct.append(f\"{i} ({v} depls)\")\n",
+ "\n",
+ "# widget to select email domain, all selected by default\n",
+ "email_widget = widgets.Dropdown(\n",
+ " options=[f\"ALL ({(email_vc.sum())})\"] + emails_with_ct,\n",
+ " description=\"Email Domain\",\n",
+ ")\n",
+ "\n",
+ "# display all widgets\n",
+ "display(interactive(select_patch_version, maj_min_version=maj_min_widget))\n",
+ "display(interactive(do_nothing, dummy_input=maj_min_patch_widget))\n",
+ "display(interactive(do_nothing, dummy_input=email_widget))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "In the next cell, we reformat the data as follows: instead of having one row per (deployment, symptom) pair, we'll have one row per deployment and one column per possible symptom. A value of \"0\" in a column indicates that that deployment (row) does not show that symptom (column) and a value of \"1\" indicates that it does."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2021-01-27T16:42:43.612285Z",
+ "start_time": "2021-01-27T16:42:43.560165Z"
+ },
+ "code_folding": [
+ 0
+ ]
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The following is a glimpse of the sliced/diced and formatted dataset that will be fed to ML models:\n",
+ "Shape = (493, 162)\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " symptom_id | \n",
+ " alert|AlertmanagerReceiversNotConfigured | \n",
+ " alert|CloudCredentialOperatorDown | \n",
+ " alert|ClusterAutoscalerOperatorDown | \n",
+ " alert|ClusterNotUpgradeable | \n",
+ " alert|FluentdNodeDown | \n",
+ " alert|KubeAPIDown | \n",
+ " alert|KubeAPIErrorBudgetBurn | \n",
+ " alert|KubeAPIErrorsHigh | \n",
+ " alert|KubeClientErrors | \n",
+ " alert|KubeControllerManagerDown | \n",
+ " ... | \n",
+ " rule|nodes_pressure_check|NODE_PRESSURE | \n",
+ " rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET | \n",
+ " rule|ocp_version_end_of_life|OCP4X_BEYOND_EOL | \n",
+ " rule|operators_check|OPERATOR_ISSUE | \n",
+ " rule|pods_check_containers|POD_CONTAINER_ISSUE | \n",
+ " rule|pods_check|POD_ISSUE | \n",
+ " rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE | \n",
+ " rule|version_check|CLUSTER_VERSION_MISMATCH | \n",
+ " rule|version_forced|FORCED_VERSION_UPDATES | \n",
+ " rule|version_retarget|ABORTED_UPDATES_IN_RECENT_HISTORY | \n",
+ "
\n",
+ " \n",
+ " cluster_id | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 000167dc-b92b-4677-bcb9-28cf8b2eded3 | \n",
+ " 1.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " ... | \n",
+ " 0.0 | \n",
+ " 1.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ "
\n",
+ " \n",
+ " 0020a49e-d3c1-4d30-890e-3c988f03d3cd | \n",
+ " 1.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " ... | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ "
\n",
+ " \n",
+ " 00e8050c-dc82-4a72-80c3-4b535243230f | \n",
+ " 1.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 1.0 | \n",
+ " 0.0 | \n",
+ " ... | \n",
+ " 0.0 | \n",
+ " 1.0 | \n",
+ " 0.0 | \n",
+ " 1.0 | \n",
+ " 1.0 | \n",
+ " 1.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ "
\n",
+ " \n",
+ " 00ecb624-57ad-4f9d-8580-b6e1373c5a45 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " ... | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 1.0 | \n",
+ " 0.0 | \n",
+ " 1.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ "
\n",
+ " \n",
+ " 013895d7-4d77-4522-9d87-fe26a324fdfe | \n",
+ " 1.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " ... | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
5 rows × 162 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ "symptom_id alert|AlertmanagerReceiversNotConfigured \\\n",
+ "cluster_id \n",
+ "000167dc-b92b-4677-bcb9-28cf8b2eded3 1.0 \n",
+ "0020a49e-d3c1-4d30-890e-3c988f03d3cd 1.0 \n",
+ "00e8050c-dc82-4a72-80c3-4b535243230f 1.0 \n",
+ "00ecb624-57ad-4f9d-8580-b6e1373c5a45 0.0 \n",
+ "013895d7-4d77-4522-9d87-fe26a324fdfe 1.0 \n",
+ "\n",
+ "symptom_id alert|CloudCredentialOperatorDown \\\n",
+ "cluster_id \n",
+ "000167dc-b92b-4677-bcb9-28cf8b2eded3 0.0 \n",
+ "0020a49e-d3c1-4d30-890e-3c988f03d3cd 0.0 \n",
+ "00e8050c-dc82-4a72-80c3-4b535243230f 0.0 \n",
+ "00ecb624-57ad-4f9d-8580-b6e1373c5a45 0.0 \n",
+ "013895d7-4d77-4522-9d87-fe26a324fdfe 0.0 \n",
+ "\n",
+ "symptom_id alert|ClusterAutoscalerOperatorDown \\\n",
+ "cluster_id \n",
+ "000167dc-b92b-4677-bcb9-28cf8b2eded3 0.0 \n",
+ "0020a49e-d3c1-4d30-890e-3c988f03d3cd 0.0 \n",
+ "00e8050c-dc82-4a72-80c3-4b535243230f 0.0 \n",
+ "00ecb624-57ad-4f9d-8580-b6e1373c5a45 0.0 \n",
+ "013895d7-4d77-4522-9d87-fe26a324fdfe 0.0 \n",
+ "\n",
+ "symptom_id alert|ClusterNotUpgradeable \\\n",
+ "cluster_id \n",
+ "000167dc-b92b-4677-bcb9-28cf8b2eded3 0.0 \n",
+ "0020a49e-d3c1-4d30-890e-3c988f03d3cd 0.0 \n",
+ "00e8050c-dc82-4a72-80c3-4b535243230f 0.0 \n",
+ "00ecb624-57ad-4f9d-8580-b6e1373c5a45 0.0 \n",
+ "013895d7-4d77-4522-9d87-fe26a324fdfe 0.0 \n",
+ "\n",
+ "symptom_id alert|FluentdNodeDown \\\n",
+ "cluster_id \n",
+ "000167dc-b92b-4677-bcb9-28cf8b2eded3 0.0 \n",
+ "0020a49e-d3c1-4d30-890e-3c988f03d3cd 0.0 \n",
+ "00e8050c-dc82-4a72-80c3-4b535243230f 0.0 \n",
+ "00ecb624-57ad-4f9d-8580-b6e1373c5a45 0.0 \n",
+ "013895d7-4d77-4522-9d87-fe26a324fdfe 0.0 \n",
+ "\n",
+ "symptom_id alert|KubeAPIDown \\\n",
+ "cluster_id \n",
+ "000167dc-b92b-4677-bcb9-28cf8b2eded3 0.0 \n",
+ "0020a49e-d3c1-4d30-890e-3c988f03d3cd 0.0 \n",
+ "00e8050c-dc82-4a72-80c3-4b535243230f 0.0 \n",
+ "00ecb624-57ad-4f9d-8580-b6e1373c5a45 0.0 \n",
+ "013895d7-4d77-4522-9d87-fe26a324fdfe 0.0 \n",
+ "\n",
+ "symptom_id alert|KubeAPIErrorBudgetBurn \\\n",
+ "cluster_id \n",
+ "000167dc-b92b-4677-bcb9-28cf8b2eded3 0.0 \n",
+ "0020a49e-d3c1-4d30-890e-3c988f03d3cd 0.0 \n",
+ "00e8050c-dc82-4a72-80c3-4b535243230f 0.0 \n",
+ "00ecb624-57ad-4f9d-8580-b6e1373c5a45 0.0 \n",
+ "013895d7-4d77-4522-9d87-fe26a324fdfe 0.0 \n",
+ "\n",
+ "symptom_id alert|KubeAPIErrorsHigh \\\n",
+ "cluster_id \n",
+ "000167dc-b92b-4677-bcb9-28cf8b2eded3 0.0 \n",
+ "0020a49e-d3c1-4d30-890e-3c988f03d3cd 0.0 \n",
+ "00e8050c-dc82-4a72-80c3-4b535243230f 0.0 \n",
+ "00ecb624-57ad-4f9d-8580-b6e1373c5a45 0.0 \n",
+ "013895d7-4d77-4522-9d87-fe26a324fdfe 0.0 \n",
+ "\n",
+ "symptom_id alert|KubeClientErrors \\\n",
+ "cluster_id \n",
+ "000167dc-b92b-4677-bcb9-28cf8b2eded3 0.0 \n",
+ "0020a49e-d3c1-4d30-890e-3c988f03d3cd 0.0 \n",
+ "00e8050c-dc82-4a72-80c3-4b535243230f 1.0 \n",
+ "00ecb624-57ad-4f9d-8580-b6e1373c5a45 0.0 \n",
+ "013895d7-4d77-4522-9d87-fe26a324fdfe 0.0 \n",
+ "\n",
+ "symptom_id alert|KubeControllerManagerDown ... \\\n",
+ "cluster_id ... \n",
+ "000167dc-b92b-4677-bcb9-28cf8b2eded3 0.0 ... \n",
+ "0020a49e-d3c1-4d30-890e-3c988f03d3cd 0.0 ... \n",
+ "00e8050c-dc82-4a72-80c3-4b535243230f 0.0 ... \n",
+ "00ecb624-57ad-4f9d-8580-b6e1373c5a45 0.0 ... \n",
+ "013895d7-4d77-4522-9d87-fe26a324fdfe 0.0 ... \n",
+ "\n",
+ "symptom_id rule|nodes_pressure_check|NODE_PRESSURE \\\n",
+ "cluster_id \n",
+ "000167dc-b92b-4677-bcb9-28cf8b2eded3 0.0 \n",
+ "0020a49e-d3c1-4d30-890e-3c988f03d3cd 0.0 \n",
+ "00e8050c-dc82-4a72-80c3-4b535243230f 0.0 \n",
+ "00ecb624-57ad-4f9d-8580-b6e1373c5a45 0.0 \n",
+ "013895d7-4d77-4522-9d87-fe26a324fdfe 0.0 \n",
+ "\n",
+ "symptom_id rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET \\\n",
+ "cluster_id \n",
+ "000167dc-b92b-4677-bcb9-28cf8b2eded3 1.0 \n",
+ "0020a49e-d3c1-4d30-890e-3c988f03d3cd 0.0 \n",
+ "00e8050c-dc82-4a72-80c3-4b535243230f 1.0 \n",
+ "00ecb624-57ad-4f9d-8580-b6e1373c5a45 0.0 \n",
+ "013895d7-4d77-4522-9d87-fe26a324fdfe 0.0 \n",
+ "\n",
+ "symptom_id rule|ocp_version_end_of_life|OCP4X_BEYOND_EOL \\\n",
+ "cluster_id \n",
+ "000167dc-b92b-4677-bcb9-28cf8b2eded3 0.0 \n",
+ "0020a49e-d3c1-4d30-890e-3c988f03d3cd 0.0 \n",
+ "00e8050c-dc82-4a72-80c3-4b535243230f 0.0 \n",
+ "00ecb624-57ad-4f9d-8580-b6e1373c5a45 0.0 \n",
+ "013895d7-4d77-4522-9d87-fe26a324fdfe 0.0 \n",
+ "\n",
+ "symptom_id rule|operators_check|OPERATOR_ISSUE \\\n",
+ "cluster_id \n",
+ "000167dc-b92b-4677-bcb9-28cf8b2eded3 0.0 \n",
+ "0020a49e-d3c1-4d30-890e-3c988f03d3cd 0.0 \n",
+ "00e8050c-dc82-4a72-80c3-4b535243230f 1.0 \n",
+ "00ecb624-57ad-4f9d-8580-b6e1373c5a45 1.0 \n",
+ "013895d7-4d77-4522-9d87-fe26a324fdfe 0.0 \n",
+ "\n",
+ "symptom_id rule|pods_check_containers|POD_CONTAINER_ISSUE \\\n",
+ "cluster_id \n",
+ "000167dc-b92b-4677-bcb9-28cf8b2eded3 0.0 \n",
+ "0020a49e-d3c1-4d30-890e-3c988f03d3cd 0.0 \n",
+ "00e8050c-dc82-4a72-80c3-4b535243230f 1.0 \n",
+ "00ecb624-57ad-4f9d-8580-b6e1373c5a45 0.0 \n",
+ "013895d7-4d77-4522-9d87-fe26a324fdfe 0.0 \n",
+ "\n",
+ "symptom_id rule|pods_check|POD_ISSUE \\\n",
+ "cluster_id \n",
+ "000167dc-b92b-4677-bcb9-28cf8b2eded3 0.0 \n",
+ "0020a49e-d3c1-4d30-890e-3c988f03d3cd 0.0 \n",
+ "00e8050c-dc82-4a72-80c3-4b535243230f 1.0 \n",
+ "00ecb624-57ad-4f9d-8580-b6e1373c5a45 1.0 \n",
+ "013895d7-4d77-4522-9d87-fe26a324fdfe 0.0 \n",
+ "\n",
+ "symptom_id rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE \\\n",
+ "cluster_id \n",
+ "000167dc-b92b-4677-bcb9-28cf8b2eded3 0.0 \n",
+ "0020a49e-d3c1-4d30-890e-3c988f03d3cd 0.0 \n",
+ "00e8050c-dc82-4a72-80c3-4b535243230f 0.0 \n",
+ "00ecb624-57ad-4f9d-8580-b6e1373c5a45 0.0 \n",
+ "013895d7-4d77-4522-9d87-fe26a324fdfe 0.0 \n",
+ "\n",
+ "symptom_id rule|version_check|CLUSTER_VERSION_MISMATCH \\\n",
+ "cluster_id \n",
+ "000167dc-b92b-4677-bcb9-28cf8b2eded3 0.0 \n",
+ "0020a49e-d3c1-4d30-890e-3c988f03d3cd 0.0 \n",
+ "00e8050c-dc82-4a72-80c3-4b535243230f 0.0 \n",
+ "00ecb624-57ad-4f9d-8580-b6e1373c5a45 0.0 \n",
+ "013895d7-4d77-4522-9d87-fe26a324fdfe 0.0 \n",
+ "\n",
+ "symptom_id rule|version_forced|FORCED_VERSION_UPDATES \\\n",
+ "cluster_id \n",
+ "000167dc-b92b-4677-bcb9-28cf8b2eded3 0.0 \n",
+ "0020a49e-d3c1-4d30-890e-3c988f03d3cd 0.0 \n",
+ "00e8050c-dc82-4a72-80c3-4b535243230f 0.0 \n",
+ "00ecb624-57ad-4f9d-8580-b6e1373c5a45 0.0 \n",
+ "013895d7-4d77-4522-9d87-fe26a324fdfe 0.0 \n",
+ "\n",
+ "symptom_id rule|version_retarget|ABORTED_UPDATES_IN_RECENT_HISTORY \n",
+ "cluster_id \n",
+ "000167dc-b92b-4677-bcb9-28cf8b2eded3 0.0 \n",
+ "0020a49e-d3c1-4d30-890e-3c988f03d3cd 0.0 \n",
+ "00e8050c-dc82-4a72-80c3-4b535243230f 0.0 \n",
+ "00ecb624-57ad-4f9d-8580-b6e1373c5a45 0.0 \n",
+ "013895d7-4d77-4522-9d87-fe26a324fdfe 0.0 \n",
+ "\n",
+ "[5 rows x 162 columns]"
+ ]
+ },
+ "execution_count": 11,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# filter data and pivot so that each row is a deployment\n",
+ "\n",
+ "# keep only deployments of selected version\n",
+ "X_df = clusters_symptoms_df[\n",
+ " clusters_symptoms_df.cluster_id.isin(\n",
+ " clusters_df[\"cluster_id\"][\n",
+ " clusters_df[\"current_version\"].isin(maj_min_patch_widget.value)\n",
+ " ]\n",
+ " )\n",
+ "]\n",
+ "\n",
+ "# keep only deployments of selected email\n",
+ "EMAIL = email_widget.value.split()[0]\n",
+ "if EMAIL.lower() != \"all\":\n",
+ " X_df = X_df[\n",
+ " X_df.cluster_id.isin(\n",
+ " clusters_df[clusters_df[\"email_domain\"] == EMAIL].cluster_id\n",
+ " )\n",
+ " ]\n",
+ "\n",
+ "# drop nan rows, if any (ideally shouldnt exist)\n",
+ "nan_count = X_df.isna().sum().sum()\n",
+ "if nan_count != 0:\n",
+ " print(f\"Found {nan_count} nans in filtered X_df\")\n",
+ " X_df = X_df.dropna()\n",
+ "\n",
+ "# ================================ checks for pivot ================================ #\n",
+ "# def check_pivot(X_df, X_df_new):\n",
+ "# for n,g in X_df.groupby('cluster_id'):\n",
+ "# res = X_df_new.loc[n]\n",
+ "# if not res[res==1].index.difference(g['symptom_id'].values).empty:\n",
+ "# pdb.set_trace()\n",
+ "# return False\n",
+ "# return True\n",
+ "# pre = X_df['cluster_id'].nunique()\n",
+ "# ================================================================================== #\n",
+ "\n",
+ "# pivot so that each row represents a cluster id, and the columns are the symptoms\n",
+ "# NOTE: we need a numerical value column for pivot to work. assign value=1 dummy col\n",
+ "X_df = X_df.assign(value=1).pivot_table(\n",
+ " index=\"cluster_id\",\n",
+ " columns=X_df.columns.drop(\"cluster_id\").tolist(),\n",
+ " values=\"value\",\n",
+ ")\n",
+ "\n",
+ "# ================================ checks for pivot ================================ #\n",
+ "# post = len(X_df_new)\n",
+ "# assert pre==post\n",
+ "# assert check_pivot(X_df, X_df_new)\n",
+ "# ================================================================================== #\n",
+ "\n",
+ "X_df = X_df.fillna(value=0)\n",
+ "\n",
+ "# # add UPI/IPI info\n",
+ "# # NOTE: if there are nans for install_type for some depl ids in clusters_df,\n",
+ "# # those depl ids would still show up here, but with 0's in is_UPI and is_IPI\n",
+ "# X_df = X_df.assign(\n",
+ "# is_UPI=X_df.index.isin(\n",
+ "# clusters_df[\"cluster_id\"][\n",
+ "# clusters_df[\"install_type\"] == \"UPI\"\n",
+ "# ].unique()\n",
+ "# ).astype(np.float64)\n",
+ "# )\n",
+ "# X_df = X_df.assign(\n",
+ "# is_IPI=X_df.index.isin(\n",
+ "# clusters_df[\"cluster_id\"][\n",
+ "# clusters_df[\"install_type\"] == \"IPI\"\n",
+ "# ].unique()\n",
+ "# ).astype(np.float64)\n",
+ "# )\n",
+ "\n",
+ "print(\n",
+ " \"The following is a glimpse of the sliced/diced and formatted dataset that will be fed to ML models:\"\n",
+ ")\n",
+ "print(f\"Shape = {X_df.shape}\")\n",
+ "X_df.head()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Preprocess Data\n",
+ "\n",
+ "The raw one hot encoded dataframe of symptoms has a _lot_ of columns, i.e. it's very high dimensional. Many clustering algorithms perform suboptimally with high dimensional data ([curse of dimensionality](https://en.wikipedia.org/wiki/Curse_of_dimensionality)). Therefore, in this section we will perform dimensionality reduction.\n",
+ "\n",
+ "First, we will manually remove some features that are not as relevant for diagnosis discovery as others. Various approaches for feature selection were explored in [this](experimental/diagnosis_discovery_feature_selection_eda.ipynb) notebook. The best results (with customer data, not CI/CD data) were seen when we dropped the features that subject matter experts did not consider very informative.\n",
+ "\n",
+ "Next, we'll use the UMAP algorithm to create a 3-d representation of our data. Essentially, UMAP tries to create a low dimension representation in such a way that the \"patterns\" and \"relationships\" that exist in the data are preserved as much as possible. In other words, it should place deployments with similar symptoms close to one another, and those with different symptoms away from one another.\n",
+ "\n",
+ "**NOTE**: It's possible that there are better techniques for dimension reduction; UMAP here just serves as an example or a baseline. Exploring other techniques is out of the scope of this notebook (check out [this](https://github.com/chauhankaranraj/ocp4-anomaly-detection-internal/blob/dev/clustering/notebooks/symptoms_clustering_algos.ipynb) notebook for that)."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2021-01-27T16:42:43.641019Z",
+ "start_time": "2021-01-27T16:42:43.614433Z"
+ },
+ "code_folding": [
+ 0
+ ]
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Dropping symptoms:\n",
+ "\n",
+ "alert|openshift-cluster-version|ClusterOperatorDegraded\n",
+ "alert|openshift-cluster-version|ClusterOperatorDown\n",
+ "foc|version|Failing|ClusterOperatorDegraded|007c\n",
+ "foc|version|Failing|ClusterOperatorDegraded|8c59\n",
+ "foc|version|Progressing|ClusterOperatorDegraded|4696\n",
+ "rule|operators_check|OPERATOR_ISSUE\n",
+ "rule|pods_check|POD_ISSUE\n",
+ "rule|pods_check_containers|POD_CONTAINER_ISSUE\n",
+ "alert|AlertmanagerReceiversNotConfigured\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ "(382, 153)"
+ ]
+ },
+ "execution_count": 12,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# drop columns ccx believes are not very informative\n",
+ "ignored_symptoms = [\n",
+ " c\n",
+ " for c in X_df.columns\n",
+ " if any(i in c for i in [\"ClusterOperatorDown\", \"ClusterOperatorDegraded\"])\n",
+ "]\n",
+ "ignored_symptoms += [\n",
+ " \"rule|operators_check|OPERATOR_ISSUE\",\n",
+ " \"rule|pods_check|POD_ISSUE\",\n",
+ " \"rule|pods_check_containers|POD_CONTAINER_ISSUE\",\n",
+ "]\n",
+ "ignored_symptoms += [\"alert|AlertmanagerReceiversNotConfigured\"]\n",
+ "\n",
+ "print(\"Dropping symptoms:\\n\")\n",
+ "for i in ignored_symptoms:\n",
+ " print(i)\n",
+ "X_df = X_df.drop(ignored_symptoms, axis=1)\n",
+ "\n",
+ "# drop rows that are all 0s coz no useful data\n",
+ "X_df = X_df[X_df.sum(axis=1) != 0]\n",
+ "X_df.shape"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2021-01-27T16:42:55.588271Z",
+ "start_time": "2021-01-27T16:42:43.643014Z"
+ },
+ "code_folding": [],
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/opt/app-root/lib/python3.6/site-packages/umap/umap_.py:1530: UserWarning:\n",
+ "\n",
+ "gradient function is not yet implemented for hamming distance metric; inverse_transform will be unavailable\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "# define umap instance\n",
+ "umap_instance = UMAP(\n",
+ " n_components=3,\n",
+ " metric=\"hamming\",\n",
+ " n_neighbors=64,\n",
+ " min_dist=0.005,\n",
+ " random_state=42,\n",
+ ")\n",
+ "\n",
+ "# fit umap to our data and transform (reduce dimensions) the data using it\n",
+ "X_df_trans = umap_instance.fit_transform(X_df)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Visualize\n",
+ "\n",
+ "Visualizing the data will help us see any patterns or properties in the data. It could also give us a rough idea (based on the structure/layout of our dimension reduced data) on how well could any clustering algorithm possibly perform."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2021-01-27T16:42:56.411514Z",
+ "start_time": "2021-01-27T16:42:55.590337Z"
+ },
+ "code_folding": [
+ 0
+ ]
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Saving plot as '../../reports/figures_symptoms_hamming_all_diagnoses_20201203_1611765763.html'\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ " \n",
+ " "
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/vnd.plotly.v1+json": {
+ "config": {
+ "plotlyServerURL": "https://plot.ly"
+ },
+ "data": [
+ {
+ "customdata": [
+ "000167dc-b92b-4677-bcb9-28cf8b2eded3",
+ "00e8050c-dc82-4a72-80c3-4b535243230f",
+ "00ecb624-57ad-4f9d-8580-b6e1373c5a45",
+ "013895d7-4d77-4522-9d87-fe26a324fdfe",
+ "01427d31-d077-4f59-baae-f6eb3709d97b",
+ "017661cd-de64-4352-8ffe-e70b69965027",
+ "017d9336-b042-4e7d-a718-c5e2ed3d44a3",
+ "01dcac72-145a-4897-928c-dc694c63dbc6",
+ "01e6753c-206e-4295-97a0-b58627a38f03",
+ "022d5393-3557-44b7-820b-0e6a657a70be",
+ "02a78a9b-5460-4570-af0a-e3237c4237c1",
+ "02dee447-86cb-4ff6-a7c0-78560724b6b8",
+ "02e77350-8c29-474d-8515-feb81e6a6877",
+ "03022f48-21ae-45d8-a35d-796e075c4c24",
+ "034265cb-0256-4a34-8975-fad19d73cf66",
+ "036fd0c4-fdc1-4675-bbfe-3c5c3a7aff15",
+ "04197076-def0-4377-ac12-19ca9ad14a54",
+ "04d9e7a0-d723-4b8c-b2de-d4d805402279",
+ "0625c051-b467-428f-b349-898a76e34d07",
+ "067f23cf-43aa-4738-9309-3b07aa80a92d",
+ "06f1b300-3ac4-443e-95d7-ca7e406168a1",
+ "075253f0-1284-49d1-b240-cf341df5e4c3",
+ "077bde34-64aa-439b-ab11-e7bb074765ac",
+ "07ab669f-ecd3-4dcb-abf7-61bd7b5497ea",
+ "07cba83d-3b93-4e04-94ad-27e5d792ce77",
+ "07fe1099-84e0-47ba-bf4a-d97d55f18d93",
+ "0801286f-2bbd-4133-9617-cebdff248040",
+ "0926aa4a-13a2-476a-9113-5d55f34018e8",
+ "09302ee7-4513-4875-86f5-535fd09fab30",
+ "0a047c03-6611-4b11-9658-b56a89390dc4",
+ "0a0b8963-0e2b-4945-ad04-bf339047623d",
+ "0a3e106c-6768-487d-be2d-39b057313c2e",
+ "0ae3600a-8ad0-4960-a1e9-fd02a11c93f0",
+ "0b9820fb-3194-4d90-b4a2-ba9d9dbc72a6",
+ "0bb28b9b-79b5-4446-b534-43ac59ff1481",
+ "0c5503fa-1a30-4c48-b396-4fc7127893d2",
+ "0d81dfad-1549-4e35-bcb0-1e116995e0a0",
+ "0e50f47c-2f1b-46a5-850c-a3355288cea1",
+ "0ed72f1a-2922-42c9-873c-cd1fb0a96514",
+ "10f057b7-16e1-4e41-a96b-52d74a4b036b",
+ "1131ee6a-71a4-46b8-8138-fdd489d7cfe0",
+ "11445743-a545-4f7b-980a-2b462bf67dd4",
+ "117502d2-10ac-451a-bedc-dfee53f00e6a",
+ "118739a8-9d86-43c9-a3c5-41a81742ad89",
+ "11c7bcc5-b71e-4580-ab99-7e42022336a1",
+ "12ba5926-55ec-4c19-bf22-9103dc22d636",
+ "131bbca2-2acb-4d10-bbf2-f4cf508009f6",
+ "13667454-68b7-449f-81bc-367f0d40ce0c",
+ "139bb02a-2e61-49ba-8afa-de58cee335f5",
+ "143a71df-c655-49f3-96d4-01282534c7f1",
+ "15d71e6b-ccd9-4b3c-86c9-3f4e36d14499",
+ "177bb979-239f-4fbe-aac2-c3c4c30948da",
+ "17af723a-6691-46f8-98d1-af803ae8741f",
+ "1963acde-d493-430f-a70e-e71281e217c8",
+ "1a4cd49f-d095-45ae-a3d7-19f96d1b57f2",
+ "1b135a7a-dd17-4a4f-9cda-8384cd43db7f",
+ "1b895c92-db37-4981-b69c-5a6acbbf6bf7",
+ "1ba56859-ebea-461f-8641-1301b7afdb8c",
+ "1bf4b0b6-354c-46c9-b99c-7541d6378178",
+ "1d12afdf-2cce-4ee9-ac9a-c4d4660e4a77",
+ "1d90d328-c419-42d8-af86-ed1b066dafea",
+ "1dfce2ec-88ca-4d33-9252-fa0a21fe6969",
+ "202580af-d984-4d09-b53c-3a47d8ce6cdb",
+ "206d4f85-565a-4912-86e6-60d8effdd66b",
+ "2184c66f-924e-4504-9c15-637dca3ad3b8",
+ "222a7438-f8e2-4b11-a713-d572675582be",
+ "24bc14e9-93b9-448d-a855-753623fecbcf",
+ "258c53f2-c56f-4aff-a891-cfb295e89af3",
+ "263b8380-63b1-4207-8ad2-05557151fa12",
+ "26de89f2-ef43-490c-84e3-93c9a2080d19",
+ "2782ab31-4554-48df-902c-cce2dfde5e0d",
+ "2853cfe4-c68b-4225-b7ec-bb383b7794f1",
+ "2ab35237-ddaf-4774-895a-2540e0c04331",
+ "2abe83ff-b531-4639-9ce8-11e5f6ea16e2",
+ "2bf375ca-99a8-4906-9907-d61ba2befdf4",
+ "2c35e944-e5b1-4067-948e-f2eb0d5258c9",
+ "2cac5cdb-aa8b-46f4-b932-03134cbbe4e7",
+ "2d5acf77-d8ba-48ca-80ba-9a5465641c17",
+ "2e6d3bc4-636b-4844-8e4c-516694afab07",
+ "2e753c82-ebfb-4671-bc97-610766f6a584",
+ "2ee82b83-9810-4866-9eb8-f5e2e3367729",
+ "2f42addf-98b2-4fef-b39e-addd72460b1b",
+ "2fbcff46-e8a5-4484-93c4-655c6209d243",
+ "2fbd7291-8729-43e4-9ba2-49fdf05eeb99",
+ "307b0713-abce-4f4d-a1cd-d913afa17807",
+ "3413dd90-dbf6-4f9a-99d5-e4a53be4779a",
+ "346a88ef-b219-473c-9845-d71af4eaa920",
+ "34e3e7ac-dbf9-4d39-af71-ccb622f15e3e",
+ "3528dd41-5a20-4736-925b-be94bfb5ad98",
+ "352d8a12-7fe9-4af7-8630-4c5df967aae2",
+ "359c24ed-34d7-4c40-a630-719e66fe854d",
+ "35a9ab3e-ac0d-474a-9ecf-f504fad46767",
+ "362ca1a7-2e42-4258-b4e0-bdd936bbb311",
+ "375669cb-f5f3-4c98-a55d-e9d716ec9b49",
+ "39a1bb00-1a15-473f-aefb-9222007fb00c",
+ "3b0d6406-7957-4ad9-98b0-79ddc83c2d5b",
+ "3b596f83-1c95-4c51-bca1-48be0a1c4ed1",
+ "3be87d1a-298b-45db-bf66-5042422fc1a1",
+ "3e7193b2-2b58-4cae-8207-96d6d99a8012",
+ "3e7ab0cd-5cd1-42e3-90ae-0b3a39c75b51",
+ "3fb9d46d-a5a3-4d31-86eb-c058ccfad4d5",
+ "403c68bd-4953-4b3c-8be6-4e8b674921a0",
+ "41971f60-413d-42a2-a412-03b0c0ee3c5d",
+ "4220f455-30ed-4559-90b2-8e15f1d69fe7",
+ "4291db12-e40c-43a4-9cbc-945ab8a68c82",
+ "434cdbe7-911a-4cd7-a218-a6bbc5e5a47e",
+ "444a8760-ea00-46b9-9c91-ee5824382f35",
+ "446c9a39-9ac5-4b49-bf65-c256fac6d8b2",
+ "4497eba5-7787-4b0f-9484-428822739a78",
+ "44c72d60-7d0e-4c7c-938e-c42dd7a28db5",
+ "45c7192f-cc3a-4893-b3c4-3bde25fe072c",
+ "45f57b15-d2c6-4003-a230-c5b4186d3843",
+ "46155a9d-1330-49ae-aaa7-c46213e633e3",
+ "46b0b5f6-30b3-4825-b28f-d0e9dca3fa2c",
+ "470cc80f-8251-4060-a1f6-8e39cf7eac62",
+ "4871beb2-83a8-4909-a05a-377a0aaf527d",
+ "48f92b36-5f13-4df6-b4f9-65211e0ad550",
+ "4913c901-acb5-4797-aa0f-e9d95b888e89",
+ "49c4a94f-73b6-4d01-8089-95607c3ac705",
+ "4a4c4cbc-f465-4704-a970-a236e8984a2a",
+ "4b35497a-1970-4e97-b2a2-4aa19595452e",
+ "4b7ef91e-6a43-46f1-8f25-d43c3d4b7c03",
+ "4b84b009-46c9-4c71-9c06-30b54ca8f837",
+ "4ba16e7d-912d-407a-82e0-ddcfa9b68e8e",
+ "4bc4f8ba-a8b7-4bd8-b7ce-d206a9fffaac",
+ "4d1997d3-290b-4a9b-972a-27994db61beb",
+ "4db3427c-a233-49c1-8bb8-4c17eb8034bf",
+ "51ac26ba-f5a1-40c0-872e-49ef97e8af61",
+ "51f60812-8ba3-40b1-9b4a-77c2f33172c0",
+ "52149037-bf6a-4e60-bc7e-6abcf187866a",
+ "532aa7be-09cd-45ec-817f-95ef4ebf19c8",
+ "560fa45b-1367-425b-b5a4-b4dc66b69293",
+ "56147424-36d9-464a-87d8-03a4c9889bb3",
+ "562da8a7-ebf1-466a-be0e-a99ad6473c0c",
+ "56428039-9c90-490f-b7a0-e88ffe76c005",
+ "565ca940-82d4-41b5-ab4f-bce6ca2fe894",
+ "56721f1e-22de-46e0-be9b-d9fd7c75f2da",
+ "5795a6b3-417a-4b1f-9107-3b6e4d4fd514",
+ "57b96d06-ff1b-4ae4-864e-ef49ef80f4aa",
+ "593e8aa6-6760-4d47-868a-2f5d15d44e99",
+ "597d58e8-7316-48cf-b298-b16fcdffd179",
+ "59fe0aa8-8a02-49e1-9d10-e315cef77724",
+ "5a1c0d89-fb33-43cd-b25d-04db4ac04222",
+ "5a38aa5b-8d82-4152-bb40-6028ccd56548",
+ "5a8258a9-1992-4304-b786-114ef90709f1",
+ "5b0b6daf-c284-4fcb-8500-fe5633a7bea8",
+ "5c2a97d1-07f0-406a-a456-0c4c1c429da5",
+ "5c9dad2d-9146-4557-93d0-bfa481530c1e",
+ "5ca1c465-2fb1-4baf-8d5c-506ba3692dfd",
+ "5cdfbdf7-5970-4a2b-9e60-5e5c8bd9b34a",
+ "5cfd7901-11ca-423e-bde7-5779ca03ecb7",
+ "5db1c350-8bc5-4d19-bd72-f8155b76fdf3",
+ "5ddc8ee8-7cb8-4d95-9953-ee573e52b01b",
+ "5edf5484-c068-4be3-a902-84ad4dea25c1",
+ "5efdafdf-ec13-4a7c-bcae-8de93b304d00",
+ "62563bc7-da63-42a6-bbb2-1e5e3265e4f8",
+ "63014021-a9e1-46df-b926-4612b46d3b05",
+ "6441f67d-b986-472e-af2a-aff46a913b16",
+ "6494e8ba-b1aa-4280-8af6-2e635ea38e13",
+ "67543532-bac4-46ab-b29b-d838a47c72dc",
+ "683667a6-9ef4-4497-8693-a652fd3c4756",
+ "689d2b0d-2116-4795-93fd-25cc72d9fbee",
+ "68c16459-483b-40bd-b743-4b4e4f0c303a",
+ "68cc1c2d-c498-46a0-b2eb-921fcdc244af",
+ "68f112d3-1c3d-4d8f-b0ca-903cd72d0820",
+ "6a0c127a-8eec-4301-a16a-0f29f38f3581",
+ "6ab9cd7c-84ce-4676-acb8-b6d9cf7d4cb3",
+ "6c7d2373-853c-4547-bcaf-2a7d715acb12",
+ "6c7ddd05-4f0b-4a03-8972-48660095dd3c",
+ "6f0580f3-0537-488c-8dc7-2f7386802f59",
+ "6f120ef1-d4f8-4b5e-8a37-d95a0f4bef5e",
+ "6f5910c6-f9ea-4b8f-8c0c-bddca00356c0",
+ "705ab3d3-443c-49ba-a5f3-271d685d3c73",
+ "7065cf2c-c46f-44e9-9d79-e11693a80543",
+ "709db283-6a8d-4886-b132-98c77e30f47e",
+ "713f8d66-2f7f-4dec-9fc5-bed1851abf1c",
+ "7301abcd-a283-414e-bb7a-53e606831be7",
+ "73131cc4-f421-4fb4-a473-3807df2ea3fd",
+ "7386fc3f-de42-4e1c-8218-27c9579385ab",
+ "74587daa-1a4e-4438-84cf-09f8ef4a2154",
+ "74f24646-1581-4020-9b42-9ea006986058",
+ "76747c92-faf8-48ee-acd9-0d6395a00456",
+ "76d337a6-9783-4bdd-bbc4-1aa0af9249b0",
+ "7851338b-74f1-4043-92b0-2e0bafd3b710",
+ "78d23f68-b428-4b83-aead-401b33521830",
+ "78ee7623-680a-406c-a11f-48c7c6ba7883",
+ "7939ed7f-487f-472a-8dd2-05eb4aed5858",
+ "79fb55bd-d525-4e2e-ad89-60810920a172",
+ "7a30ac45-c017-48de-8a8b-9fc6fe3fd004",
+ "7af5ce29-9267-4f20-952e-180451cb7419",
+ "7b53bbce-2d33-481e-982a-b653ef3a9b1c",
+ "7bac7a66-f63a-4344-bc73-626a58c047c7",
+ "7c6989e0-1058-4b9e-a8ae-18e069a11bc4",
+ "7cbfa338-4df4-49ee-99a1-5817ebdf76c2",
+ "7cd56418-a88b-4745-ad4a-c9111cd3707d",
+ "7d39da83-d5e3-4d08-b02a-df068b91776a",
+ "7d9b6f1c-26e6-46b1-8ca0-1696dbe03ed7",
+ "7f2c1004-9a5b-4dbe-b351-1c0b35268648",
+ "7fc5aaad-906f-411b-9ea7-278f2fd2aaec",
+ "803ded60-5e5a-4221-b465-46a1ef0cbd76",
+ "80a2d474-2fa7-42af-9588-7a3cd4459f8e",
+ "80d643cb-31b5-400d-8ade-1658a1c21032",
+ "81d036bf-ba70-4410-a20d-acb8d68a1972",
+ "822106d4-8a95-49c9-bdd5-8b88965d8ab0",
+ "829ca3a0-69c4-40a1-8508-784135568ed6",
+ "84c00500-7615-4867-9995-654240256ee2",
+ "84c865c1-4301-4653-b73d-e7c71892c612",
+ "855ba28d-c36a-47c9-8bc8-b8ecb83d1f21",
+ "856d4d91-a539-4f04-b156-17dbb8b083e1",
+ "863cf1b9-7307-4612-8aaa-8aa47aef2f77",
+ "8681c54b-e875-401a-8076-ab580a6f5f29",
+ "8711acb7-5776-42cb-9f0c-e071db145b50",
+ "885d1a81-734e-4765-93bf-a527a73424f5",
+ "88fc34ba-8223-43c5-bce0-f45a94932d64",
+ "89a4706c-0b90-41ef-8c4e-7455b253304e",
+ "8aab2aca-1d46-4ac4-87d3-542d6fc9d5e8",
+ "8b79ba23-c02b-45f8-9bee-27f82dcadf37",
+ "8c4cde8d-1de4-47b6-be65-a3c872cd7d74",
+ "8d0b7856-1526-4147-aadb-407f079c3477",
+ "8db3077f-60a0-4a66-ad41-890567d52a7f",
+ "8df104ad-7adf-4850-b889-a0e4324b5cac",
+ "8df7f319-d5f6-49fa-9df7-01c9aea9d0fe",
+ "8ecd19e5-4f74-40ce-8ac6-1259d037c22a",
+ "9179a469-28e4-4eae-9762-97964adad2e0",
+ "92e24ec4-e057-4508-a1e3-aa66d4cfb365",
+ "94fff388-959b-4fe7-9faf-ddf9d278b228",
+ "9548e942-7c82-4e41-87c8-78a4519b5e31",
+ "956afc1f-ee88-4fae-8c50-635629af1349",
+ "9585308b-89cd-486b-87d7-eebc004f51e7",
+ "98bee7c3-6254-4f06-9c95-09257e8f196d",
+ "9980c1b3-d778-4813-8421-b99005a20605",
+ "99ac70e6-c103-42fb-ae6d-e6fb5acd0dd7",
+ "9a1b5593-5124-4ac5-bd1c-e7e185e43527",
+ "9d020a6c-5617-437b-8ccc-13918a31bcc1",
+ "9da10cd0-a5c2-43f1-907b-20894ed6dc7e",
+ "9fc2c21d-a13c-4dac-9d67-5c8946dc6e08",
+ "9fca228b-5e75-4200-aded-f3e896c98ff2",
+ "a0571fe1-dd5d-49c2-8a69-605397cd196f",
+ "a0d72a81-896e-4d48-bc87-8b5329baa173",
+ "a1769597-71aa-43b4-a525-92e71cf5882b",
+ "a1f4d801-8164-4bd9-9a41-4508661c0582",
+ "a2b088e2-c26a-4bd8-86bc-c1cdeff4ff5e",
+ "a3a2a859-6949-4d30-81d1-ada11d764671",
+ "a45cf093-6a5c-43fe-8d35-a99c7629b45a",
+ "a45fb89d-2e63-464e-bb9d-c75bbd407f69",
+ "a4e9ea2a-1be9-4cf3-91e3-b736d51ff577",
+ "a6b50ca7-8f81-4ac3-8432-03688ef6a581",
+ "a75495a0-53d4-4c3a-bd9f-16e11feee96a",
+ "a78e1833-9234-47c2-80b4-169a951f28ca",
+ "a8ec100e-b76c-474d-9a9b-5dfafc7e8441",
+ "a9d08919-a2e1-49c8-b17e-2bcdb7aefd2e",
+ "aa6b1b4f-881b-4317-93ea-596c738e7ffd",
+ "aacf11ec-249d-4837-a9ac-749913fc4943",
+ "aaed39a6-9f44-4276-8069-d2b67839a0e7",
+ "ac7022e6-2bd4-456c-8d78-beb70469b218",
+ "ad78fd9f-ef8a-43d0-9211-ceee02f5d666",
+ "ad9a6f93-c924-4476-bbac-df32e775ac34",
+ "adbb53d6-d024-452e-9d9b-ba7738d948ad",
+ "ade05133-5516-45f4-b79e-e7f5e660b2e6",
+ "ae367f95-cb50-4e03-abad-f4f7e168944a",
+ "afeb8eb3-898f-4cdb-a3ef-ab3a4987568e",
+ "afff3b42-9132-4518-aa68-24f94d0e9e41",
+ "b12ec028-fdde-43de-b1da-5c22826a7c65",
+ "b2161864-15dc-4ce3-b3f5-ee3af715c9d0",
+ "b3ba49ef-eb5f-4483-adbc-d3b70ca72c85",
+ "b43a7ba6-3161-439b-80bb-88acdaa2e9bd",
+ "b60cdb27-f910-4adb-8ca5-672fe0280e4b",
+ "b7ab4c53-4fcf-43a0-b69f-4a80e36135d7",
+ "b7c0830c-0f6f-4ceb-a3ae-647fa62ddc51",
+ "b850ce60-f4b8-47e5-ba16-4b32bb919ec6",
+ "b9ccf211-657f-4e7d-bd2e-747433cc68e8",
+ "ba33eba8-82e8-4494-b688-4fbae054d70a",
+ "ba4879f6-2c1d-492b-95b2-be7ab7146efe",
+ "baaa3dc4-9489-44b5-9f20-4b368e401b9a",
+ "bb18f4d8-faf6-4a92-9c91-4feb687029c4",
+ "bb7f4020-5032-4425-8e1c-1a487e599932",
+ "bbb174a6-361c-4301-a36f-ac5829407288",
+ "bca08c1f-1c9c-4771-911d-0992edc1ba18",
+ "bfe68641-4488-4a67-9e9d-9208588bf96f",
+ "c18d0632-d41e-4782-aa2c-311348002bb8",
+ "c2424ceb-d6cd-466e-8a24-e249c1da6613",
+ "c26b21b0-7326-4df6-b384-d59943635f8f",
+ "c28867a3-e8e6-471c-ac7b-1e7e349f9d25",
+ "c29c2145-34b5-4855-bf85-3de69ec3ef0f",
+ "c2e2b6b3-64be-4090-9f90-7848a348ad9c",
+ "c342ef60-2ef0-46de-857b-8d7f83eaf65e",
+ "c37d2385-7481-48ea-97c3-180d570469d9",
+ "c487533f-581d-4eed-88bf-2fea69666aae",
+ "c4ea5233-df0b-4856-8174-16595b9f3994",
+ "c4fc96fa-c77f-4a98-beca-8df506d11970",
+ "c653bbd4-880c-4dd7-83b6-46876531c4e3",
+ "c720fe02-c541-4a87-9ffc-351fd11dfe7f",
+ "c73d5634-c78a-4f44-9c8d-9d879a55aab5",
+ "c7e61571-f930-400d-a31f-7505345ebf8c",
+ "c84b060f-7e34-4c06-bb61-703ac2793b69",
+ "c85c0fdb-c7ab-4762-b5a8-f5081febe9d5",
+ "c953722b-ca38-46f9-92d4-218a31490340",
+ "c98f1697-0952-4da5-a443-1ca24a1a78ab",
+ "ca023e55-e92b-4aea-b3de-7b74db08ec49",
+ "caa6f44b-dc90-462c-a5bf-5d1654d270cd",
+ "cad907fa-b997-410e-a4c3-b0a7eeac9880",
+ "cc16de56-889f-4536-a196-5500305264c7",
+ "cc967684-f052-4ed9-b86e-1f287a36f58d",
+ "cca2f3fd-5686-45c3-9a64-5355e2ea421f",
+ "cd05ad54-41e8-4e67-8a5b-9589caa89892",
+ "cdb52d2e-b937-46ac-a6ae-9fbb153b6aea",
+ "ce82062b-53d2-4e42-b1e3-57e64990b9ed",
+ "cf9e5e27-6a7a-423a-8603-ff4061bc51b6",
+ "d0258a17-4399-480b-b633-596c72741c51",
+ "d11454d4-0d5d-4b4c-8eb8-4d5856a16980",
+ "d119e727-f1ab-49b9-862b-73a7a4dab252",
+ "d1939e4a-3a6d-4705-9d35-b515986727cf",
+ "d1d85a16-7186-4596-ae5d-a1e9932abca5",
+ "d2089b46-4446-4bd6-8cf7-5d99aac9c52a",
+ "d23546f2-9207-4e3c-af73-b0c81850f0b4",
+ "d263f7cf-27a6-4d15-bfd3-56044783b3d9",
+ "d280e934-b02d-48bd-b224-210f9ea20fcc",
+ "d282bc08-ca00-456f-84dd-33daadb3dd8f",
+ "d40c556d-dcc4-4d8a-ad26-5848a8a6dbbd",
+ "d491eb1a-7c7c-40dd-837a-561d403a82b1",
+ "d4a0f4c0-57aa-45cf-a717-032fcc532c30",
+ "d532e12c-f655-432f-a2e8-b49f0bc1a087",
+ "d5e27157-0ace-45a4-a296-3a1ac6e711fa",
+ "d6503dfe-856c-43dd-9848-b1e8b841df50",
+ "d86052b9-2e0f-4276-a4ae-0a9fdbd8514d",
+ "d8f66384-903c-48ad-be64-b49a2bd9aabb",
+ "d9395395-f246-4cab-ae1d-505211c446b6",
+ "da09e993-1661-47d5-bfeb-4715af5a6a23",
+ "daaed396-5201-4621-931e-494852cf8248",
+ "db7f6409-0ab0-4a3b-be9d-7b0794f7887a",
+ "deb1cf82-5076-43c4-b21c-b3ebf567ed8f",
+ "dece6130-4ae2-446c-93a8-73da23eccd53",
+ "ded575f0-480b-4d6c-9a6f-de56594edbbc",
+ "dfd3291e-e550-4960-b748-48bb15d0b0e3",
+ "e062a4e7-1629-4508-a433-9a6ac9ddf4bf",
+ "e0aa6aa1-4a84-445a-8c4a-2da058683aff",
+ "e0c8cc3e-4746-461d-8bbf-af884da3390c",
+ "e2d306d3-6643-4f80-82ee-77e9277f7524",
+ "e45c3232-0c41-453e-910a-da8cb8b1fbd3",
+ "e48f5eb4-777b-4de0-8186-7504af1431a5",
+ "e660f005-4d9a-4243-8af1-9a535df6b6bf",
+ "e7769325-1f7a-4328-b357-832736a6227d",
+ "e8510652-c560-4dda-b876-453d8aeb5826",
+ "e8f3e04a-d45b-40af-b8a4-5ede7d83f437",
+ "e90c3905-5e0a-4616-8d37-def0b995424f",
+ "e9598dae-8938-4cb7-b346-24bcb85f523f",
+ "e95d2e72-49f5-4a5f-ba85-903838468b42",
+ "e9b97d55-437c-45e0-85dd-108f923adb07",
+ "e9d7ff39-1b62-4aee-9494-f51d395f2ef3",
+ "ea340aa6-2bfe-4d63-b71b-2a930987a45e",
+ "ea70b1d4-eae9-4a1a-a23d-4d5e564e276b",
+ "eaad0788-7af4-4885-9d44-5ee82f852230",
+ "eb721536-4746-4618-b75a-5ac679a7647b",
+ "ec7e2358-59d0-4882-bce5-1e1783517eac",
+ "edddbe74-5280-446a-8c94-f1fdbd340a58",
+ "ee090aad-c491-4aa4-99f1-c14aca5d72a4",
+ "eef7aa97-4b23-41f6-9cac-32c33eccd9e6",
+ "f0038537-7aef-49f8-b21f-b152c5755404",
+ "f0a639f8-3d6f-419b-a257-e9a0c2e7890b",
+ "f0d72eeb-d9fd-4d7b-b92b-6b6920a22838",
+ "f10bc131-ccfd-4fe8-832d-8aa442faf573",
+ "f120ced6-0d37-4fa5-8749-5f1065b2a0e4",
+ "f1c202d1-55bc-44dd-9752-799562e21056",
+ "f1e1d121-a467-4409-be64-88dc48e10def",
+ "f20a75fa-4baa-4a1a-a35f-25866ba56982",
+ "f38fe275-366a-4c2b-a719-9d6a50dc34f3",
+ "f3c6dfef-a0f0-4e42-92bb-9268758ab84a",
+ "f41083a9-5d8b-49ad-a3a8-64ab04c7e62f",
+ "f45c2e00-2c52-4471-bc7b-63b6179257ea",
+ "f4d5f271-1576-4df9-ae42-462c2bf73ca9",
+ "f5b85ad5-abe0-42eb-84f9-cf2d70d085e2",
+ "f7bbd277-1d25-477e-aa84-2bd9aa74ab61",
+ "f8dcfdcc-a5a4-4154-808a-55539c240735",
+ "f912b681-97c4-48bb-a8ff-aed3b3ac1f25",
+ "f9a90f11-f700-44b9-a233-48a5b6d8cd78",
+ "f9f4cd7e-e9e3-4951-b24a-9109a6c5135e",
+ "fa6f46ba-109a-419f-ba8a-dd06dd7ed2f2",
+ "fd08c95b-f367-45be-8bf2-7c93bb74c52e",
+ "fd2c664f-3f59-4ffa-9a93-7f81d7fa9301",
+ "fdb730b7-27b8-441c-884f-4e4c87267c5e",
+ "ff4c3998-8cfa-4bd8-b2b8-7fa30e88748c",
+ "ff63c92c-6793-4981-b578-bff413d1554c"
+ ],
+ "hovertemplate": "_id: %{customdata}
%{text}",
+ "marker": {
+ "color": "#2E91E5",
+ "size": 2
+ },
+ "mode": "markers",
+ "name": "all_symptoms",
+ "text": [
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|KubeClientErrors
alert|default|AggregatedAPIDown
alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors
alert|openshift-monitoring|KubeContainerWaiting
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|prometheus-adapter
foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc
foc|monitoring|Progressing|RollOutInProgress|f311
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "alert|default|KubeClientCertificateExpiration
alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "foc|version|Failing|WorkloadNotAvailable|7a6a",
+ "rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|default|AggregatedAPIDown
alert|kube-system|TargetDown|crio
alert|kube-system|TargetDown|kubelet
alert|openshift-cluster-csi-drivers|KubeDaemonSetRolloutStuck
alert|openshift-cluster-node-tuning-operator|KubeDaemonSetRolloutStuck
alert|openshift-cluster-node-tuning-operator|NTOPodsNotReady
alert|openshift-dns|KubeDaemonSetRolloutStuck
alert|openshift-dns|TargetDown|dns-default
alert|openshift-image-registry|KubeDaemonSetRolloutStuck
alert|openshift-ingress-canary|KubeDaemonSetMisScheduled
alert|openshift-ingress-canary|KubeDaemonSetRolloutStuck
alert|openshift-ingress|KubeDeploymentReplicasMismatch
alert|openshift-ingress|KubePodNotReady
alert|openshift-machine-config-operator|KubeDaemonSetRolloutStuck
alert|openshift-machine-config-operator|TargetDown|machine-config-daemon
alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors
alert|openshift-monitoring|KubeDaemonSetRolloutStuck
alert|openshift-monitoring|KubeNodeNotReady
alert|openshift-monitoring|KubeNodeUnreachable
alert|openshift-monitoring|KubeStatefulSetReplicasMismatch
alert|openshift-monitoring|PrometheusNotConnectedToAlertmanagers
alert|openshift-monitoring|TargetDown|node-exporter
alert|openshift-monitoring|TargetDown|prometheus-operator
alert|openshift-multus|KubeDaemonSetRolloutStuck
alert|openshift-multus|TargetDown|network-metrics-service
alert|openshift-sdn|KubeDaemonSetRolloutStuck
alert|openshift-sdn|SDNPodNotReady
alert|openshift-sdn|TargetDown|sdn
rule|nodes_pressure_check|NODE_PRESSURE
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|FluentdNodeDown
alert|openshift-logging|KubeDaemonSetRolloutStuck
alert|openshift-logging|KubeDeploymentReplicasMismatch
alert|openshift-logging|KubePodNotReady
alert|openshift-logging|TargetDown|elasticsearch-metrics
alert|openshift-logging|TargetDown|fluentd",
+ "rule|ingress_operator_degraded_with_reason_ingresscontrollers|INGRESS_OPERATOR_DEGRADED_WITH_REASON_INGRESSCONTROLLERSDEGRADED",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator
rule|nodes_container_runtime_version_check|NODES_CONTAINER_RUNTIME_VERSION
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|kube-system|TargetDown|crio
alert|openshift-machine-api|MachineWithNoRunningPhase
alert|openshift-machine-api|MachineWithoutValidNode
alert|openshift-multus|KubeDaemonSetRolloutStuck
alert|openshift-multus|KubePodNotReady
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|default|KubeAPILatencyHigh
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|ThanosQueryGrpcClientErrorRate
alert|ThanosQueryHighDNSFailures
alert|default|KubeClientCertificateExpiration
alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed
alert|openshift-cluster-version|CannotRetrieveUpdates
alert|openshift-controller-manager|KubeContainerWaiting
alert|openshift-controller-manager|KubeDaemonSetRolloutStuck
alert|openshift-controller-manager|KubePodNotReady
alert|openshift-image-registry|KubeContainerWaiting
alert|openshift-image-registry|KubeJobCompletion
alert|openshift-kube-apiserver|KubeContainerWaiting
alert|openshift-kube-apiserver|KubePodNotReady
alert|openshift-multus|KubeContainerWaiting
alert|openshift-multus|KubeDaemonSetRolloutStuck
alert|openshift-multus|KubePodNotReady
alert|openshift-sdn|KubeDaemonSetRolloutStuck
alert|openshift-sdn|SDNPodNotReady
alert|openshift-sdn|TargetDown|sdn
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|KubeClientErrors
alert|openshift-image-registry|ImagePruningDisabled
alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors
foc|openshift-samples|Degraded|APIServerTimeoutError|327e
foc|version|Failing|MultipleErrors|3946
foc|version|Progressing|MultipleErrors|b12b
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator",
+ "rule|certificates_not_approved|CERTIFICATES_NOT_APPROVED",
+ "alert|ThanosQueryHighDNSFailures
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "foc|version|Progressing|DownloadingUpdate|41a9
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed
alert|openshift-cluster-version|CannotRetrieveUpdates
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|KubeAPIDown
alert|KubeControllerManagerDown
alert|KubeSchedulerDown
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|openshift-image-registry|ImagePruningDisabled
rule|ingress_operator_degraded_with_reason_ingresscontrollers|INGRESS_OPERATOR_DEGRADED_WITH_REASON_INGRESSCONTROLLERSDEGRADED
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "alert|default|KubeAPILatencyHigh
alert|openshift-image-registry|ImagePruningDisabled
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|openshift-monitoring|KubeNodeUnreachable",
+ "alert|openshift-operator-lifecycle-manager|FailingOperator
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|nodes_container_runtime_version_check|NODES_CONTAINER_RUNTIME_VERSION
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed
alert|openshift-cluster-version|CannotRetrieveUpdates
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|certificates_not_approved|CERTIFICATES_NOT_APPROVED",
+ "alert|openshift-image-registry|ImagePruningDisabled",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator
rule|nodes_kubelet_version_check|NODE_KUBELET_VERSION
rule|nodes_pressure_check|NODE_PRESSURE
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed
alert|openshift-cluster-version|CannotRetrieveUpdates
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|ThanosQueryGrpcClientErrorRate
alert|ThanosQueryHighDNSFailures
rule|nodes_container_runtime_version_check|NODES_CONTAINER_RUNTIME_VERSION
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|FluentdNodeDown
alert|openshift-logging|KubeDaemonSetRolloutStuck
alert|openshift-logging|KubeDeploymentReplicasMismatch
alert|openshift-logging|KubePodNotReady
alert|openshift-logging|TargetDown|elasticsearch-metrics
alert|openshift-logging|TargetDown|fluentd",
+ "rule|nodes_kubelet_version_check|NODE_KUBELET_VERSION
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|openshift-monitoring|KubeContainerWaiting
alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator",
+ "rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "alert|openshift-image-registry|ImagePruningDisabled
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_container_runtime_version_check|NODES_CONTAINER_RUNTIME_VERSION
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|ThanosQueryGrpcClientErrorRate
alert|openshift-dns|KubeDaemonSetRolloutStuck
alert|openshift-dns|TargetDown|dns-default
alert|openshift-ingress|KubeDeploymentReplicasMismatch
alert|openshift-ingress|TargetDown|router-internal-default
alert|openshift-monitoring|PrometheusErrorSendingAlertsToSomeAlertmanagers
alert|openshift-monitoring|TargetDown|alertmanager-main
alert|openshift-monitoring|TargetDown|prometheus-k8s
alert|openshift-monitoring|TargetDown|thanos-querier
alert|openshift-multus|TargetDown|network-metrics-service
alert|openshift-sdn|KubeDaemonSetRolloutStuck
alert|openshift-sdn|SDNPodNotReady
alert|openshift-sdn|TargetDown|sdn
rule|nodes_container_runtime_version_check|NODES_CONTAINER_RUNTIME_VERSION
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED
rule|nodes_pressure_check|NODE_PRESSURE
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|tekton-pipelines|PodDisruptionBudgetAtLimit
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|default|KubeClientCertificateExpiration
alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed
alert|openshift-cluster-version|CannotRetrieveUpdates
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|nodes_kubelet_version_check|NODE_KUBELET_VERSION
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|openshift-monitoring|PrometheusErrorSendingAlertsToSomeAlertmanagers
alert|openshift-monitoring|TargetDown|alertmanager-main
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|KubeAPIErrorsHigh
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|openshift-image-registry|KubeJobFailed
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|openshift-monitoring|KubeContainerWaiting
alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator",
+ "rule|nodes_pressure_check|NODE_PRESSURE
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|openshift-image-registry|ImagePruningDisabled
alert|tekton-pipelines|PodDisruptionBudgetAtLimit
rule|ingress_operator_degraded_with_reason_ingresscontrollers|INGRESS_OPERATOR_DEGRADED_WITH_REASON_INGRESSCONTROLLERSDEGRADED
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "alert|ThanosQueryGrpcClientErrorRate
alert|ThanosQueryHighDNSFailures
alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed
alert|openshift-cluster-version|CannotRetrieveUpdates
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|openshift-monitoring|TargetDown|openshift-state-metrics
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|CloudCredentialOperatorDown
alert|openshift-etcd|etcdMemberCommunicationSlow
alert|openshift-multus|KubeDaemonSetRolloutStuck
alert|openshift-multus|KubePodNotReady
alert|openshift-multus|TargetDown|multus-admission-controller
foc|network|Degraded|RolloutHung|443c
foc|network|Progressing|Deploying|2264
rule|nodes_pressure_check|NODE_PRESSURE
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|ingress_operator_degraded_with_reason_ingresscontrollers|INGRESS_OPERATOR_DEGRADED_WITH_REASON_INGRESSCONTROLLERSDEGRADED",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|KubeClientErrors
alert|default|AggregatedAPIDown
alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors
alert|openshift-monitoring|KubeContainerWaiting
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|prometheus-adapter
foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc",
+ "alert|default|AggregatedAPIDown
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|openshift-cluster-version|CannotRetrieveUpdates",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|ThanosQueryHighDNSFailures
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|ThanosQueryHighDNSFailures
alert|openshift-cluster-version|CannotRetrieveUpdates
alert|openshift-machine-api|TargetDown|machine-api-controllers
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|openshift-image-registry|ImagePruningDisabled
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "alert|openshift-image-registry|ImagePruningDisabled
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED
rule|nodes_kubelet_version_check|NODE_KUBELET_VERSION
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "alert|FluentdNodeDown
alert|openshift-logging|KubeDaemonSetRolloutStuck
alert|openshift-logging|KubeDeploymentReplicasMismatch
alert|openshift-logging|KubePodNotReady
alert|openshift-logging|TargetDown|elasticsearch-metrics
alert|openshift-logging|TargetDown|fluentd",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|ThanosQueryGrpcClientErrorRate
alert|ThanosQueryHighDNSFailures
alert|openshift-cluster-version|CannotRetrieveUpdates
alert|openshift-image-registry|KubeContainerWaiting
alert|openshift-image-registry|KubeJobCompletion
alert|openshift-multus|KubeDaemonSetRolloutStuck
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|openshift-kube-apiserver-operator|TechPreviewNoUpgrade
rule|ingress_operator_degraded_with_reason_ingresscontrollers|INGRESS_OPERATOR_DEGRADED_WITH_REASON_INGRESSCONTROLLERSDEGRADED",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator",
+ "alert|KubeClientErrors
alert|default|AggregatedAPIDown
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|KubeClientErrors
alert|default|AggregatedAPIDown
alert|openshift-image-registry|KubeContainerWaiting
alert|openshift-image-registry|KubePodNotReady
alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors
alert|openshift-monitoring|KubeContainerWaiting
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|prometheus-adapter
foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc
foc|version|Failing|MultipleErrors|0e74",
+ "rule|nodes_container_runtime_version_check|NODES_CONTAINER_RUNTIME_VERSION
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|openshift-cluster-version|CannotRetrieveUpdates
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|FluentdNodeDown
alert|openshift-logging|TargetDown|fluentd
alert|openshift-machine-api|MachineWithNoRunningPhase
alert|openshift-machine-api|MachineWithoutValidNode",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|nodes_kubelet_version_check|NODE_KUBELET_VERSION
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|openshift-image-registry|ImagePruningDisabled
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|certificates_not_approved|CERTIFICATES_NOT_APPROVED",
+ "rule|nodes_kubelet_version_check|NODE_KUBELET_VERSION
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|nodes_pressure_check|NODE_PRESSURE",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|default|KubeAPILatencyHigh",
+ "rule|ingress_operator_degraded_with_reason_ingresscontrollers|INGRESS_OPERATOR_DEGRADED_WITH_REASON_INGRESSCONTROLLERSDEGRADED",
+ "alert|ThanosQueryHighDNSFailures
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_pressure_check|NODE_PRESSURE",
+ "rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|KubeClientErrors
alert|default|AggregatedAPIDown
alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed
alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors
alert|openshift-monitoring|KubeContainerWaiting
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|prometheus-adapter
foc|cloud-credential|Degraded|CredentialsFailing|337e
foc|cloud-credential|Progressing|Reconciling|b7a8
foc|image-registry|Progressing|Error|79db
foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc
foc|monitoring|Progressing|RollOutInProgress|f311",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|KubeAPIErrorBudgetBurn
alert|openshift-etcd|etcdHighCommitDurations
alert|openshift-etcd|etcdHighFsyncDurations
alert|openshift-monitoring|KubeContainerWaiting
alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator
foc|network|Degraded|ApplyOperatorConfig|a60e
foc|network|Degraded|ApplyOperatorConfig|e879
foc|version|Failing|MultipleErrors|eb7a
rule|certificates_not_approved|CERTIFICATES_NOT_APPROVED
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|KubeAPIDown
alert|KubeControllerManagerDown
alert|KubeSchedulerDown
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed
alert|openshift-cluster-version|CannotRetrieveUpdates
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|openshift-operator-lifecycle-manager|FailingOperator",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|knative-serving|PodDisruptionBudgetAtLimit
rule|ingress_operator_degraded_with_reason_ingresscontrollers|INGRESS_OPERATOR_DEGRADED_WITH_REASON_INGRESSCONTROLLERSDEGRADED",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|nodes_pressure_check|NODE_PRESSURE",
+ "alert|kube-system|TargetDown|crio
alert|openshift-machine-api|MachineWithNoRunningPhase
alert|openshift-machine-api|MachineWithoutValidNode
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|tekton-pipelines|PodDisruptionBudgetAtLimit
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator",
+ "alert|openshift-operator-lifecycle-manager|FailingOperator
alert|openshift-storage|KubeDeploymentReplicasMismatch
alert|openshift-storage|KubePodNotReady
alert|openshift-storage|PodDisruptionBudgetAtLimit
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator",
+ "rule|ingress_operator_degraded_with_reason_ingresscontrollers|INGRESS_OPERATOR_DEGRADED_WITH_REASON_INGRESSCONTROLLERSDEGRADED",
+ "alert|openshift-monitoring|TargetDown|cluster-monitoring-operator",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|bug_1766907|BUGZILLA_BUG_1766907",
+ "alert|default|KubeClientCertificateExpiration
alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed
alert|openshift-cluster-version|CannotRetrieveUpdates
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|KubeAPIDown
alert|KubeControllerManagerDown
alert|KubeSchedulerDown
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|ThanosQueryHighDNSFailures
alert|openshift-operator-lifecycle-manager|FailingOperator
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|ThanosQueryHighDNSFailures
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|CloudCredentialOperatorDown
rule|nodes_kubelet_version_check|NODE_KUBELET_VERSION
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|openshift-logging|KubeDaemonSetRolloutStuck
alert|openshift-logging|KubeDeploymentReplicasMismatch
alert|openshift-logging|KubePodNotReady
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "alert|knative-serving|PodDisruptionBudgetAtLimit
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|openshift-image-registry|ImagePruningDisabled
rule|ingress_operator_degraded_with_reason_ingresscontrollers|INGRESS_OPERATOR_DEGRADED_WITH_REASON_INGRESSCONTROLLERSDEGRADED
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "alert|KubeClientErrors
alert|default|AggregatedAPIDown
alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed
alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|prometheus-adapter
foc|cloud-credential|Degraded|CredentialsFailing|337e
foc|cloud-credential|Progressing|Reconciling|b7a8
foc|image-registry|Progressing|Error|79db
foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc
foc|monitoring|Progressing|RollOutInProgress|f311
foc|version|Failing|MultipleErrors|3b4f",
+ "rule|nodes_pressure_check|NODE_PRESSURE",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|ClusterNotUpgradeable
alert|ThanosQueryHighDNSFailures
rule|bug_1766907|BUGZILLA_BUG_1766907
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed",
+ "rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed
alert|openshift-cluster-version|CannotRetrieveUpdates
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed",
+ "alert|openshift-cluster-version|CannotRetrieveUpdates
alert|openshift-etcd|KubeContainerWaiting
alert|openshift-etcd|KubePodNotReady
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|ClusterAutoscalerOperatorDown
alert|openshift-dns|TargetDown|dns-default
alert|openshift-machine-api|TargetDown|cluster-autoscaler-operator
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator
alert|openshift-multus|TargetDown|multus-admission-controller
alert|openshift-multus|TargetDown|network-metrics-service
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed
foc|cloud-credential|Degraded|CredentialsFailing|337e
foc|cloud-credential|Progressing|Reconciling|b7a8
foc|image-registry|Progressing|Error|79db",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|openshift-image-registry|ImagePruningDisabled
rule|ingress_operator_degraded_with_reason_ingresscontrollers|INGRESS_OPERATOR_DEGRADED_WITH_REASON_INGRESSCONTROLLERSDEGRADED
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "rule|ingress_operator_degraded_with_reason_ingresscontrollers|INGRESS_OPERATOR_DEGRADED_WITH_REASON_INGRESSCONTROLLERSDEGRADED
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "alert|openshift-cluster-version|CannotRetrieveUpdates",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|openshift-monitoring|KubeContainerWaiting
alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator
foc|version|Failing|WorkloadNotAvailable|7a6a
foc|version|Failing|WorkloadNotAvailable|eb07",
+ "alert|KubeClientErrors
alert|default|AggregatedAPIDown
alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors
alert|openshift-monitoring|KubeContainerWaiting
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|prometheus-adapter
foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|KubeClientErrors
alert|ThanosQueryHighDNSFailures
alert|default|AggregatedAPIDown
alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed
alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors
alert|openshift-monitoring|KubeContainerWaiting
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|prometheus-adapter
foc|cloud-credential|Degraded|CredentialsFailing|337e
foc|cloud-credential|Progressing|Reconciling|b7a8
foc|image-registry|Progressing|Error|7756
foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc
foc|monitoring|Progressing|RollOutInProgress|f311
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|ClusterAutoscalerOperatorDown
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|openshift-monitoring|KubeContainerWaiting
alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator
foc|version|Failing|WorkloadNotAvailable|7a6a",
+ "alert|openshift-image-registry|ImagePruningDisabled
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "alert|openshift-image-registry|ImagePruningDisabled
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|KubeAPIDown
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|openshift-monitoring|KubeContainerWaiting
alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator",
+ "alert|ThanosQueryHighDNSFailures
alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed
alert|openshift-cluster-version|CannotRetrieveUpdates
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|ThanosQueryHighDNSFailures
alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed
alert|openshift-machine-api|MachineWithNoRunningPhase
alert|openshift-machine-api|MachineWithoutValidNode",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator",
+ "rule|ingress_operator_degraded_with_reason_ingresscontrollers|INGRESS_OPERATOR_DEGRADED_WITH_REASON_INGRESSCONTROLLERSDEGRADED",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc
foc|monitoring|Progressing|RollOutInProgress|f311",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|default|KubeAPILatencyHigh",
+ "rule|ingress_operator_degraded_with_reason_ingresscontrollers|INGRESS_OPERATOR_DEGRADED_WITH_REASON_INGRESSCONTROLLERSDEGRADED",
+ "rule|certificates_not_approved|CERTIFICATES_NOT_APPROVED",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|ThanosQueryHighDNSFailures
alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|KubeClientErrors
alert|default|AggregatedAPIDown
alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed
alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors
alert|openshift-monitoring|KubeContainerWaiting
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|prometheus-adapter
foc|cloud-credential|Degraded|CredentialsFailing|337e
foc|cloud-credential|Progressing|Reconciling|b7a8
foc|image-registry|Progressing|Error|79db
foc|monitoring|Degraded|UpdatingPrometheusK8SFailed|4760
foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc
foc|monitoring|Progressing|RollOutInProgress|f311",
+ "alert|openshift-image-registry|ImagePruningDisabled
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|default|KubeAPILatencyHigh",
+ "alert|ThanosQueryHighDNSFailures
alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors
alert|openshift-monitoring|KubeContainerWaiting
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|prometheus-adapter
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|MachineAPIOperatorDown
alert|default|KubeAPILatencyHigh
alert|etcdMembersDown
rule|ocp_version_end_of_life|OCP4X_BEYOND_EOL
rule|version_forced|FORCED_VERSION_UPDATES
rule|version_retarget|ABORTED_UPDATES_IN_RECENT_HISTORY",
+ "alert|ClusterNotUpgradeable
alert|openshift-cluster-csi-drivers|KubeContainerWaiting
alert|openshift-cluster-csi-drivers|KubeDeploymentReplicasMismatch
alert|openshift-cluster-csi-drivers|KubePodNotReady
alert|openshift-console|KubeDeploymentReplicasMismatch
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|ingress_operator_degraded_with_reason_ingresscontrollers|INGRESS_OPERATOR_DEGRADED_WITH_REASON_INGRESSCONTROLLERSDEGRADED
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|ingress_operator_degraded_with_reason_ingresscontrollers|INGRESS_OPERATOR_DEGRADED_WITH_REASON_INGRESSCONTROLLERSDEGRADED",
+ "alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|prometheus-adapter
foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|openshift-cluster-version|CannotRetrieveUpdates
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|openshift-monitoring|KubeContainerWaiting
alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|KubeClientErrors
alert|default|AggregatedAPIDown
alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors
alert|openshift-monitoring|KubeContainerWaiting
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|prometheus-adapter
foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|openshift-monitoring|KubeContainerWaiting
alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator",
+ "rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "alert|ThanosQueryGrpcClientErrorRate
alert|ThanosQueryHighDNSFailures
rule|nodes_container_runtime_version_check|NODES_CONTAINER_RUNTIME_VERSION
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|ThanosQueryHighDNSFailures",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|KubeAPIDown
alert|KubeControllerManagerDown
alert|KubeSchedulerDown
alert|kube-system|TargetDown|kubelet
alert|openshift-apiserver|KubeDeploymentReplicasMismatch
alert|openshift-apiserver|KubePodNotReady
alert|openshift-cluster-node-tuning-operator|KubeDaemonSetRolloutStuck
alert|openshift-console|KubeDeploymentReplicasMismatch
alert|openshift-controller-manager|KubeDaemonSetRolloutStuck
alert|openshift-controller-manager|KubePodNotReady
alert|openshift-dns|KubeDaemonSetRolloutStuck
alert|openshift-etcd|KubePodNotReady
alert|openshift-image-registry|KubeDaemonSetRolloutStuck
alert|openshift-image-registry|KubePodNotReady
alert|openshift-kube-apiserver|KubePodNotReady
alert|openshift-kube-controller-manager|KubePodNotReady
alert|openshift-kube-scheduler|KubePodNotReady
alert|openshift-machine-config-operator|KubeDaemonSetMisScheduled
alert|openshift-machine-config-operator|KubeDaemonSetRolloutStuck
alert|openshift-machine-config-operator|KubeDeploymentReplicasMismatch
alert|openshift-machine-config-operator|KubePodNotReady
alert|openshift-monitoring|KubeDaemonSetRolloutStuck
alert|openshift-monitoring|KubeNodeNotReady
alert|openshift-monitoring|KubeNodeUnreachable
alert|openshift-monitoring|KubePodNotReady
alert|openshift-multus|KubeDaemonSetMisScheduled
alert|openshift-multus|KubeDaemonSetRolloutStuck
alert|openshift-sdn|KubeDaemonSetMisScheduled
alert|openshift-sdn|KubeDaemonSetRolloutStuck
alert|openshift-sdn|SDNPodNotReady
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "rule|nodes_kubelet_version_check|NODE_KUBELET_VERSION
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|openshift-image-registry|ImagePruningDisabled
alert|openshift-kube-apiserver-operator|TechPreviewNoUpgrade
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|ThanosQueryHighDNSFailures
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator
rule|nodes_kubelet_version_check|NODE_KUBELET_VERSION
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|openshift-monitoring|KubeNodeUnreachable",
+ "alert|KubeAPIErrorBudgetBurn
alert|openshift-console|KubeDeploymentReplicasMismatch
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|KubeClientErrors
alert|ThanosQueryHighDNSFailures
alert|default|AggregatedAPIDown
alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed
alert|openshift-kube-controller-manager|TargetDown|kube-controller-manager
alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors
alert|openshift-monitoring|KubeContainerWaiting
alert|openshift-monitoring|KubeDeploymentGenerationMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|prometheus-adapter
foc|cloud-credential|Degraded|CredentialsFailing|337e
foc|cloud-credential|Progressing|Reconciling|b7a8
foc|image-registry|Progressing|Error|7756
foc|kube-controller-manager|Degraded|StaticPods_Error|34f4
foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|8930
foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc
foc|monitoring|Progressing|RollOutInProgress|f311
foc|version|Failing|MultipleErrors|fa9b
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|ThanosQueryHighDNSFailures",
+ "foc|image-registry|Progressing|Error|79db",
+ "rule|ingress_operator_degraded_with_reason_ingresscontrollers|INGRESS_OPERATOR_DEGRADED_WITH_REASON_INGRESSCONTROLLERSDEGRADED",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed
alert|openshift-cluster-version|CannotRetrieveUpdates
alert|openshift-multus|KubeDaemonSetRolloutStuck
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|KubeAPIErrorBudgetBurn
alert|openshift-config-operator|TargetDown|metrics
alert|openshift-etcd|etcdMemberCommunicationSlow
alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator",
+ "alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|etcdMembersDown
alert|openshift-image-registry|ImagePruningDisabled
alert|openshift-monitoring|KubeNodeUnreachable
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|ThanosQueryHighDNSFailures
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "foc|machine-config|Degraded|RequiredPoolsFailed|d1fc
rule|version_forced|FORCED_VERSION_UPDATES
rule|version_retarget|ABORTED_UPDATES_IN_RECENT_HISTORY",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator",
+ "alert|openshift-monitoring|KubeContainerWaiting
alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator
alert|tekton-pipelines|PodDisruptionBudgetAtLimit",
+ "alert|openshift-image-registry|ImagePruningDisabled
rule|ingress_operator_degraded_with_reason_ingresscontrollers|INGRESS_OPERATOR_DEGRADED_WITH_REASON_INGRESSCONTROLLERSDEGRADED
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|MachineAPIOperatorDown
rule|ocp_version_end_of_life|OCP4X_BEYOND_EOL
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|nodes_pressure_check|NODE_PRESSURE
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|KubeClientErrors
alert|default|AggregatedAPIDown
alert|default|KubeClientCertificateExpiration
alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed
alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors
alert|openshift-monitoring|KubeContainerWaiting
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|prometheus-adapter
foc|cloud-credential|Degraded|CredentialsFailing|337e
foc|cloud-credential|Progressing|Reconciling|b7a8
foc|image-registry|Progressing|Error|79db
foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc
foc|monitoring|Progressing|RollOutInProgress|f311
foc|version|Failing|MultipleErrors|3b4f",
+ "rule|certificates_not_approved|CERTIFICATES_NOT_APPROVED",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|kube-system|TargetDown|crio
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "alert|default|AggregatedAPIDown
alert|openshift-operator-lifecycle-manager|FailingOperator
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|CloudCredentialOperatorDown
alert|openshift-machine-config-operator|MCDDrainError
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator
alert|openshift-operator-lifecycle-manager|FailingOperator",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|CloudCredentialOperatorDown
rule|nodes_kubelet_version_check|NODE_KUBELET_VERSION
rule|nodes_pressure_check|NODE_PRESSURE
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|openshift-image-registry|ImagePruningDisabled
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "alert|openshift-image-registry|ImagePruningDisabled
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|ClusterNotUpgradeable
alert|KubeAPIDown
alert|KubeControllerManagerDown
alert|KubeSchedulerDown",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|default|AggregatedAPIDown
alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|prometheus-adapter
foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|ClusterNotUpgradeable
alert|KubeAPIDown
alert|KubeControllerManagerDown
alert|KubeSchedulerDown
alert|openshift-console|KubeDeploymentReplicasMismatch",
+ "alert|ThanosQueryGrpcClientErrorRate
alert|openshift-dns|TargetDown|dns-default
alert|openshift-image-registry|TargetDown|image-registry
alert|openshift-ingress|TargetDown|router-internal-default
alert|openshift-machine-api|MachineWithoutValidNode
alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors
alert|openshift-monitoring|PrometheusErrorSendingAlertsToSomeAlertmanagers
alert|openshift-monitoring|TargetDown|alertmanager-main
alert|openshift-monitoring|TargetDown|kube-state-metrics
alert|openshift-monitoring|TargetDown|prometheus-adapter
alert|openshift-monitoring|TargetDown|prometheus-k8s
alert|openshift-monitoring|TargetDown|thanos-querier
alert|openshift-multus|TargetDown|network-metrics-service
alert|openshift-sdn|TargetDown|sdn
rule|nodes_container_runtime_version_check|NODES_CONTAINER_RUNTIME_VERSION
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|openshift-operator-lifecycle-manager|FailingOperator
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|openshift-marketplace|KubeContainerWaiting
alert|openshift-marketplace|KubePodNotReady
foc|image-registry|Progressing|Error|79db
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|ingress_operator_degraded_with_reason_ingresscontrollers|INGRESS_OPERATOR_DEGRADED_WITH_REASON_INGRESSCONTROLLERSDEGRADED",
+ "alert|ThanosQueryHighDNSFailures",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|KubeClientErrors
alert|openshift-operator-lifecycle-manager|FailingOperator
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|ClusterNotUpgradeable
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|default|KubeAPILatencyHigh
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_container_runtime_version_check|NODES_CONTAINER_RUNTIME_VERSION
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator",
+ "alert|ThanosQueryHighDNSFailures
alert|openshift-cluster-version|CannotRetrieveUpdates
alert|openshift-machine-api|TargetDown|machine-api-controllers
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|openshift-monitoring|TargetDown|cluster-monitoring-operator
rule|nodes_kubelet_version_check|NODE_KUBELET_VERSION
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator
rule|nodes_kubelet_version_check|NODE_KUBELET_VERSION
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|KubeClientErrors
alert|default|AggregatedAPIDown
alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors
alert|openshift-monitoring|KubeContainerWaiting
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|prometheus-adapter
foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc
foc|monitoring|Progressing|RollOutInProgress|f311",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator
rule|nodes_container_runtime_version_check|NODES_CONTAINER_RUNTIME_VERSION
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator",
+ "rule|nodes_kubelet_version_check|NODE_KUBELET_VERSION
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|openshift-image-registry|ImagePruningDisabled
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "rule|nodes_kubelet_version_check|NODE_KUBELET_VERSION
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|openshift-cluster-version|CannotRetrieveUpdates
alert|openshift-service-catalog-removed|KubeContainerWaiting
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|FluentdNodeDown
alert|openshift-logging|KubeDaemonSetRolloutStuck
alert|openshift-logging|KubePodNotReady
alert|openshift-logging|TargetDown|fluentd
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|ClusterNotUpgradeable
alert|KubeAPIDown
alert|KubeControllerManagerDown
alert|KubeSchedulerDown
alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors
alert|openshift-monitoring|KubeContainerWaiting
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|prometheus-adapter
foc|machine-config|Degraded|RequiredPoolsFailed|0fa6
foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc
foc|monitoring|Progressing|RollOutInProgress|f311
foc|version|Upgradeable|One or more machine config pool is degraded, please see `oc get mcp` for further details and resolve before upgrading|54d5",
+ "alert|ThanosQueryHighDNSFailures
alert|default|AggregatedAPIDown
alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed
alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors
alert|openshift-monitoring|KubeContainerWaiting
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|prometheus-adapter
foc|cloud-credential|Degraded|CredentialsFailing|337e
foc|cloud-credential|Progressing|Reconciling|b7a8
foc|image-registry|Progressing|Error|79db
foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc",
+ "rule|nodes_kubelet_version_check|NODE_KUBELET_VERSION
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|openshift-debug-network-hi92x|KubeDeploymentReplicasMismatch
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|KubeClientErrors
alert|default|AggregatedAPIDown
alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors
alert|openshift-monitoring|KubeContainerWaiting
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|prometheus-adapter
foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator
rule|nodes_pressure_check|NODE_PRESSURE
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|tekton-pipelines|PodDisruptionBudgetAtLimit
rule|ingress_operator_degraded_with_reason_ingresscontrollers|INGRESS_OPERATOR_DEGRADED_WITH_REASON_INGRESSCONTROLLERSDEGRADED
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_forced|FORCED_VERSION_UPDATES"
+ ],
+ "type": "scatter3d",
+ "x": [
+ -6.508472919464111,
+ 14.701431274414062,
+ 18.07594108581543,
+ -6.485951900482178,
+ -4.814838886260986,
+ -6.407799243927002,
+ -7.075637340545654,
+ -7.57185173034668,
+ 24.299129486083984,
+ -6.359860420227051,
+ -1.1922708749771118,
+ -5.162714958190918,
+ 18.144577026367188,
+ -6.652331352233887,
+ 15.866284370422363,
+ -5.044735908508301,
+ -4.911405563354492,
+ 5.919954299926758,
+ -1.6985814571380615,
+ -6.583059310913086,
+ -4.93621826171875,
+ -4.690492630004883,
+ -6.855248928070068,
+ -7.430389881134033,
+ -7.020079135894775,
+ 15.847081184387207,
+ 20.551259994506836,
+ 18.63059425354004,
+ 18.621116638183594,
+ -6.640495777130127,
+ -5.983137607574463,
+ -5.0703840255737305,
+ -6.243607521057129,
+ 15.835899353027344,
+ -6.4932074546813965,
+ 18.681827545166016,
+ -6.388707637786865,
+ -4.811809062957764,
+ -7.107786655426025,
+ -6.941802978515625,
+ -0.7400919795036316,
+ -7.13996696472168,
+ 15.83413314819336,
+ -6.7674360275268555,
+ 24.189117431640625,
+ 5.9358673095703125,
+ -1.5929874181747437,
+ 18.226787567138672,
+ 18.94855308532715,
+ -6.682797431945801,
+ -5.35587739944458,
+ -6.932839393615723,
+ 5.968183994293213,
+ -1.5694812536239624,
+ -6.854470729827881,
+ 18.147584915161133,
+ 17.94161605834961,
+ -6.798947334289551,
+ 18.24131202697754,
+ -5.30787467956543,
+ 15.81425666809082,
+ -4.882497310638428,
+ 5.967514514923096,
+ -7.051228046417236,
+ -4.8765764236450195,
+ -6.782342910766602,
+ -7.426082611083984,
+ -6.366758823394775,
+ -4.731571674346924,
+ -1.603980541229248,
+ -6.351593017578125,
+ 18.810264587402344,
+ 15.815242767333984,
+ 5.983912467956543,
+ -6.291979789733887,
+ 6.0377655029296875,
+ -6.367044925689697,
+ -1.6609220504760742,
+ -4.946216583251953,
+ -4.920126914978027,
+ 14.604913711547852,
+ -6.509585857391357,
+ -6.457581043243408,
+ -7.069526195526123,
+ -5.1693925857543945,
+ -6.120248317718506,
+ -5.0991950035095215,
+ -6.919513702392578,
+ -3.7356204986572266,
+ -1.3275141716003418,
+ 18.631898880004883,
+ 6.007969379425049,
+ -6.116791725158691,
+ -6.179051876068115,
+ 18.086484909057617,
+ 24.247068405151367,
+ -6.774296283721924,
+ 15.868584632873535,
+ -6.976282119750977,
+ -6.631752967834473,
+ -6.709264755249023,
+ -5.398678779602051,
+ -6.368623733520508,
+ -1.498488187789917,
+ -4.847675323486328,
+ -6.394754886627197,
+ 14.590171813964844,
+ -6.655190944671631,
+ -7.010329246520996,
+ 5.68173885345459,
+ -5.3329291343688965,
+ -5.30719518661499,
+ -5.468412399291992,
+ -5.409651756286621,
+ 5.985781192779541,
+ 19.005802154541016,
+ -6.200707912445068,
+ 5.911401271820068,
+ -6.221963405609131,
+ -5.335118770599365,
+ -6.212206840515137,
+ -6.31596565246582,
+ -6.451382160186768,
+ -6.216485500335693,
+ -6.678353786468506,
+ 14.493627548217773,
+ -6.748777866363525,
+ -1.7241560220718384,
+ 20.517641067504883,
+ -6.258054733276367,
+ 15.914960861206055,
+ -6.8718581199646,
+ -6.8952531814575195,
+ -6.936687469482422,
+ -6.229846000671387,
+ -5.3941755294799805,
+ 18.038145065307617,
+ -5.994319915771484,
+ -5.8678364753723145,
+ -6.28857946395874,
+ -5.0008344650268555,
+ -6.249646186828613,
+ -5.273580551147461,
+ -6.993056774139404,
+ -6.092935085296631,
+ 18.2108154296875,
+ -6.476114749908447,
+ -1.6113970279693604,
+ -4.929974555969238,
+ 18.270740509033203,
+ -5.160518169403076,
+ -6.0303874015808105,
+ -4.937394618988037,
+ -5.105307102203369,
+ -5.586767673492432,
+ -1.5855491161346436,
+ -5.254342079162598,
+ -1.484007716178894,
+ -6.422153472900391,
+ -6.327864170074463,
+ -6.872201919555664,
+ -5.892481327056885,
+ 15.853472709655762,
+ -6.918054580688477,
+ 20.480785369873047,
+ -5.006967544555664,
+ -6.849020004272461,
+ -6.170941352844238,
+ -5.537913799285889,
+ -4.935520648956299,
+ 6.0331244468688965,
+ 18.148122787475586,
+ -4.970097541809082,
+ 18.712482452392578,
+ 14.411581993103027,
+ -6.182474136352539,
+ -5.402115345001221,
+ -6.808959007263184,
+ -5.121963024139404,
+ -6.7844696044921875,
+ -6.3738508224487305,
+ 5.83152961730957,
+ -5.073592662811279,
+ -6.228448390960693,
+ -6.9561896324157715,
+ 15.823834419250488,
+ -5.37355375289917,
+ -6.611615180969238,
+ -6.056013107299805,
+ -6.315647602081299,
+ 6.116550922393799,
+ -6.855470180511475,
+ -6.39256477355957,
+ -7.037590026855469,
+ -4.968536853790283,
+ -6.699692249298096,
+ -6.4550371170043945,
+ -6.355433464050293,
+ 5.7672271728515625,
+ 18.642213821411133,
+ 18.273216247558594,
+ -6.312941074371338,
+ -6.264157295227051,
+ -1.4721779823303223,
+ 14.659029006958008,
+ 14.592086791992188,
+ -6.56808614730835,
+ -1.5603101253509521,
+ 18.484359741210938,
+ 18.90683364868164,
+ -6.5721635818481445,
+ -1.6564605236053467,
+ -6.877250671386719,
+ 15.761283874511719,
+ -6.26645040512085,
+ -1.4695523977279663,
+ -6.464454174041748,
+ -5.394909381866455,
+ -5.999269008636475,
+ -5.937560081481934,
+ -6.302257537841797,
+ 15.006304740905762,
+ -6.343450546264648,
+ -6.096992492675781,
+ -5.389856815338135,
+ -6.2611236572265625,
+ -5.199159622192383,
+ 14.510737419128418,
+ 18.958452224731445,
+ 15.006254196166992,
+ 14.679250717163086,
+ -6.175192356109619,
+ -0.22985664010047913,
+ -5.095884323120117,
+ -6.358592510223389,
+ -6.259182929992676,
+ -5.079482555389404,
+ -6.990578651428223,
+ -6.332729339599609,
+ -6.470727920532227,
+ 6.1047563552856445,
+ -5.635665416717529,
+ -1.4494723081588745,
+ -5.244890213012695,
+ 18.10479736328125,
+ -5.452732086181641,
+ 14.683895111083984,
+ -1.5687144994735718,
+ 18.305288314819336,
+ -6.602229118347168,
+ -6.02660608291626,
+ -6.2415771484375,
+ 20.515026092529297,
+ 5.942519664764404,
+ -5.180203437805176,
+ -5.480380535125732,
+ -6.78416633605957,
+ -1.4258058071136475,
+ -1.366783618927002,
+ 19.025781631469727,
+ -5.357151985168457,
+ -6.4966230392456055,
+ -5.363295555114746,
+ -0.8481283783912659,
+ -1.525602102279663,
+ -6.2800703048706055,
+ -6.083723545074463,
+ -5.619442939758301,
+ -5.57445764541626,
+ -1.2286872863769531,
+ 14.577311515808105,
+ -6.025033473968506,
+ -6.255163192749023,
+ -6.284247875213623,
+ -1.625158429145813,
+ 15.918874740600586,
+ -5.6207275390625,
+ -1.5608052015304565,
+ -6.894435405731201,
+ 18.546592712402344,
+ -6.472530364990234,
+ -6.358331203460693,
+ -1.3400657176971436,
+ -5.13228702545166,
+ -6.904990196228027,
+ -1.33734929561615,
+ -1.6320915222167969,
+ 18.708141326904297,
+ -5.409615993499756,
+ 5.844346523284912,
+ -5.0902557373046875,
+ 14.504204750061035,
+ -6.07065486907959,
+ -6.734348773956299,
+ -6.824306964874268,
+ -5.024299144744873,
+ -6.601585865020752,
+ 18.158512115478516,
+ -5.2081217765808105,
+ -6.49524450302124,
+ 5.960714340209961,
+ -6.923197269439697,
+ -1.509687066078186,
+ -5.423428535461426,
+ 6.146078586578369,
+ 18.071727752685547,
+ -6.683668613433838,
+ -0.8963751196861267,
+ 18.447555541992188,
+ 18.529943466186523,
+ -6.56385612487793,
+ 20.53032112121582,
+ -6.5508809089660645,
+ 18.207677841186523,
+ -6.705931186676025,
+ -5.4898505210876465,
+ 14.750651359558105,
+ -6.3094706535339355,
+ 20.51243782043457,
+ -5.356784343719482,
+ -6.857708930969238,
+ -6.713663578033447,
+ -5.187485694885254,
+ 18.188343048095703,
+ -6.629059314727783,
+ -6.375609874725342,
+ -5.991542339324951,
+ -6.5423736572265625,
+ -6.761687278747559,
+ -6.476625919342041,
+ -5.185638904571533,
+ -6.615434169769287,
+ -6.920022964477539,
+ 19.397192001342773,
+ -6.406599044799805,
+ -6.5076398849487305,
+ -6.458674907684326,
+ -6.5229811668396,
+ -1.4994255304336548,
+ -3.7358646392822266,
+ 6.004005432128906,
+ -0.7883594632148743,
+ 14.632951736450195,
+ -5.155665874481201,
+ -1.2136008739471436,
+ -1.3632787466049194,
+ -6.507847785949707,
+ -1.5000979900360107,
+ 5.939996719360352,
+ -4.9961748123168945,
+ 18.533987045288086,
+ 5.978385925292969,
+ -6.421209335327148,
+ -6.988371849060059,
+ -1.5002319812774658,
+ -5.81713342666626,
+ -5.178189754486084,
+ -5.760660648345947,
+ -6.391116142272949,
+ 24.284372329711914,
+ -1.3828365802764893,
+ 14.769547462463379,
+ 14.53292465209961,
+ 5.989429950714111,
+ 5.9598565101623535,
+ -6.891895771026611,
+ -6.515506267547607,
+ -5.542363166809082,
+ -6.580477237701416,
+ 18.236581802368164,
+ -1.0650038719177246,
+ -6.617132663726807,
+ 14.615621566772461,
+ -1.3062107563018799,
+ -6.526794910430908,
+ -5.166417121887207,
+ -5.172086715698242,
+ 18.441099166870117,
+ -5.253601551055908,
+ -1.4513665437698364,
+ -5.15774393081665,
+ -6.684908866882324
+ ],
+ "y": [
+ -27.89963722229004,
+ 11.950806617736816,
+ -5.9461798667907715,
+ -26.78243064880371,
+ -27.64413070678711,
+ -27.560924530029297,
+ -26.336523056030273,
+ -26.779123306274414,
+ 16.93421745300293,
+ -26.916194915771484,
+ 8.528918266296387,
+ -27.239530563354492,
+ -5.895166397094727,
+ -26.49807357788086,
+ -8.908788681030273,
+ -27.465065002441406,
+ -28.117168426513672,
+ -22.417749404907227,
+ 8.344063758850098,
+ -27.216550827026367,
+ -27.93771743774414,
+ -27.71525001525879,
+ -27.75773811340332,
+ -26.67815589904785,
+ -26.18734359741211,
+ -8.988445281982422,
+ -3.648930311203003,
+ -6.082215785980225,
+ -6.035512924194336,
+ -27.535974502563477,
+ -27.124618530273438,
+ -28.205488204956055,
+ -27.543107986450195,
+ -8.997578620910645,
+ -27.396469116210938,
+ -6.064774990081787,
+ -27.316089630126953,
+ -28.115406036376953,
+ -26.91932487487793,
+ -27.575544357299805,
+ 8.635396957397461,
+ -26.789142608642578,
+ -8.99428653717041,
+ -27.00328254699707,
+ 16.817724227905273,
+ -22.178422927856445,
+ 8.631075859069824,
+ -6.198072910308838,
+ -6.022517681121826,
+ -27.367616653442383,
+ -26.864337921142578,
+ -26.374828338623047,
+ -22.52374839782715,
+ 8.519402503967285,
+ -26.610736846923828,
+ -6.09999418258667,
+ -6.2541327476501465,
+ -27.736072540283203,
+ -6.100539684295654,
+ -28.28400421142578,
+ -9.017114639282227,
+ -27.58123779296875,
+ -22.143798828125,
+ -26.17220687866211,
+ -27.84193992614746,
+ -27.597698211669922,
+ -26.405424118041992,
+ -27.899518966674805,
+ -27.853567123413086,
+ 8.822068214416504,
+ -27.30091667175293,
+ -6.159736156463623,
+ -9.015351295471191,
+ -22.463197708129883,
+ -27.69510269165039,
+ -22.457120895385742,
+ -26.91396141052246,
+ 8.439791679382324,
+ -27.986417770385742,
+ -28.054819107055664,
+ 12.054142951965332,
+ -27.46687126159668,
+ -27.976318359375,
+ -26.616918563842773,
+ -27.784486770629883,
+ -27.69938087463379,
+ -27.860286712646484,
+ -26.440170288085938,
+ -26.42074203491211,
+ 8.337406158447266,
+ -6.105352878570557,
+ -22.08506965637207,
+ -27.06110382080078,
+ -27.775699615478516,
+ -5.914007186889648,
+ 16.877120971679688,
+ -27.779184341430664,
+ -8.901880264282227,
+ -26.92291259765625,
+ -27.445289611816406,
+ -27.77206802368164,
+ -28.04203224182129,
+ -26.94698715209961,
+ 8.512685775756836,
+ -27.81466293334961,
+ -27.656381607055664,
+ 11.995240211486816,
+ -27.416139602661133,
+ -26.226490020751953,
+ -22.507953643798828,
+ -27.692333221435547,
+ -27.474132537841797,
+ -27.076213836669922,
+ -28.09868621826172,
+ -22.176477432250977,
+ -5.949207782745361,
+ -27.488170623779297,
+ -22.148530960083008,
+ -27.28164291381836,
+ -27.480594635009766,
+ -27.127492904663086,
+ -26.971708297729492,
+ -27.186750411987305,
+ -27.34534454345703,
+ -26.490737915039062,
+ 12.173516273498535,
+ -27.545536041259766,
+ 8.694847106933594,
+ -3.682539463043213,
+ -27.37449073791504,
+ -8.915262222290039,
+ -26.98171615600586,
+ -26.5472412109375,
+ -26.3290958404541,
+ -27.163732528686523,
+ -27.728710174560547,
+ -6.129349231719971,
+ -27.036392211914062,
+ -27.910354614257812,
+ -26.95482635498047,
+ -28.070316314697266,
+ -27.304758071899414,
+ -27.177194595336914,
+ -26.7445068359375,
+ -27.2197208404541,
+ -6.096770286560059,
+ -27.711366653442383,
+ 8.740100860595703,
+ -28.000648498535156,
+ -6.147867202758789,
+ -27.711545944213867,
+ -27.329938888549805,
+ -27.882658004760742,
+ -28.0564022064209,
+ -27.925264358520508,
+ 8.477258682250977,
+ -28.087095260620117,
+ 8.71697998046875,
+ -26.868894577026367,
+ -27.438535690307617,
+ -27.02591896057129,
+ -26.859600067138672,
+ -8.963929176330566,
+ -27.545352935791016,
+ -3.718353271484375,
+ -28.009626388549805,
+ -26.72005844116211,
+ -26.9728946685791,
+ -27.951839447021484,
+ -27.70336151123047,
+ -22.19812774658203,
+ -5.993408203125,
+ -27.86338233947754,
+ -6.112416744232178,
+ 12.250931739807129,
+ -27.22418212890625,
+ -27.85909652709961,
+ -26.608776092529297,
+ -27.841447830200195,
+ -26.452499389648438,
+ -26.869831085205078,
+ -22.274934768676758,
+ -27.623075485229492,
+ -27.791290283203125,
+ -26.537071228027344,
+ -9.005845069885254,
+ -27.773069381713867,
+ -27.528369903564453,
+ -27.294055938720703,
+ -26.952056884765625,
+ -22.109872817993164,
+ -26.584300994873047,
+ -27.171367645263672,
+ -26.302261352539062,
+ -27.69452476501465,
+ -27.555662155151367,
+ -26.83515167236328,
+ -27.092477798461914,
+ -22.2999267578125,
+ -6.122944355010986,
+ -6.3208112716674805,
+ -27.088550567626953,
+ -27.53542137145996,
+ 8.802658081054688,
+ 12.037797927856445,
+ 12.058063507080078,
+ -27.354089736938477,
+ 8.752095222473145,
+ -6.0539069175720215,
+ -6.019707679748535,
+ -27.659591674804688,
+ 8.669106483459473,
+ -26.74193572998047,
+ -9.068763732910156,
+ -26.968067169189453,
+ 8.560523986816406,
+ -26.807971954345703,
+ -27.748140335083008,
+ -27.37152099609375,
+ -27.384544372558594,
+ -27.75541877746582,
+ -15.773283958435059,
+ -26.937389373779297,
+ -27.138900756835938,
+ -27.75275421142578,
+ -26.9167537689209,
+ -28.031513214111328,
+ 12.16656494140625,
+ -5.965411186218262,
+ -15.77324390411377,
+ 12.05622673034668,
+ -27.56310272216797,
+ -25.314373016357422,
+ -27.78474998474121,
+ -27.791751861572266,
+ -27.680286407470703,
+ -28.013376235961914,
+ -26.733949661254883,
+ -26.947309494018555,
+ -27.564958572387695,
+ -22.13174057006836,
+ -28.00985336303711,
+ 8.639897346496582,
+ -27.595962524414062,
+ -6.153355598449707,
+ -27.95162582397461,
+ 11.971056938171387,
+ 8.63701057434082,
+ -5.89190673828125,
+ -27.11508560180664,
+ -27.17331314086914,
+ -27.553544998168945,
+ -3.6862266063690186,
+ -22.23111343383789,
+ -27.575119018554688,
+ -27.6356143951416,
+ -26.982479095458984,
+ 8.652303695678711,
+ 8.534278869628906,
+ -5.987359523773193,
+ -27.74905776977539,
+ -27.63831901550293,
+ -27.616464614868164,
+ 8.643148422241211,
+ 8.427978515625,
+ -27.571117401123047,
+ -27.23386573791504,
+ -27.768327713012695,
+ -27.913951873779297,
+ 8.433550834655762,
+ 11.936927795410156,
+ -27.162738800048828,
+ -27.343626022338867,
+ -26.98289680480957,
+ 8.600713729858398,
+ -8.874434471130371,
+ -27.780792236328125,
+ 8.568625450134277,
+ -26.323633193969727,
+ -5.782250881195068,
+ -27.636138916015625,
+ -26.94268798828125,
+ 8.499092102050781,
+ -27.830886840820312,
+ -26.295366287231445,
+ 8.652801513671875,
+ 8.718467712402344,
+ -6.13960599899292,
+ -27.638559341430664,
+ -22.41525650024414,
+ -27.656038284301758,
+ 12.16248607635498,
+ -27.21497917175293,
+ -26.769123077392578,
+ -26.47551727294922,
+ -27.658693313598633,
+ -27.197717666625977,
+ -6.023045063018799,
+ -27.892642974853516,
+ -27.085081100463867,
+ -22.33993911743164,
+ -26.412498474121094,
+ 8.638826370239258,
+ -27.791004180908203,
+ -22.301591873168945,
+ -5.969045639038086,
+ -26.797887802124023,
+ 8.666205406188965,
+ -5.971152305603027,
+ -5.956844806671143,
+ -27.158946990966797,
+ -3.6695594787597656,
+ -26.84357261657715,
+ -6.023324966430664,
+ -26.98872947692871,
+ -27.74013900756836,
+ 11.917290687561035,
+ -27.29935646057129,
+ -3.6878530979156494,
+ -26.866470336914062,
+ -26.34971809387207,
+ -27.378625869750977,
+ -27.791181564331055,
+ -6.09067440032959,
+ -27.350475311279297,
+ -26.928783416748047,
+ -27.129201889038086,
+ -27.266063690185547,
+ -26.926971435546875,
+ -27.484601974487305,
+ -27.805994033813477,
+ -27.545167922973633,
+ -26.36805534362793,
+ -6.159181594848633,
+ -27.34865951538086,
+ -27.20864486694336,
+ -27.394546508789062,
+ -27.197111129760742,
+ 8.61318302154541,
+ -26.420835494995117,
+ -22.121036529541016,
+ 8.639701843261719,
+ 12.044049263000488,
+ -27.870553970336914,
+ 8.505294799804688,
+ 8.661144256591797,
+ -27.337182998657227,
+ 8.6274995803833,
+ -22.16929054260254,
+ -27.77030372619629,
+ -5.990329265594482,
+ -22.220605850219727,
+ -27.477170944213867,
+ -26.304466247558594,
+ 8.607436180114746,
+ -27.661760330200195,
+ -27.816354751586914,
+ -27.58287811279297,
+ -27.51096534729004,
+ 16.918899536132812,
+ 8.578200340270996,
+ 11.904377937316895,
+ 12.136640548706055,
+ -22.224288940429688,
+ -22.29214859008789,
+ -26.463390350341797,
+ -27.338552474975586,
+ -27.70599937438965,
+ -27.283634185791016,
+ -6.069391250610352,
+ 8.617544174194336,
+ -27.390138626098633,
+ 12.046242713928223,
+ 8.500396728515625,
+ -27.327054977416992,
+ -27.788694381713867,
+ -27.889602661132812,
+ -6.270835876464844,
+ -27.92205047607422,
+ 8.65102767944336,
+ -27.809406280517578,
+ -26.980304718017578
+ ],
+ "z": [
+ 22.8504581451416,
+ 21.78303337097168,
+ 53.72732925415039,
+ 25.32775115966797,
+ 24.568273544311523,
+ 24.455217361450195,
+ 23.98715591430664,
+ 25.572540283203125,
+ 56.66353225708008,
+ 27.452320098876953,
+ 20.088409423828125,
+ 28.078872680664062,
+ 53.502891540527344,
+ 23.358383178710938,
+ 57.87911605834961,
+ 24.40227699279785,
+ 23.92687225341797,
+ 42.71653747558594,
+ 20.188838958740234,
+ 24.460609436035156,
+ 24.632997512817383,
+ 24.332008361816406,
+ 23.086185455322266,
+ 23.85738182067871,
+ 23.791494369506836,
+ 58.29733657836914,
+ 57.64208221435547,
+ 53.778053283691406,
+ 53.69913864135742,
+ 22.631393432617188,
+ 24.27526092529297,
+ 24.539045333862305,
+ 22.80612564086914,
+ 58.309295654296875,
+ 24.61604118347168,
+ 53.75299072265625,
+ 22.58152198791504,
+ 24.4237060546875,
+ 23.713075637817383,
+ 22.918537139892578,
+ 19.709930419921875,
+ 23.351686477661133,
+ 58.24107360839844,
+ 22.84181022644043,
+ 56.55369567871094,
+ 42.646568298339844,
+ 20.011573791503906,
+ 53.8009147644043,
+ 53.64635467529297,
+ 22.775970458984375,
+ 29.253093719482422,
+ 23.783222198486328,
+ 42.56985855102539,
+ 20.15454864501953,
+ 23.207752227783203,
+ 53.733890533447266,
+ 53.565147399902344,
+ 23.056350708007812,
+ 53.761505126953125,
+ 24.150197982788086,
+ 58.274227142333984,
+ 24.215778350830078,
+ 42.69428253173828,
+ 24.04662322998047,
+ 24.056087493896484,
+ 22.954538345336914,
+ 24.05994987487793,
+ 23.047283172607422,
+ 24.518829345703125,
+ 20.062768936157227,
+ 22.893888473510742,
+ 53.89307403564453,
+ 58.27170944213867,
+ 42.64662551879883,
+ 22.781408309936523,
+ 42.46690368652344,
+ 27.414518356323242,
+ 20.27866554260254,
+ 24.35751724243164,
+ 24.06218719482422,
+ 21.80187225341797,
+ 22.769424438476562,
+ 23.203805923461914,
+ 26.93425750732422,
+ 23.906553268432617,
+ 22.88593292236328,
+ 24.526748657226562,
+ 23.76462745666504,
+ 34.94251251220703,
+ 20.13187026977539,
+ 53.75702667236328,
+ 42.662567138671875,
+ 23.176986694335938,
+ 22.907560348510742,
+ 53.57343673706055,
+ 56.611610412597656,
+ 23.2619686126709,
+ 57.8470344543457,
+ 23.2438907623291,
+ 23.749958038330078,
+ 23.515432357788086,
+ 24.436697006225586,
+ 27.442197799682617,
+ 20.340328216552734,
+ 24.354955673217773,
+ 23.696571350097656,
+ 21.812231063842773,
+ 22.949182510375977,
+ 24.199909210205078,
+ 42.643096923828125,
+ 24.496191024780273,
+ 24.191495895385742,
+ 28.087081909179688,
+ 23.7010440826416,
+ 42.7249870300293,
+ 53.68470001220703,
+ 24.557565689086914,
+ 42.723365783691406,
+ 24.513809204101562,
+ 24.318138122558594,
+ 24.381132125854492,
+ 27.19668960571289,
+ 22.82699203491211,
+ 24.603069305419922,
+ 24.10161781311035,
+ 21.947315216064453,
+ 23.700075149536133,
+ 19.96795654296875,
+ 57.6082878112793,
+ 23.623682022094727,
+ 58.3651008605957,
+ 23.146812438964844,
+ 24.16397476196289,
+ 24.300708770751953,
+ 24.447097778320312,
+ 24.205909729003906,
+ 53.48530197143555,
+ 23.360443115234375,
+ 23.505857467651367,
+ 27.407264709472656,
+ 23.922693252563477,
+ 24.64521026611328,
+ 28.01077651977539,
+ 23.524560928344727,
+ 23.11185073852539,
+ 53.68459701538086,
+ 23.528451919555664,
+ 20.358552932739258,
+ 24.18799591064453,
+ 53.653228759765625,
+ 24.01413345336914,
+ 23.070363998413086,
+ 24.296422958374023,
+ 24.254764556884766,
+ 23.653209686279297,
+ 20.257465362548828,
+ 24.83572769165039,
+ 20.310152053833008,
+ 27.516721725463867,
+ 24.22368621826172,
+ 23.66227912902832,
+ 24.39542007446289,
+ 58.318115234375,
+ 23.120325088500977,
+ 57.575809478759766,
+ 24.69959831237793,
+ 23.589649200439453,
+ 23.17709732055664,
+ 23.64906883239746,
+ 23.907304763793945,
+ 42.663455963134766,
+ 53.664974212646484,
+ 24.293447494506836,
+ 53.8111686706543,
+ 22.0239200592041,
+ 24.441322326660156,
+ 23.645246505737305,
+ 23.43956184387207,
+ 24.78632354736328,
+ 23.919076919555664,
+ 24.880992889404297,
+ 42.4249153137207,
+ 23.94640350341797,
+ 23.0352725982666,
+ 24.192428588867188,
+ 58.26966094970703,
+ 23.632478713989258,
+ 23.55287742614746,
+ 23.341320037841797,
+ 24.800085067749023,
+ 43.01173782348633,
+ 24.067686080932617,
+ 23.383745193481445,
+ 25.27708625793457,
+ 24.11336898803711,
+ 23.61458969116211,
+ 25.043746948242188,
+ 23.468393325805664,
+ 42.63345718383789,
+ 53.81877136230469,
+ 53.91914367675781,
+ 24.351051330566406,
+ 23.520008087158203,
+ 19.829748153686523,
+ 21.875444412231445,
+ 21.860435485839844,
+ 23.1492919921875,
+ 19.79663848876953,
+ 53.645172119140625,
+ 53.6876335144043,
+ 23.00848388671875,
+ 20.028968811035156,
+ 23.63909339904785,
+ 58.30634307861328,
+ 26.049564361572266,
+ 20.37648582458496,
+ 27.261642456054688,
+ 24.18075180053711,
+ 23.198429107666016,
+ 24.43136215209961,
+ 23.303953170776367,
+ 48.21512985229492,
+ 27.41499137878418,
+ 24.129762649536133,
+ 23.68899154663086,
+ 25.220415115356445,
+ 24.132116317749023,
+ 21.95639419555664,
+ 53.64399719238281,
+ 48.21510314941406,
+ 21.980844497680664,
+ 23.178447723388672,
+ 38.34010314941406,
+ 24.177982330322266,
+ 23.38178825378418,
+ 23.139631271362305,
+ 24.268413543701172,
+ 23.508230209350586,
+ 27.289142608642578,
+ 22.931665420532227,
+ 43.03556442260742,
+ 23.783388137817383,
+ 19.93271255493164,
+ 24.360374450683594,
+ 53.80305480957031,
+ 24.217248916625977,
+ 21.84247398376465,
+ 20.162456512451172,
+ 53.492103576660156,
+ 22.9483585357666,
+ 24.638032913208008,
+ 23.484695434570312,
+ 57.599754333496094,
+ 42.625736236572266,
+ 24.315628051757812,
+ 23.713123321533203,
+ 23.599700927734375,
+ 20.25800895690918,
+ 20.169864654541016,
+ 53.65849304199219,
+ 24.20380210876465,
+ 23.223228454589844,
+ 24.107362747192383,
+ 19.760356903076172,
+ 20.183237075805664,
+ 23.241243362426758,
+ 24.16557502746582,
+ 23.829452514648438,
+ 23.80571937561035,
+ 20.23876190185547,
+ 21.894268035888672,
+ 24.60442543029785,
+ 24.2659969329834,
+ 27.068078994750977,
+ 20.364225387573242,
+ 58.00498962402344,
+ 23.70301628112793,
+ 20.364789962768555,
+ 24.25131607055664,
+ 53.730770111083984,
+ 23.293062210083008,
+ 24.806257247924805,
+ 20.272146224975586,
+ 24.38848876953125,
+ 24.05539894104004,
+ 20.247716903686523,
+ 19.977460861206055,
+ 53.844642639160156,
+ 23.836633682250977,
+ 42.66718673706055,
+ 24.30832290649414,
+ 21.930086135864258,
+ 24.198200225830078,
+ 23.327213287353516,
+ 23.9949951171875,
+ 24.06720542907715,
+ 23.111209869384766,
+ 53.6658821105957,
+ 24.75918197631836,
+ 23.15666389465332,
+ 42.5792236328125,
+ 23.79336166381836,
+ 20.269813537597656,
+ 23.863956451416016,
+ 42.55045700073242,
+ 53.72597885131836,
+ 23.51398277282715,
+ 19.78512954711914,
+ 53.69868469238281,
+ 53.67804718017578,
+ 23.066486358642578,
+ 57.6201286315918,
+ 23.440107345581055,
+ 53.66916275024414,
+ 23.450275421142578,
+ 23.94976234436035,
+ 21.849903106689453,
+ 23.11724090576172,
+ 57.601295471191406,
+ 29.238508224487305,
+ 23.8762149810791,
+ 23.277997970581055,
+ 24.42156219482422,
+ 53.7143440246582,
+ 23.26117706298828,
+ 27.371593475341797,
+ 25.254777908325195,
+ 23.321216583251953,
+ 23.495798110961914,
+ 23.355274200439453,
+ 24.633792877197266,
+ 23.32392692565918,
+ 23.887775421142578,
+ 54.074031829833984,
+ 23.219196319580078,
+ 23.139244079589844,
+ 23.09986686706543,
+ 23.2066650390625,
+ 20.283985137939453,
+ 34.941436767578125,
+ 42.706138610839844,
+ 19.7271671295166,
+ 21.782424926757812,
+ 24.17633628845215,
+ 20.093976974487305,
+ 20.234962463378906,
+ 23.26881980895996,
+ 20.24287986755371,
+ 42.71296691894531,
+ 24.11170196533203,
+ 53.729949951171875,
+ 42.68391036987305,
+ 23.207414627075195,
+ 23.84055519104004,
+ 20.27212905883789,
+ 23.487455368041992,
+ 24.103260040283203,
+ 23.568395614624023,
+ 23.169761657714844,
+ 56.648799896240234,
+ 20.223812103271484,
+ 21.850664138793945,
+ 21.9367618560791,
+ 42.64792251586914,
+ 42.76758575439453,
+ 23.8532772064209,
+ 23.26671028137207,
+ 23.750118255615234,
+ 23.32514190673828,
+ 53.70216751098633,
+ 19.919597625732422,
+ 23.180912017822266,
+ 21.844860076904297,
+ 20.166851043701172,
+ 23.272686004638672,
+ 24.09163475036621,
+ 24.194364547729492,
+ 53.93247604370117,
+ 24.07845687866211,
+ 20.265117645263672,
+ 24.000442504882812,
+ 23.465057373046875
+ ]
+ },
+ {
+ "customdata": [],
+ "hovertemplate": "_id: %{customdata}
%{text}",
+ "marker": {
+ "color": "#E15F99",
+ "size": 3
+ },
+ "mode": "markers",
+ "name": "ignored-symptoms",
+ "text": [],
+ "type": "scatter3d",
+ "x": [],
+ "y": [],
+ "z": []
+ },
+ {
+ "customdata": [
+ "01dcac72-145a-4897-928c-dc694c63dbc6",
+ "034265cb-0256-4a34-8975-fad19d73cf66",
+ "15d71e6b-ccd9-4b3c-86c9-3f4e36d14499",
+ "aacf11ec-249d-4837-a9ac-749913fc4943"
+ ],
+ "hovertemplate": "_id: %{customdata}
%{text}",
+ "marker": {
+ "color": "#1CA71C",
+ "size": 3
+ },
+ "mode": "markers",
+ "name": "sdn-issue",
+ "text": [
+ "alert|default|AggregatedAPIDown
alert|kube-system|TargetDown|crio
alert|kube-system|TargetDown|kubelet
alert|openshift-cluster-csi-drivers|KubeDaemonSetRolloutStuck
alert|openshift-cluster-node-tuning-operator|KubeDaemonSetRolloutStuck
alert|openshift-cluster-node-tuning-operator|NTOPodsNotReady
alert|openshift-dns|KubeDaemonSetRolloutStuck
alert|openshift-dns|TargetDown|dns-default
alert|openshift-image-registry|KubeDaemonSetRolloutStuck
alert|openshift-ingress-canary|KubeDaemonSetMisScheduled
alert|openshift-ingress-canary|KubeDaemonSetRolloutStuck
alert|openshift-ingress|KubeDeploymentReplicasMismatch
alert|openshift-ingress|KubePodNotReady
alert|openshift-machine-config-operator|KubeDaemonSetRolloutStuck
alert|openshift-machine-config-operator|TargetDown|machine-config-daemon
alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors
alert|openshift-monitoring|KubeDaemonSetRolloutStuck
alert|openshift-monitoring|KubeNodeNotReady
alert|openshift-monitoring|KubeNodeUnreachable
alert|openshift-monitoring|KubeStatefulSetReplicasMismatch
alert|openshift-monitoring|PrometheusNotConnectedToAlertmanagers
alert|openshift-monitoring|TargetDown|node-exporter
alert|openshift-monitoring|TargetDown|prometheus-operator
alert|openshift-multus|KubeDaemonSetRolloutStuck
alert|openshift-multus|TargetDown|network-metrics-service
alert|openshift-sdn|KubeDaemonSetRolloutStuck
alert|openshift-sdn|SDNPodNotReady
alert|openshift-sdn|TargetDown|sdn
rule|nodes_pressure_check|NODE_PRESSURE
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|ThanosQueryGrpcClientErrorRate
alert|ThanosQueryHighDNSFailures
alert|default|KubeClientCertificateExpiration
alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed
alert|openshift-cluster-version|CannotRetrieveUpdates
alert|openshift-controller-manager|KubeContainerWaiting
alert|openshift-controller-manager|KubeDaemonSetRolloutStuck
alert|openshift-controller-manager|KubePodNotReady
alert|openshift-image-registry|KubeContainerWaiting
alert|openshift-image-registry|KubeJobCompletion
alert|openshift-kube-apiserver|KubeContainerWaiting
alert|openshift-kube-apiserver|KubePodNotReady
alert|openshift-multus|KubeContainerWaiting
alert|openshift-multus|KubeDaemonSetRolloutStuck
alert|openshift-multus|KubePodNotReady
alert|openshift-sdn|KubeDaemonSetRolloutStuck
alert|openshift-sdn|SDNPodNotReady
alert|openshift-sdn|TargetDown|sdn
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|ThanosQueryGrpcClientErrorRate
alert|openshift-dns|KubeDaemonSetRolloutStuck
alert|openshift-dns|TargetDown|dns-default
alert|openshift-ingress|KubeDeploymentReplicasMismatch
alert|openshift-ingress|TargetDown|router-internal-default
alert|openshift-monitoring|PrometheusErrorSendingAlertsToSomeAlertmanagers
alert|openshift-monitoring|TargetDown|alertmanager-main
alert|openshift-monitoring|TargetDown|prometheus-k8s
alert|openshift-monitoring|TargetDown|thanos-querier
alert|openshift-multus|TargetDown|network-metrics-service
alert|openshift-sdn|KubeDaemonSetRolloutStuck
alert|openshift-sdn|SDNPodNotReady
alert|openshift-sdn|TargetDown|sdn
rule|nodes_container_runtime_version_check|NODES_CONTAINER_RUNTIME_VERSION
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|KubeAPIDown
alert|KubeControllerManagerDown
alert|KubeSchedulerDown
alert|kube-system|TargetDown|kubelet
alert|openshift-apiserver|KubeDeploymentReplicasMismatch
alert|openshift-apiserver|KubePodNotReady
alert|openshift-cluster-node-tuning-operator|KubeDaemonSetRolloutStuck
alert|openshift-console|KubeDeploymentReplicasMismatch
alert|openshift-controller-manager|KubeDaemonSetRolloutStuck
alert|openshift-controller-manager|KubePodNotReady
alert|openshift-dns|KubeDaemonSetRolloutStuck
alert|openshift-etcd|KubePodNotReady
alert|openshift-image-registry|KubeDaemonSetRolloutStuck
alert|openshift-image-registry|KubePodNotReady
alert|openshift-kube-apiserver|KubePodNotReady
alert|openshift-kube-controller-manager|KubePodNotReady
alert|openshift-kube-scheduler|KubePodNotReady
alert|openshift-machine-config-operator|KubeDaemonSetMisScheduled
alert|openshift-machine-config-operator|KubeDaemonSetRolloutStuck
alert|openshift-machine-config-operator|KubeDeploymentReplicasMismatch
alert|openshift-machine-config-operator|KubePodNotReady
alert|openshift-monitoring|KubeDaemonSetRolloutStuck
alert|openshift-monitoring|KubeNodeNotReady
alert|openshift-monitoring|KubeNodeUnreachable
alert|openshift-monitoring|KubePodNotReady
alert|openshift-multus|KubeDaemonSetMisScheduled
alert|openshift-multus|KubeDaemonSetRolloutStuck
alert|openshift-sdn|KubeDaemonSetMisScheduled
alert|openshift-sdn|KubeDaemonSetRolloutStuck
alert|openshift-sdn|SDNPodNotReady
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED"
+ ],
+ "type": "scatter3d",
+ "x": [
+ -7.57185173034668,
+ 15.866284370422363,
+ -5.35587739944458,
+ 20.515026092529297
+ ],
+ "y": [
+ -26.779123306274414,
+ -8.908788681030273,
+ -26.864337921142578,
+ -3.6862266063690186
+ ],
+ "z": [
+ 25.572540283203125,
+ 57.87911605834961,
+ 29.253093719482422,
+ 57.599754333496094
+ ]
+ },
+ {
+ "customdata": [
+ "01dcac72-145a-4897-928c-dc694c63dbc6",
+ "aacf11ec-249d-4837-a9ac-749913fc4943"
+ ],
+ "hovertemplate": "_id: %{customdata}
%{text}",
+ "marker": {
+ "color": "#FB0D0D",
+ "size": 3
+ },
+ "mode": "markers",
+ "name": "kubelet-down",
+ "text": [
+ "alert|default|AggregatedAPIDown
alert|kube-system|TargetDown|crio
alert|kube-system|TargetDown|kubelet
alert|openshift-cluster-csi-drivers|KubeDaemonSetRolloutStuck
alert|openshift-cluster-node-tuning-operator|KubeDaemonSetRolloutStuck
alert|openshift-cluster-node-tuning-operator|NTOPodsNotReady
alert|openshift-dns|KubeDaemonSetRolloutStuck
alert|openshift-dns|TargetDown|dns-default
alert|openshift-image-registry|KubeDaemonSetRolloutStuck
alert|openshift-ingress-canary|KubeDaemonSetMisScheduled
alert|openshift-ingress-canary|KubeDaemonSetRolloutStuck
alert|openshift-ingress|KubeDeploymentReplicasMismatch
alert|openshift-ingress|KubePodNotReady
alert|openshift-machine-config-operator|KubeDaemonSetRolloutStuck
alert|openshift-machine-config-operator|TargetDown|machine-config-daemon
alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors
alert|openshift-monitoring|KubeDaemonSetRolloutStuck
alert|openshift-monitoring|KubeNodeNotReady
alert|openshift-monitoring|KubeNodeUnreachable
alert|openshift-monitoring|KubeStatefulSetReplicasMismatch
alert|openshift-monitoring|PrometheusNotConnectedToAlertmanagers
alert|openshift-monitoring|TargetDown|node-exporter
alert|openshift-monitoring|TargetDown|prometheus-operator
alert|openshift-multus|KubeDaemonSetRolloutStuck
alert|openshift-multus|TargetDown|network-metrics-service
alert|openshift-sdn|KubeDaemonSetRolloutStuck
alert|openshift-sdn|SDNPodNotReady
alert|openshift-sdn|TargetDown|sdn
rule|nodes_pressure_check|NODE_PRESSURE
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|KubeAPIDown
alert|KubeControllerManagerDown
alert|KubeSchedulerDown
alert|kube-system|TargetDown|kubelet
alert|openshift-apiserver|KubeDeploymentReplicasMismatch
alert|openshift-apiserver|KubePodNotReady
alert|openshift-cluster-node-tuning-operator|KubeDaemonSetRolloutStuck
alert|openshift-console|KubeDeploymentReplicasMismatch
alert|openshift-controller-manager|KubeDaemonSetRolloutStuck
alert|openshift-controller-manager|KubePodNotReady
alert|openshift-dns|KubeDaemonSetRolloutStuck
alert|openshift-etcd|KubePodNotReady
alert|openshift-image-registry|KubeDaemonSetRolloutStuck
alert|openshift-image-registry|KubePodNotReady
alert|openshift-kube-apiserver|KubePodNotReady
alert|openshift-kube-controller-manager|KubePodNotReady
alert|openshift-kube-scheduler|KubePodNotReady
alert|openshift-machine-config-operator|KubeDaemonSetMisScheduled
alert|openshift-machine-config-operator|KubeDaemonSetRolloutStuck
alert|openshift-machine-config-operator|KubeDeploymentReplicasMismatch
alert|openshift-machine-config-operator|KubePodNotReady
alert|openshift-monitoring|KubeDaemonSetRolloutStuck
alert|openshift-monitoring|KubeNodeNotReady
alert|openshift-monitoring|KubeNodeUnreachable
alert|openshift-monitoring|KubePodNotReady
alert|openshift-multus|KubeDaemonSetMisScheduled
alert|openshift-multus|KubeDaemonSetRolloutStuck
alert|openshift-sdn|KubeDaemonSetMisScheduled
alert|openshift-sdn|KubeDaemonSetRolloutStuck
alert|openshift-sdn|SDNPodNotReady
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED"
+ ],
+ "type": "scatter3d",
+ "x": [
+ -7.57185173034668,
+ 20.515026092529297
+ ],
+ "y": [
+ -26.779123306274414,
+ -3.6862266063690186
+ ],
+ "z": [
+ 25.572540283203125,
+ 57.599754333496094
+ ]
+ },
+ {
+ "customdata": [],
+ "hovertemplate": "_id: %{customdata}
%{text}",
+ "marker": {
+ "color": "#DA16FF",
+ "size": 3
+ },
+ "mode": "markers",
+ "name": "BZ-1821905-DefaultSecurityContextConstraints_Mutated",
+ "text": [],
+ "type": "scatter3d",
+ "x": [],
+ "y": [],
+ "z": []
+ },
+ {
+ "customdata": [],
+ "hovertemplate": "_id: %{customdata}
%{text}",
+ "marker": {
+ "color": "#B68100",
+ "size": 3
+ },
+ "mode": "markers",
+ "name": "4.3-major-upgrade-autoscaler",
+ "text": [],
+ "type": "scatter3d",
+ "x": [],
+ "y": [],
+ "z": []
+ }
+ ],
+ "layout": {
+ "template": {
+ "data": {
+ "bar": [
+ {
+ "error_x": {
+ "color": "#2a3f5f"
+ },
+ "error_y": {
+ "color": "#2a3f5f"
+ },
+ "marker": {
+ "line": {
+ "color": "#E5ECF6",
+ "width": 0.5
+ }
+ },
+ "type": "bar"
+ }
+ ],
+ "barpolar": [
+ {
+ "marker": {
+ "line": {
+ "color": "#E5ECF6",
+ "width": 0.5
+ }
+ },
+ "type": "barpolar"
+ }
+ ],
+ "carpet": [
+ {
+ "aaxis": {
+ "endlinecolor": "#2a3f5f",
+ "gridcolor": "white",
+ "linecolor": "white",
+ "minorgridcolor": "white",
+ "startlinecolor": "#2a3f5f"
+ },
+ "baxis": {
+ "endlinecolor": "#2a3f5f",
+ "gridcolor": "white",
+ "linecolor": "white",
+ "minorgridcolor": "white",
+ "startlinecolor": "#2a3f5f"
+ },
+ "type": "carpet"
+ }
+ ],
+ "choropleth": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "choropleth"
+ }
+ ],
+ "contour": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "contour"
+ }
+ ],
+ "contourcarpet": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "contourcarpet"
+ }
+ ],
+ "heatmap": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "heatmap"
+ }
+ ],
+ "heatmapgl": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "heatmapgl"
+ }
+ ],
+ "histogram": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "histogram"
+ }
+ ],
+ "histogram2d": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "histogram2d"
+ }
+ ],
+ "histogram2dcontour": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "histogram2dcontour"
+ }
+ ],
+ "mesh3d": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "mesh3d"
+ }
+ ],
+ "parcoords": [
+ {
+ "line": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "parcoords"
+ }
+ ],
+ "pie": [
+ {
+ "automargin": true,
+ "type": "pie"
+ }
+ ],
+ "scatter": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatter"
+ }
+ ],
+ "scatter3d": [
+ {
+ "line": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatter3d"
+ }
+ ],
+ "scattercarpet": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattercarpet"
+ }
+ ],
+ "scattergeo": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattergeo"
+ }
+ ],
+ "scattergl": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattergl"
+ }
+ ],
+ "scattermapbox": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattermapbox"
+ }
+ ],
+ "scatterpolar": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterpolar"
+ }
+ ],
+ "scatterpolargl": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterpolargl"
+ }
+ ],
+ "scatterternary": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterternary"
+ }
+ ],
+ "surface": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "surface"
+ }
+ ],
+ "table": [
+ {
+ "cells": {
+ "fill": {
+ "color": "#EBF0F8"
+ },
+ "line": {
+ "color": "white"
+ }
+ },
+ "header": {
+ "fill": {
+ "color": "#C8D4E3"
+ },
+ "line": {
+ "color": "white"
+ }
+ },
+ "type": "table"
+ }
+ ]
+ },
+ "layout": {
+ "annotationdefaults": {
+ "arrowcolor": "#2a3f5f",
+ "arrowhead": 0,
+ "arrowwidth": 1
+ },
+ "autotypenumbers": "strict",
+ "coloraxis": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "colorscale": {
+ "diverging": [
+ [
+ 0,
+ "#8e0152"
+ ],
+ [
+ 0.1,
+ "#c51b7d"
+ ],
+ [
+ 0.2,
+ "#de77ae"
+ ],
+ [
+ 0.3,
+ "#f1b6da"
+ ],
+ [
+ 0.4,
+ "#fde0ef"
+ ],
+ [
+ 0.5,
+ "#f7f7f7"
+ ],
+ [
+ 0.6,
+ "#e6f5d0"
+ ],
+ [
+ 0.7,
+ "#b8e186"
+ ],
+ [
+ 0.8,
+ "#7fbc41"
+ ],
+ [
+ 0.9,
+ "#4d9221"
+ ],
+ [
+ 1,
+ "#276419"
+ ]
+ ],
+ "sequential": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "sequentialminus": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ]
+ },
+ "colorway": [
+ "#636efa",
+ "#EF553B",
+ "#00cc96",
+ "#ab63fa",
+ "#FFA15A",
+ "#19d3f3",
+ "#FF6692",
+ "#B6E880",
+ "#FF97FF",
+ "#FECB52"
+ ],
+ "font": {
+ "color": "#2a3f5f"
+ },
+ "geo": {
+ "bgcolor": "white",
+ "lakecolor": "white",
+ "landcolor": "#E5ECF6",
+ "showlakes": true,
+ "showland": true,
+ "subunitcolor": "white"
+ },
+ "hoverlabel": {
+ "align": "left"
+ },
+ "hovermode": "closest",
+ "mapbox": {
+ "style": "light"
+ },
+ "paper_bgcolor": "white",
+ "plot_bgcolor": "#E5ECF6",
+ "polar": {
+ "angularaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "bgcolor": "#E5ECF6",
+ "radialaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ }
+ },
+ "scene": {
+ "xaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ },
+ "yaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ },
+ "zaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ }
+ },
+ "shapedefaults": {
+ "line": {
+ "color": "#2a3f5f"
+ }
+ },
+ "ternary": {
+ "aaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "baxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "bgcolor": "#E5ECF6",
+ "caxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ }
+ },
+ "title": {
+ "x": 0.05
+ },
+ "xaxis": {
+ "automargin": true,
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": "",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "white",
+ "zerolinewidth": 2
+ },
+ "yaxis": {
+ "automargin": true,
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": "",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "white",
+ "zerolinewidth": 2
+ }
+ }
+ }
+ }
+ },
+ "text/html": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# visualize deployments and known diagnoses\n",
+ "fig = go.Figure()\n",
+ "\n",
+ "# data to display when hover over - list of all symptoms\n",
+ "hoverdata = X_df.apply(create_hoverinfo, axis=1)\n",
+ "\n",
+ "# add all deployments\n",
+ "fig.add_trace(\n",
+ " go.Scatter3d(\n",
+ " name=\"all_symptoms\",\n",
+ " mode=\"markers\",\n",
+ " x=X_df_trans[:, 0],\n",
+ " y=X_df_trans[:, 1],\n",
+ " z=X_df_trans[:, 2],\n",
+ " hovertemplate=\"_id: %{customdata}
\" + \"
%{text}\",\n",
+ " customdata=hoverdata.index.tolist(),\n",
+ " text=hoverdata.values,\n",
+ " marker=dict(size=2, color=primary),\n",
+ " )\n",
+ ")\n",
+ "\n",
+ "\n",
+ "for di, diag_name in enumerate(diag_names):\n",
+ " # get deployments hit with current diagnosis\n",
+ " labels = X_df.index.isin(\n",
+ " diagnoses_df[diagnoses_df[\"symptom_id\"] == f\"diagnosis|{diag_name}\"][\n",
+ " \"cluster_id\"\n",
+ " ].unique()\n",
+ " )\n",
+ "\n",
+ " # add data points that have this diagnosis\n",
+ " fig.add_trace(\n",
+ " go.Scatter3d(\n",
+ " name=diag_name,\n",
+ " mode=\"markers\",\n",
+ " x=X_df_trans[labels, 0],\n",
+ " y=X_df_trans[labels, 1],\n",
+ " z=X_df_trans[labels, 2],\n",
+ " hovertemplate=\"_id: %{customdata}
\" + \"
%{text}\",\n",
+ " customdata=hoverdata[labels].index.tolist(),\n",
+ " text=hoverdata[labels].values,\n",
+ " marker=dict(size=3, color=custom_colors[di]),\n",
+ " )\n",
+ " )\n",
+ "\n",
+ "if SAVE_PLOTS:\n",
+ " savedir = \"../../reports/figures\"\n",
+ " fname = f\"symptoms_{umap_instance.metric}_all_diagnoses\"\n",
+ " suffix = f\"{DATE_PREFIX.replace('/', '_')}_{IMAGES_TAG}\"\n",
+ "\n",
+ " print(f\"Saving plot as '{savedir}_{fname}_{suffix}.html'\")\n",
+ " plotly.offline.plot(\n",
+ " fig,\n",
+ " filename=f\"{savedir}/{fname}_{suffix}.html\",\n",
+ " auto_open=True,\n",
+ " )\n",
+ "fig.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "heading_collapsed": true
+ },
+ "source": [
+ "### Interpretation\n",
+ "\n",
+ "- This graph shows the 3d representation of the dataset that UMAP created. Each point on the graph represents a deployment.\n",
+ "\n",
+ "- Hovering over a point (deployment) will show all the symptoms shown by that deployment.\n",
+ "\n",
+ "- The points on the graph are colored by known diagnoses. Here, for example, all the red points represent deployments that kraken diagnosed with \"kubelet-down\". All the green points represent deployments that kraken diagnosed with \"kubelet-down\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Apply Clustering\n",
+ "\n",
+ "Now, we will use DBSCAN for clustering the dimension reduced data.\n",
+ "
**NOTE**: DBSCAN may not be the final algorithm that we use for clustering, but it serves as a good starting point."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2021-01-27T16:42:56.524493Z",
+ "start_time": "2021-01-27T16:42:56.413353Z"
+ },
+ "code_folding": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "DBSCAN(eps=0.325, n_jobs=-1)"
+ ]
+ },
+ "execution_count": 15,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# fit a vanilla dbscan model\n",
+ "dbscan = DBSCAN(\n",
+ " eps=0.325,\n",
+ " n_jobs=-1,\n",
+ ")\n",
+ "dbscan.fit(X_df_trans)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2021-01-27T16:42:56.528651Z",
+ "start_time": "2021-01-27T16:42:56.526088Z"
+ },
+ "code_folding": [
+ 0
+ ]
+ },
+ "outputs": [],
+ "source": [
+ "# unique labels (clusters of deployments) found by dbscan\n",
+ "unique_dbscan_labels = np.unique(dbscan.labels_)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2021-01-27T16:42:56.761522Z",
+ "start_time": "2021-01-27T16:42:56.530354Z"
+ },
+ "code_folding": [
+ 0
+ ]
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Saving plot as '../../reports/figures/dbscan_0.325_5_20201203_1611765763.html'\n"
+ ]
+ },
+ {
+ "data": {
+ "application/vnd.plotly.v1+json": {
+ "config": {
+ "plotlyServerURL": "https://plot.ly"
+ },
+ "data": [
+ {
+ "customdata": [
+ "01dcac72-145a-4897-928c-dc694c63dbc6",
+ "01e6753c-206e-4295-97a0-b58627a38f03",
+ "02dee447-86cb-4ff6-a7c0-78560724b6b8",
+ "07ab669f-ecd3-4dcb-abf7-61bd7b5497ea",
+ "11c7bcc5-b71e-4580-ab99-7e42022336a1",
+ "15d71e6b-ccd9-4b3c-86c9-3f4e36d14499",
+ "24bc14e9-93b9-448d-a855-753623fecbcf",
+ "2fbd7291-8729-43e4-9ba2-49fdf05eeb99",
+ "3528dd41-5a20-4736-925b-be94bfb5ad98",
+ "3b0d6406-7957-4ad9-98b0-79ddc83c2d5b",
+ "46155a9d-1330-49ae-aaa7-c46213e633e3",
+ "5a1c0d89-fb33-43cd-b25d-04db4ac04222",
+ "7cbfa338-4df4-49ee-99a1-5817ebdf76c2",
+ "89a4706c-0b90-41ef-8c4e-7455b253304e",
+ "8df7f319-d5f6-49fa-9df7-01c9aea9d0fe",
+ "98bee7c3-6254-4f06-9c95-09257e8f196d",
+ "9a1b5593-5124-4ac5-bd1c-e7e185e43527",
+ "a1f4d801-8164-4bd9-9a41-4508661c0582",
+ "d491eb1a-7c7c-40dd-837a-561d403a82b1",
+ "d9395395-f246-4cab-ae1d-505211c446b6",
+ "dfd3291e-e550-4960-b748-48bb15d0b0e3",
+ "e48f5eb4-777b-4de0-8186-7504af1431a5",
+ "f0d72eeb-d9fd-4d7b-b92b-6b6920a22838"
+ ],
+ "hovertemplate": "_id: %{customdata}
%{text}",
+ "marker": {
+ "size": 2
+ },
+ "mode": "markers",
+ "name": "Cluster ID -1",
+ "text": [
+ "alert|default|AggregatedAPIDown
alert|kube-system|TargetDown|crio
alert|kube-system|TargetDown|kubelet
alert|openshift-cluster-csi-drivers|KubeDaemonSetRolloutStuck
alert|openshift-cluster-node-tuning-operator|KubeDaemonSetRolloutStuck
alert|openshift-cluster-node-tuning-operator|NTOPodsNotReady
alert|openshift-dns|KubeDaemonSetRolloutStuck
alert|openshift-dns|TargetDown|dns-default
alert|openshift-image-registry|KubeDaemonSetRolloutStuck
alert|openshift-ingress-canary|KubeDaemonSetMisScheduled
alert|openshift-ingress-canary|KubeDaemonSetRolloutStuck
alert|openshift-ingress|KubeDeploymentReplicasMismatch
alert|openshift-ingress|KubePodNotReady
alert|openshift-machine-config-operator|KubeDaemonSetRolloutStuck
alert|openshift-machine-config-operator|TargetDown|machine-config-daemon
alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors
alert|openshift-monitoring|KubeDaemonSetRolloutStuck
alert|openshift-monitoring|KubeNodeNotReady
alert|openshift-monitoring|KubeNodeUnreachable
alert|openshift-monitoring|KubeStatefulSetReplicasMismatch
alert|openshift-monitoring|PrometheusNotConnectedToAlertmanagers
alert|openshift-monitoring|TargetDown|node-exporter
alert|openshift-monitoring|TargetDown|prometheus-operator
alert|openshift-multus|KubeDaemonSetRolloutStuck
alert|openshift-multus|TargetDown|network-metrics-service
alert|openshift-sdn|KubeDaemonSetRolloutStuck
alert|openshift-sdn|SDNPodNotReady
alert|openshift-sdn|TargetDown|sdn
rule|nodes_pressure_check|NODE_PRESSURE
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|FluentdNodeDown
alert|openshift-logging|KubeDaemonSetRolloutStuck
alert|openshift-logging|KubeDeploymentReplicasMismatch
alert|openshift-logging|KubePodNotReady
alert|openshift-logging|TargetDown|elasticsearch-metrics
alert|openshift-logging|TargetDown|fluentd",
+ "alert|kube-system|TargetDown|crio
alert|openshift-machine-api|MachineWithNoRunningPhase
alert|openshift-machine-api|MachineWithoutValidNode
alert|openshift-multus|KubeDaemonSetRolloutStuck
alert|openshift-multus|KubePodNotReady
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "foc|version|Progressing|DownloadingUpdate|41a9
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|FluentdNodeDown
alert|openshift-logging|KubeDaemonSetRolloutStuck
alert|openshift-logging|KubeDeploymentReplicasMismatch
alert|openshift-logging|KubePodNotReady
alert|openshift-logging|TargetDown|elasticsearch-metrics
alert|openshift-logging|TargetDown|fluentd",
+ "alert|ThanosQueryGrpcClientErrorRate
alert|openshift-dns|KubeDaemonSetRolloutStuck
alert|openshift-dns|TargetDown|dns-default
alert|openshift-ingress|KubeDeploymentReplicasMismatch
alert|openshift-ingress|TargetDown|router-internal-default
alert|openshift-monitoring|PrometheusErrorSendingAlertsToSomeAlertmanagers
alert|openshift-monitoring|TargetDown|alertmanager-main
alert|openshift-monitoring|TargetDown|prometheus-k8s
alert|openshift-monitoring|TargetDown|thanos-querier
alert|openshift-multus|TargetDown|network-metrics-service
alert|openshift-sdn|KubeDaemonSetRolloutStuck
alert|openshift-sdn|SDNPodNotReady
alert|openshift-sdn|TargetDown|sdn
rule|nodes_container_runtime_version_check|NODES_CONTAINER_RUNTIME_VERSION
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|KubeAPIErrorsHigh
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|openshift-cluster-version|CannotRetrieveUpdates",
+ "alert|ThanosQueryHighDNSFailures
alert|openshift-cluster-version|CannotRetrieveUpdates
alert|openshift-machine-api|TargetDown|machine-api-controllers
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|FluentdNodeDown
alert|openshift-logging|KubeDaemonSetRolloutStuck
alert|openshift-logging|KubeDeploymentReplicasMismatch
alert|openshift-logging|KubePodNotReady
alert|openshift-logging|TargetDown|elasticsearch-metrics
alert|openshift-logging|TargetDown|fluentd",
+ "alert|FluentdNodeDown
alert|openshift-logging|TargetDown|fluentd
alert|openshift-machine-api|MachineWithNoRunningPhase
alert|openshift-machine-api|MachineWithoutValidNode",
+ "alert|kube-system|TargetDown|crio
alert|openshift-machine-api|MachineWithNoRunningPhase
alert|openshift-machine-api|MachineWithoutValidNode
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|ClusterAutoscalerOperatorDown
alert|openshift-dns|TargetDown|dns-default
alert|openshift-machine-api|TargetDown|cluster-autoscaler-operator
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator
alert|openshift-multus|TargetDown|multus-admission-controller
alert|openshift-multus|TargetDown|network-metrics-service
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|ThanosQueryHighDNSFailures
alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed
alert|openshift-machine-api|MachineWithNoRunningPhase
alert|openshift-machine-api|MachineWithoutValidNode",
+ "alert|default|KubeAPILatencyHigh",
+ "alert|default|KubeAPILatencyHigh",
+ "alert|MachineAPIOperatorDown
alert|default|KubeAPILatencyHigh
alert|etcdMembersDown
rule|ocp_version_end_of_life|OCP4X_BEYOND_EOL
rule|version_forced|FORCED_VERSION_UPDATES
rule|version_retarget|ABORTED_UPDATES_IN_RECENT_HISTORY",
+ "alert|openshift-cluster-version|CannotRetrieveUpdates
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|ThanosQueryGrpcClientErrorRate
alert|openshift-dns|TargetDown|dns-default
alert|openshift-image-registry|TargetDown|image-registry
alert|openshift-ingress|TargetDown|router-internal-default
alert|openshift-machine-api|MachineWithoutValidNode
alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors
alert|openshift-monitoring|PrometheusErrorSendingAlertsToSomeAlertmanagers
alert|openshift-monitoring|TargetDown|alertmanager-main
alert|openshift-monitoring|TargetDown|kube-state-metrics
alert|openshift-monitoring|TargetDown|prometheus-adapter
alert|openshift-monitoring|TargetDown|prometheus-k8s
alert|openshift-monitoring|TargetDown|thanos-querier
alert|openshift-multus|TargetDown|network-metrics-service
alert|openshift-sdn|TargetDown|sdn
rule|nodes_container_runtime_version_check|NODES_CONTAINER_RUNTIME_VERSION
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|ThanosQueryHighDNSFailures",
+ "alert|default|KubeAPILatencyHigh
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|ThanosQueryHighDNSFailures
alert|openshift-cluster-version|CannotRetrieveUpdates
alert|openshift-machine-api|TargetDown|machine-api-controllers
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|FluentdNodeDown
alert|openshift-logging|KubeDaemonSetRolloutStuck
alert|openshift-logging|KubePodNotReady
alert|openshift-logging|TargetDown|fluentd
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE"
+ ],
+ "type": "scatter3d",
+ "x": [
+ -7.57185173034668,
+ 24.299129486083984,
+ -5.162714958190918,
+ -7.430389881134033,
+ 24.189117431640625,
+ -5.35587739944458,
+ -7.426082611083984,
+ -7.069526195526123,
+ -3.7356204986572266,
+ 24.247068405151367,
+ -5.468412399291992,
+ -5.273580551147461,
+ -7.037590026855469,
+ -6.26645040512085,
+ 15.006304740905762,
+ 15.006254196166992,
+ -0.22985664010047913,
+ 6.1047563552856445,
+ -5.356784343719482,
+ -5.991542339324951,
+ 19.397192001342773,
+ -3.7358646392822266,
+ 24.284372329711914
+ ],
+ "y": [
+ -26.779123306274414,
+ 16.93421745300293,
+ -27.239530563354492,
+ -26.67815589904785,
+ 16.817724227905273,
+ -26.864337921142578,
+ -26.405424118041992,
+ -26.616918563842773,
+ -26.42074203491211,
+ 16.877120971679688,
+ -27.076213836669922,
+ -27.177194595336914,
+ -26.302261352539062,
+ -26.968067169189453,
+ -15.773283958435059,
+ -15.77324390411377,
+ -25.314373016357422,
+ -22.13174057006836,
+ -26.866470336914062,
+ -27.129201889038086,
+ -6.159181594848633,
+ -26.420835494995117,
+ 16.918899536132812
+ ],
+ "z": [
+ 25.572540283203125,
+ 56.66353225708008,
+ 28.078872680664062,
+ 23.85738182067871,
+ 56.55369567871094,
+ 29.253093719482422,
+ 24.05994987487793,
+ 26.93425750732422,
+ 34.94251251220703,
+ 56.611610412597656,
+ 28.087081909179688,
+ 28.01077651977539,
+ 25.27708625793457,
+ 26.049564361572266,
+ 48.21512985229492,
+ 48.21510314941406,
+ 38.34010314941406,
+ 43.03556442260742,
+ 29.238508224487305,
+ 25.254777908325195,
+ 54.074031829833984,
+ 34.941436767578125,
+ 56.648799896240234
+ ]
+ },
+ {
+ "customdata": [
+ "00e8050c-dc82-4a72-80c3-4b535243230f",
+ "2ee82b83-9810-4866-9eb8-f5e2e3367729",
+ "444a8760-ea00-46b9-9c91-ee5824382f35",
+ "4d1997d3-290b-4a9b-972a-27994db61beb",
+ "709db283-6a8d-4886-b132-98c77e30f47e",
+ "829ca3a0-69c4-40a1-8508-784135568ed6",
+ "84c00500-7615-4867-9995-654240256ee2",
+ "956afc1f-ee88-4fae-8c50-635629af1349",
+ "9980c1b3-d778-4813-8421-b99005a20605",
+ "a6b50ca7-8f81-4ac3-8432-03688ef6a581",
+ "b9ccf211-657f-4e7d-bd2e-747433cc68e8",
+ "c720fe02-c541-4a87-9ffc-351fd11dfe7f",
+ "d280e934-b02d-48bd-b224-210f9ea20fcc",
+ "e8510652-c560-4dda-b876-453d8aeb5826",
+ "f120ced6-0d37-4fa5-8749-5f1065b2a0e4",
+ "f1c202d1-55bc-44dd-9752-799562e21056",
+ "f8dcfdcc-a5a4-4154-808a-55539c240735"
+ ],
+ "hovertemplate": "_id: %{customdata}
%{text}",
+ "marker": {
+ "size": 2
+ },
+ "mode": "markers",
+ "name": "Cluster ID 0",
+ "text": [
+ "alert|KubeClientErrors
alert|default|AggregatedAPIDown
alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors
alert|openshift-monitoring|KubeContainerWaiting
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|prometheus-adapter
foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc
foc|monitoring|Progressing|RollOutInProgress|f311
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|KubeClientErrors
alert|default|AggregatedAPIDown
alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors
alert|openshift-monitoring|KubeContainerWaiting
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|prometheus-adapter
foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc",
+ "alert|KubeClientErrors
alert|default|AggregatedAPIDown
alert|openshift-image-registry|KubeContainerWaiting
alert|openshift-image-registry|KubePodNotReady
alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors
alert|openshift-monitoring|KubeContainerWaiting
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|prometheus-adapter
foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc
foc|version|Failing|MultipleErrors|0e74",
+ "alert|KubeClientErrors
alert|default|AggregatedAPIDown
alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed
alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors
alert|openshift-monitoring|KubeContainerWaiting
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|prometheus-adapter
foc|cloud-credential|Degraded|CredentialsFailing|337e
foc|cloud-credential|Progressing|Reconciling|b7a8
foc|image-registry|Progressing|Error|79db
foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc
foc|monitoring|Progressing|RollOutInProgress|f311",
+ "alert|KubeClientErrors
alert|default|AggregatedAPIDown
alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed
alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|prometheus-adapter
foc|cloud-credential|Degraded|CredentialsFailing|337e
foc|cloud-credential|Progressing|Reconciling|b7a8
foc|image-registry|Progressing|Error|79db
foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc
foc|monitoring|Progressing|RollOutInProgress|f311
foc|version|Failing|MultipleErrors|3b4f",
+ "alert|KubeClientErrors
alert|default|AggregatedAPIDown
alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors
alert|openshift-monitoring|KubeContainerWaiting
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|prometheus-adapter
foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|KubeClientErrors
alert|ThanosQueryHighDNSFailures
alert|default|AggregatedAPIDown
alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed
alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors
alert|openshift-monitoring|KubeContainerWaiting
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|prometheus-adapter
foc|cloud-credential|Degraded|CredentialsFailing|337e
foc|cloud-credential|Progressing|Reconciling|b7a8
foc|image-registry|Progressing|Error|7756
foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc
foc|monitoring|Progressing|RollOutInProgress|f311
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|KubeClientErrors
alert|default|AggregatedAPIDown
alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed
alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors
alert|openshift-monitoring|KubeContainerWaiting
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|prometheus-adapter
foc|cloud-credential|Degraded|CredentialsFailing|337e
foc|cloud-credential|Progressing|Reconciling|b7a8
foc|image-registry|Progressing|Error|79db
foc|monitoring|Degraded|UpdatingPrometheusK8SFailed|4760
foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc
foc|monitoring|Progressing|RollOutInProgress|f311",
+ "alert|ThanosQueryHighDNSFailures
alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors
alert|openshift-monitoring|KubeContainerWaiting
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|prometheus-adapter
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|KubeClientErrors
alert|default|AggregatedAPIDown
alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors
alert|openshift-monitoring|KubeContainerWaiting
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|prometheus-adapter
foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|KubeClientErrors
alert|ThanosQueryHighDNSFailures
alert|default|AggregatedAPIDown
alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed
alert|openshift-kube-controller-manager|TargetDown|kube-controller-manager
alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors
alert|openshift-monitoring|KubeContainerWaiting
alert|openshift-monitoring|KubeDeploymentGenerationMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|prometheus-adapter
foc|cloud-credential|Degraded|CredentialsFailing|337e
foc|cloud-credential|Progressing|Reconciling|b7a8
foc|image-registry|Progressing|Error|7756
foc|kube-controller-manager|Degraded|StaticPods_Error|34f4
foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|8930
foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc
foc|monitoring|Progressing|RollOutInProgress|f311
foc|version|Failing|MultipleErrors|fa9b
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|KubeClientErrors
alert|default|AggregatedAPIDown
alert|default|KubeClientCertificateExpiration
alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed
alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors
alert|openshift-monitoring|KubeContainerWaiting
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|prometheus-adapter
foc|cloud-credential|Degraded|CredentialsFailing|337e
foc|cloud-credential|Progressing|Reconciling|b7a8
foc|image-registry|Progressing|Error|79db
foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc
foc|monitoring|Progressing|RollOutInProgress|f311
foc|version|Failing|MultipleErrors|3b4f",
+ "alert|default|AggregatedAPIDown
alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|prometheus-adapter
foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc",
+ "alert|KubeClientErrors
alert|default|AggregatedAPIDown
alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors
alert|openshift-monitoring|KubeContainerWaiting
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|prometheus-adapter
foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc
foc|monitoring|Progressing|RollOutInProgress|f311",
+ "alert|ClusterNotUpgradeable
alert|KubeAPIDown
alert|KubeControllerManagerDown
alert|KubeSchedulerDown
alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors
alert|openshift-monitoring|KubeContainerWaiting
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|prometheus-adapter
foc|machine-config|Degraded|RequiredPoolsFailed|0fa6
foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc
foc|monitoring|Progressing|RollOutInProgress|f311
foc|version|Upgradeable|One or more machine config pool is degraded, please see `oc get mcp` for further details and resolve before upgrading|54d5",
+ "alert|ThanosQueryHighDNSFailures
alert|default|AggregatedAPIDown
alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed
alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors
alert|openshift-monitoring|KubeContainerWaiting
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|prometheus-adapter
foc|cloud-credential|Degraded|CredentialsFailing|337e
foc|cloud-credential|Progressing|Reconciling|b7a8
foc|image-registry|Progressing|Error|79db
foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc",
+ "alert|KubeClientErrors
alert|default|AggregatedAPIDown
alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors
alert|openshift-monitoring|KubeContainerWaiting
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|prometheus-adapter
foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET"
+ ],
+ "type": "scatter3d",
+ "x": [
+ 14.701431274414062,
+ 14.604913711547852,
+ 14.590171813964844,
+ 14.493627548217773,
+ 14.411581993103027,
+ 14.659029006958008,
+ 14.592086791992188,
+ 14.510737419128418,
+ 14.679250717163086,
+ 14.683895111083984,
+ 14.577311515808105,
+ 14.504204750061035,
+ 14.750651359558105,
+ 14.632951736450195,
+ 14.769547462463379,
+ 14.53292465209961,
+ 14.615621566772461
+ ],
+ "y": [
+ 11.950806617736816,
+ 12.054142951965332,
+ 11.995240211486816,
+ 12.173516273498535,
+ 12.250931739807129,
+ 12.037797927856445,
+ 12.058063507080078,
+ 12.16656494140625,
+ 12.05622673034668,
+ 11.971056938171387,
+ 11.936927795410156,
+ 12.16248607635498,
+ 11.917290687561035,
+ 12.044049263000488,
+ 11.904377937316895,
+ 12.136640548706055,
+ 12.046242713928223
+ ],
+ "z": [
+ 21.78303337097168,
+ 21.80187225341797,
+ 21.812231063842773,
+ 21.947315216064453,
+ 22.0239200592041,
+ 21.875444412231445,
+ 21.860435485839844,
+ 21.95639419555664,
+ 21.980844497680664,
+ 21.84247398376465,
+ 21.894268035888672,
+ 21.930086135864258,
+ 21.849903106689453,
+ 21.782424926757812,
+ 21.850664138793945,
+ 21.9367618560791,
+ 21.844860076904297
+ ]
+ },
+ {
+ "customdata": [
+ "00ecb624-57ad-4f9d-8580-b6e1373c5a45",
+ "02e77350-8c29-474d-8515-feb81e6a6877",
+ "0926aa4a-13a2-476a-9113-5d55f34018e8",
+ "09302ee7-4513-4875-86f5-535fd09fab30",
+ "0c5503fa-1a30-4c48-b396-4fc7127893d2",
+ "13667454-68b7-449f-81bc-367f0d40ce0c",
+ "139bb02a-2e61-49ba-8afa-de58cee335f5",
+ "1b135a7a-dd17-4a4f-9cda-8384cd43db7f",
+ "1b895c92-db37-4981-b69c-5a6acbbf6bf7",
+ "1bf4b0b6-354c-46c9-b99c-7541d6378178",
+ "2853cfe4-c68b-4225-b7ec-bb383b7794f1",
+ "359c24ed-34d7-4c40-a630-719e66fe854d",
+ "39a1bb00-1a15-473f-aefb-9222007fb00c",
+ "4871beb2-83a8-4909-a05a-377a0aaf527d",
+ "56721f1e-22de-46e0-be9b-d9fd7c75f2da",
+ "5b0b6daf-c284-4fcb-8500-fe5633a7bea8",
+ "5cdfbdf7-5970-4a2b-9e60-5e5c8bd9b34a",
+ "6f5910c6-f9ea-4b8f-8c0c-bddca00356c0",
+ "7065cf2c-c46f-44e9-9d79-e11693a80543",
+ "803ded60-5e5a-4221-b465-46a1ef0cbd76",
+ "80a2d474-2fa7-42af-9588-7a3cd4459f8e",
+ "856d4d91-a539-4f04-b156-17dbb8b083e1",
+ "863cf1b9-7307-4612-8aaa-8aa47aef2f77",
+ "9585308b-89cd-486b-87d7-eebc004f51e7",
+ "a45fb89d-2e63-464e-bb9d-c75bbd407f69",
+ "a78e1833-9234-47c2-80b4-169a951f28ca",
+ "ae367f95-cb50-4e03-abad-f4f7e168944a",
+ "c18d0632-d41e-4782-aa2c-311348002bb8",
+ "c487533f-581d-4eed-88bf-2fea69666aae",
+ "c98f1697-0952-4da5-a443-1ca24a1a78ab",
+ "cdb52d2e-b937-46ac-a6ae-9fbb153b6aea",
+ "d0258a17-4399-480b-b633-596c72741c51",
+ "d11454d4-0d5d-4b4c-8eb8-4d5856a16980",
+ "d2089b46-4446-4bd6-8cf7-5d99aac9c52a",
+ "d6503dfe-856c-43dd-9848-b1e8b841df50",
+ "ea70b1d4-eae9-4a1a-a23d-4d5e564e276b",
+ "f4d5f271-1576-4df9-ae42-462c2bf73ca9",
+ "fd08c95b-f367-45be-8bf2-7c93bb74c52e"
+ ],
+ "hovertemplate": "_id: %{customdata}
%{text}",
+ "marker": {
+ "size": 2
+ },
+ "mode": "markers",
+ "name": "Cluster ID 1",
+ "text": [
+ "rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "alert|default|KubeAPILatencyHigh
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "alert|openshift-image-registry|ImagePruningDisabled
rule|ingress_operator_degraded_with_reason_ingresscontrollers|INGRESS_OPERATOR_DEGRADED_WITH_REASON_INGRESSCONTROLLERSDEGRADED
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "alert|default|KubeAPILatencyHigh
alert|openshift-image-registry|ImagePruningDisabled
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "alert|openshift-image-registry|ImagePruningDisabled",
+ "rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "alert|openshift-image-registry|ImagePruningDisabled
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|tekton-pipelines|PodDisruptionBudgetAtLimit
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "alert|openshift-image-registry|ImagePruningDisabled
alert|tekton-pipelines|PodDisruptionBudgetAtLimit
rule|ingress_operator_degraded_with_reason_ingresscontrollers|INGRESS_OPERATOR_DEGRADED_WITH_REASON_INGRESSCONTROLLERSDEGRADED
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "alert|openshift-image-registry|ImagePruningDisabled
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "alert|openshift-image-registry|ImagePruningDisabled
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "alert|tekton-pipelines|PodDisruptionBudgetAtLimit
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "alert|openshift-logging|KubeDaemonSetRolloutStuck
alert|openshift-logging|KubeDeploymentReplicasMismatch
alert|openshift-logging|KubePodNotReady
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "alert|openshift-image-registry|ImagePruningDisabled
rule|ingress_operator_degraded_with_reason_ingresscontrollers|INGRESS_OPERATOR_DEGRADED_WITH_REASON_INGRESSCONTROLLERSDEGRADED
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "alert|openshift-image-registry|ImagePruningDisabled
rule|ingress_operator_degraded_with_reason_ingresscontrollers|INGRESS_OPERATOR_DEGRADED_WITH_REASON_INGRESSCONTROLLERSDEGRADED
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "rule|ingress_operator_degraded_with_reason_ingresscontrollers|INGRESS_OPERATOR_DEGRADED_WITH_REASON_INGRESSCONTROLLERSDEGRADED
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "alert|openshift-image-registry|ImagePruningDisabled
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "alert|openshift-image-registry|ImagePruningDisabled
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|openshift-image-registry|ImagePruningDisabled
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "alert|openshift-image-registry|ImagePruningDisabled
alert|openshift-kube-apiserver-operator|TechPreviewNoUpgrade
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|etcdMembersDown
alert|openshift-image-registry|ImagePruningDisabled
alert|openshift-monitoring|KubeNodeUnreachable
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|openshift-image-registry|ImagePruningDisabled
rule|ingress_operator_degraded_with_reason_ingresscontrollers|INGRESS_OPERATOR_DEGRADED_WITH_REASON_INGRESSCONTROLLERSDEGRADED
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "alert|openshift-image-registry|ImagePruningDisabled
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "alert|openshift-image-registry|ImagePruningDisabled
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "alert|openshift-marketplace|KubeContainerWaiting
alert|openshift-marketplace|KubePodNotReady
foc|image-registry|Progressing|Error|79db
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "alert|openshift-image-registry|ImagePruningDisabled
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "alert|tekton-pipelines|PodDisruptionBudgetAtLimit
rule|ingress_operator_degraded_with_reason_ingresscontrollers|INGRESS_OPERATOR_DEGRADED_WITH_REASON_INGRESSCONTROLLERSDEGRADED
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED"
+ ],
+ "type": "scatter3d",
+ "x": [
+ 18.07594108581543,
+ 18.144577026367188,
+ 18.63059425354004,
+ 18.621116638183594,
+ 18.681827545166016,
+ 18.226787567138672,
+ 18.94855308532715,
+ 18.147584915161133,
+ 17.94161605834961,
+ 18.24131202697754,
+ 18.810264587402344,
+ 18.631898880004883,
+ 18.086484909057617,
+ 19.005802154541016,
+ 18.038145065307617,
+ 18.2108154296875,
+ 18.270740509033203,
+ 18.148122787475586,
+ 18.712482452392578,
+ 18.642213821411133,
+ 18.273216247558594,
+ 18.484359741210938,
+ 18.90683364868164,
+ 18.958452224731445,
+ 18.10479736328125,
+ 18.305288314819336,
+ 19.025781631469727,
+ 18.546592712402344,
+ 18.708141326904297,
+ 18.158512115478516,
+ 18.071727752685547,
+ 18.447555541992188,
+ 18.529943466186523,
+ 18.207677841186523,
+ 18.188343048095703,
+ 18.533987045288086,
+ 18.236581802368164,
+ 18.441099166870117
+ ],
+ "y": [
+ -5.9461798667907715,
+ -5.895166397094727,
+ -6.082215785980225,
+ -6.035512924194336,
+ -6.064774990081787,
+ -6.198072910308838,
+ -6.022517681121826,
+ -6.09999418258667,
+ -6.2541327476501465,
+ -6.100539684295654,
+ -6.159736156463623,
+ -6.105352878570557,
+ -5.914007186889648,
+ -5.949207782745361,
+ -6.129349231719971,
+ -6.096770286560059,
+ -6.147867202758789,
+ -5.993408203125,
+ -6.112416744232178,
+ -6.122944355010986,
+ -6.3208112716674805,
+ -6.0539069175720215,
+ -6.019707679748535,
+ -5.965411186218262,
+ -6.153355598449707,
+ -5.89190673828125,
+ -5.987359523773193,
+ -5.782250881195068,
+ -6.13960599899292,
+ -6.023045063018799,
+ -5.969045639038086,
+ -5.971152305603027,
+ -5.956844806671143,
+ -6.023324966430664,
+ -6.09067440032959,
+ -5.990329265594482,
+ -6.069391250610352,
+ -6.270835876464844
+ ],
+ "z": [
+ 53.72732925415039,
+ 53.502891540527344,
+ 53.778053283691406,
+ 53.69913864135742,
+ 53.75299072265625,
+ 53.8009147644043,
+ 53.64635467529297,
+ 53.733890533447266,
+ 53.565147399902344,
+ 53.761505126953125,
+ 53.89307403564453,
+ 53.75702667236328,
+ 53.57343673706055,
+ 53.68470001220703,
+ 53.48530197143555,
+ 53.68459701538086,
+ 53.653228759765625,
+ 53.664974212646484,
+ 53.8111686706543,
+ 53.81877136230469,
+ 53.91914367675781,
+ 53.645172119140625,
+ 53.6876335144043,
+ 53.64399719238281,
+ 53.80305480957031,
+ 53.492103576660156,
+ 53.65849304199219,
+ 53.730770111083984,
+ 53.844642639160156,
+ 53.6658821105957,
+ 53.72597885131836,
+ 53.69868469238281,
+ 53.67804718017578,
+ 53.66916275024414,
+ 53.7143440246582,
+ 53.729949951171875,
+ 53.70216751098633,
+ 53.93247604370117
+ ]
+ },
+ {
+ "customdata": [
+ "01427d31-d077-4f59-baae-f6eb3709d97b",
+ "036fd0c4-fdc1-4675-bbfe-3c5c3a7aff15",
+ "04197076-def0-4377-ac12-19ca9ad14a54",
+ "06f1b300-3ac4-443e-95d7-ca7e406168a1",
+ "075253f0-1284-49d1-b240-cf341df5e4c3",
+ "0a3e106c-6768-487d-be2d-39b057313c2e",
+ "0e50f47c-2f1b-46a5-850c-a3355288cea1",
+ "1d12afdf-2cce-4ee9-ac9a-c4d4660e4a77",
+ "1dfce2ec-88ca-4d33-9252-fa0a21fe6969",
+ "2184c66f-924e-4504-9c15-637dca3ad3b8",
+ "263b8380-63b1-4207-8ad2-05557151fa12",
+ "2e6d3bc4-636b-4844-8e4c-516694afab07",
+ "2e753c82-ebfb-4671-bc97-610766f6a584",
+ "307b0713-abce-4f4d-a1cd-d913afa17807",
+ "346a88ef-b219-473c-9845-d71af4eaa920",
+ "403c68bd-4953-4b3c-8be6-4e8b674921a0",
+ "4291db12-e40c-43a4-9cbc-945ab8a68c82",
+ "45c7192f-cc3a-4893-b3c4-3bde25fe072c",
+ "45f57b15-d2c6-4003-a230-c5b4186d3843",
+ "46b0b5f6-30b3-4825-b28f-d0e9dca3fa2c",
+ "4a4c4cbc-f465-4704-a970-a236e8984a2a",
+ "565ca940-82d4-41b5-ab4f-bce6ca2fe894",
+ "57b96d06-ff1b-4ae4-864e-ef49ef80f4aa",
+ "597d58e8-7316-48cf-b298-b16fcdffd179",
+ "5ca1c465-2fb1-4baf-8d5c-506ba3692dfd",
+ "5cfd7901-11ca-423e-bde7-5779ca03ecb7",
+ "5ddc8ee8-7cb8-4d95-9953-ee573e52b01b",
+ "5edf5484-c068-4be3-a902-84ad4dea25c1",
+ "5efdafdf-ec13-4a7c-bcae-8de93b304d00",
+ "63014021-a9e1-46df-b926-4612b46d3b05",
+ "6a0c127a-8eec-4301-a16a-0f29f38f3581",
+ "6c7ddd05-4f0b-4a03-8972-48660095dd3c",
+ "6f0580f3-0537-488c-8dc7-2f7386802f59",
+ "705ab3d3-443c-49ba-a5f3-271d685d3c73",
+ "7301abcd-a283-414e-bb7a-53e606831be7",
+ "7386fc3f-de42-4e1c-8218-27c9579385ab",
+ "76d337a6-9783-4bdd-bbc4-1aa0af9249b0",
+ "7939ed7f-487f-472a-8dd2-05eb4aed5858",
+ "7cd56418-a88b-4745-ad4a-c9111cd3707d",
+ "8c4cde8d-1de4-47b6-be65-a3c872cd7d74",
+ "92e24ec4-e057-4508-a1e3-aa66d4cfb365",
+ "9548e942-7c82-4e41-87c8-78a4519b5e31",
+ "9d020a6c-5617-437b-8ccc-13918a31bcc1",
+ "9fca228b-5e75-4200-aded-f3e896c98ff2",
+ "a2b088e2-c26a-4bd8-86bc-c1cdeff4ff5e",
+ "a45cf093-6a5c-43fe-8d35-a99c7629b45a",
+ "a4e9ea2a-1be9-4cf3-91e3-b736d51ff577",
+ "ac7022e6-2bd4-456c-8d78-beb70469b218",
+ "ad78fd9f-ef8a-43d0-9211-ceee02f5d666",
+ "afeb8eb3-898f-4cdb-a3ef-ab3a4987568e",
+ "b12ec028-fdde-43de-b1da-5c22826a7c65",
+ "b7ab4c53-4fcf-43a0-b69f-4a80e36135d7",
+ "b7c0830c-0f6f-4ceb-a3ae-647fa62ddc51",
+ "bbb174a6-361c-4301-a36f-ac5829407288",
+ "c29c2145-34b5-4855-bf85-3de69ec3ef0f",
+ "c4ea5233-df0b-4856-8174-16595b9f3994",
+ "c653bbd4-880c-4dd7-83b6-46876531c4e3",
+ "c85c0fdb-c7ab-4762-b5a8-f5081febe9d5",
+ "ca023e55-e92b-4aea-b3de-7b74db08ec49",
+ "cca2f3fd-5686-45c3-9a64-5355e2ea421f",
+ "d263f7cf-27a6-4d15-bfd3-56044783b3d9",
+ "d5e27157-0ace-45a4-a296-3a1ac6e711fa",
+ "deb1cf82-5076-43c4-b21c-b3ebf567ed8f",
+ "e8f3e04a-d45b-40af-b8a4-5ede7d83f437",
+ "ea340aa6-2bfe-4d63-b71b-2a930987a45e",
+ "ee090aad-c491-4aa4-99f1-c14aca5d72a4",
+ "eef7aa97-4b23-41f6-9cac-32c33eccd9e6",
+ "f0038537-7aef-49f8-b21f-b152c5755404",
+ "f41083a9-5d8b-49ad-a3a8-64ab04c7e62f",
+ "f9f4cd7e-e9e3-4951-b24a-9109a6c5135e",
+ "fa6f46ba-109a-419f-ba8a-dd06dd7ed2f2",
+ "fd2c664f-3f59-4ffa-9a93-7f81d7fa9301",
+ "ff4c3998-8cfa-4bd8-b2b8-7fa30e88748c"
+ ],
+ "hovertemplate": "_id: %{customdata}
%{text}",
+ "marker": {
+ "size": 2
+ },
+ "mode": "markers",
+ "name": "Cluster ID 2",
+ "text": [
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|ThanosQueryHighDNSFailures
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|openshift-operator-lifecycle-manager|FailingOperator
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|openshift-image-registry|KubeJobFailed
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|ThanosQueryHighDNSFailures
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|KubeClientErrors
alert|default|AggregatedAPIDown
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|openshift-operator-lifecycle-manager|FailingOperator
alert|openshift-storage|KubeDeploymentReplicasMismatch
alert|openshift-storage|KubePodNotReady
alert|openshift-storage|PodDisruptionBudgetAtLimit
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|ThanosQueryHighDNSFailures
alert|openshift-operator-lifecycle-manager|FailingOperator
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|ThanosQueryHighDNSFailures
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|knative-serving|PodDisruptionBudgetAtLimit
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|ClusterNotUpgradeable
alert|ThanosQueryHighDNSFailures
rule|bug_1766907|BUGZILLA_BUG_1766907
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|ClusterNotUpgradeable
alert|openshift-cluster-csi-drivers|KubeContainerWaiting
alert|openshift-cluster-csi-drivers|KubeDeploymentReplicasMismatch
alert|openshift-cluster-csi-drivers|KubePodNotReady
alert|openshift-console|KubeDeploymentReplicasMismatch
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|ingress_operator_degraded_with_reason_ingresscontrollers|INGRESS_OPERATOR_DEGRADED_WITH_REASON_INGRESSCONTROLLERSDEGRADED
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|KubeAPIErrorBudgetBurn
alert|openshift-console|KubeDeploymentReplicasMismatch
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|KubeAPIErrorBudgetBurn
alert|openshift-config-operator|TargetDown|metrics
alert|openshift-etcd|etcdMemberCommunicationSlow
alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|ThanosQueryHighDNSFailures
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|nodes_pressure_check|NODE_PRESSURE
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|kube-system|TargetDown|crio
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|default|AggregatedAPIDown
alert|openshift-operator-lifecycle-manager|FailingOperator
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|openshift-operator-lifecycle-manager|FailingOperator
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|KubeClientErrors
alert|openshift-operator-lifecycle-manager|FailingOperator
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|openshift-debug-network-hi92x|KubeDeploymentReplicasMismatch
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE"
+ ],
+ "type": "scatter3d",
+ "x": [
+ -4.814838886260986,
+ -5.044735908508301,
+ -4.911405563354492,
+ -4.93621826171875,
+ -4.690492630004883,
+ -5.0703840255737305,
+ -4.811809062957764,
+ -5.30787467956543,
+ -4.882497310638428,
+ -4.8765764236450195,
+ -4.731571674346924,
+ -4.946216583251953,
+ -4.920126914978027,
+ -5.1693925857543945,
+ -5.0991950035095215,
+ -5.398678779602051,
+ -4.847675323486328,
+ -5.3329291343688965,
+ -5.30719518661499,
+ -5.409651756286621,
+ -5.335118770599365,
+ -5.3941755294799805,
+ -5.8678364753723145,
+ -5.0008344650268555,
+ -4.929974555969238,
+ -5.160518169403076,
+ -4.937394618988037,
+ -5.105307102203369,
+ -5.586767673492432,
+ -5.254342079162598,
+ -5.006967544555664,
+ -5.537913799285889,
+ -4.935520648956299,
+ -4.970097541809082,
+ -5.402115345001221,
+ -5.121963024139404,
+ -5.073592662811279,
+ -5.37355375289917,
+ -4.968536853790283,
+ -5.394909381866455,
+ -5.389856815338135,
+ -5.199159622192383,
+ -5.095884323120117,
+ -5.079482555389404,
+ -5.635665416717529,
+ -5.244890213012695,
+ -5.452732086181641,
+ -5.180203437805176,
+ -5.480380535125732,
+ -5.357151985168457,
+ -5.363295555114746,
+ -5.619442939758301,
+ -5.57445764541626,
+ -5.6207275390625,
+ -5.13228702545166,
+ -5.409615993499756,
+ -5.0902557373046875,
+ -5.024299144744873,
+ -5.2081217765808105,
+ -5.423428535461426,
+ -5.4898505210876465,
+ -5.187485694885254,
+ -5.185638904571533,
+ -5.155665874481201,
+ -4.9961748123168945,
+ -5.81713342666626,
+ -5.178189754486084,
+ -5.760660648345947,
+ -5.542363166809082,
+ -5.166417121887207,
+ -5.172086715698242,
+ -5.253601551055908,
+ -5.15774393081665
+ ],
+ "y": [
+ -27.64413070678711,
+ -27.465065002441406,
+ -28.117168426513672,
+ -27.93771743774414,
+ -27.71525001525879,
+ -28.205488204956055,
+ -28.115406036376953,
+ -28.28400421142578,
+ -27.58123779296875,
+ -27.84193992614746,
+ -27.853567123413086,
+ -27.986417770385742,
+ -28.054819107055664,
+ -27.784486770629883,
+ -27.860286712646484,
+ -28.04203224182129,
+ -27.81466293334961,
+ -27.692333221435547,
+ -27.474132537841797,
+ -28.09868621826172,
+ -27.480594635009766,
+ -27.728710174560547,
+ -27.910354614257812,
+ -28.070316314697266,
+ -28.000648498535156,
+ -27.711545944213867,
+ -27.882658004760742,
+ -28.0564022064209,
+ -27.925264358520508,
+ -28.087095260620117,
+ -28.009626388549805,
+ -27.951839447021484,
+ -27.70336151123047,
+ -27.86338233947754,
+ -27.85909652709961,
+ -27.841447830200195,
+ -27.623075485229492,
+ -27.773069381713867,
+ -27.69452476501465,
+ -27.748140335083008,
+ -27.75275421142578,
+ -28.031513214111328,
+ -27.78474998474121,
+ -28.013376235961914,
+ -28.00985336303711,
+ -27.595962524414062,
+ -27.95162582397461,
+ -27.575119018554688,
+ -27.6356143951416,
+ -27.74905776977539,
+ -27.616464614868164,
+ -27.768327713012695,
+ -27.913951873779297,
+ -27.780792236328125,
+ -27.830886840820312,
+ -27.638559341430664,
+ -27.656038284301758,
+ -27.658693313598633,
+ -27.892642974853516,
+ -27.791004180908203,
+ -27.74013900756836,
+ -27.791181564331055,
+ -27.805994033813477,
+ -27.870553970336914,
+ -27.77030372619629,
+ -27.661760330200195,
+ -27.816354751586914,
+ -27.58287811279297,
+ -27.70599937438965,
+ -27.788694381713867,
+ -27.889602661132812,
+ -27.92205047607422,
+ -27.809406280517578
+ ],
+ "z": [
+ 24.568273544311523,
+ 24.40227699279785,
+ 23.92687225341797,
+ 24.632997512817383,
+ 24.332008361816406,
+ 24.539045333862305,
+ 24.4237060546875,
+ 24.150197982788086,
+ 24.215778350830078,
+ 24.056087493896484,
+ 24.518829345703125,
+ 24.35751724243164,
+ 24.06218719482422,
+ 23.906553268432617,
+ 24.526748657226562,
+ 24.436697006225586,
+ 24.354955673217773,
+ 24.496191024780273,
+ 24.191495895385742,
+ 23.7010440826416,
+ 24.318138122558594,
+ 24.205909729003906,
+ 23.505857467651367,
+ 23.922693252563477,
+ 24.18799591064453,
+ 24.01413345336914,
+ 24.296422958374023,
+ 24.254764556884766,
+ 23.653209686279297,
+ 24.83572769165039,
+ 24.69959831237793,
+ 23.64906883239746,
+ 23.907304763793945,
+ 24.293447494506836,
+ 23.645246505737305,
+ 24.78632354736328,
+ 23.94640350341797,
+ 23.632478713989258,
+ 24.11336898803711,
+ 24.18075180053711,
+ 23.68899154663086,
+ 24.132116317749023,
+ 24.177982330322266,
+ 24.268413543701172,
+ 23.783388137817383,
+ 24.360374450683594,
+ 24.217248916625977,
+ 24.315628051757812,
+ 23.713123321533203,
+ 24.20380210876465,
+ 24.107362747192383,
+ 23.829452514648438,
+ 23.80571937561035,
+ 23.70301628112793,
+ 24.38848876953125,
+ 23.836633682250977,
+ 24.30832290649414,
+ 24.06720542907715,
+ 24.75918197631836,
+ 23.863956451416016,
+ 23.94976234436035,
+ 24.42156219482422,
+ 24.633792877197266,
+ 24.17633628845215,
+ 24.11170196533203,
+ 23.487455368041992,
+ 24.103260040283203,
+ 23.568395614624023,
+ 23.750118255615234,
+ 24.09163475036621,
+ 24.194364547729492,
+ 24.07845687866211,
+ 24.000442504882812
+ ]
+ },
+ {
+ "customdata": [
+ "017661cd-de64-4352-8ffe-e70b69965027",
+ "067f23cf-43aa-4738-9309-3b07aa80a92d",
+ "0a0b8963-0e2b-4945-ad04-bf339047623d",
+ "0bb28b9b-79b5-4446-b534-43ac59ff1481",
+ "48f92b36-5f13-4df6-b4f9-65211e0ad550",
+ "49c4a94f-73b6-4d01-8089-95607c3ac705",
+ "4b35497a-1970-4e97-b2a2-4aa19595452e",
+ "4ba16e7d-912d-407a-82e0-ddcfa9b68e8e",
+ "56428039-9c90-490f-b7a0-e88ffe76c005",
+ "59fe0aa8-8a02-49e1-9d10-e315cef77724",
+ "67543532-bac4-46ab-b29b-d838a47c72dc",
+ "689d2b0d-2116-4795-93fd-25cc72d9fbee",
+ "713f8d66-2f7f-4dec-9fc5-bed1851abf1c",
+ "80d643cb-31b5-400d-8ade-1658a1c21032",
+ "8db3077f-60a0-4a66-ad41-890567d52a7f",
+ "9179a469-28e4-4eae-9762-97964adad2e0",
+ "a9d08919-a2e1-49c8-b17e-2bcdb7aefd2e",
+ "b60cdb27-f910-4adb-8ca5-672fe0280e4b",
+ "ba33eba8-82e8-4494-b688-4fbae054d70a",
+ "ba4879f6-2c1d-492b-95b2-be7ab7146efe",
+ "c73d5634-c78a-4f44-9c8d-9d879a55aab5"
+ ],
+ "hovertemplate": "_id: %{customdata}
%{text}",
+ "marker": {
+ "size": 2
+ },
+ "mode": "markers",
+ "name": "Cluster ID 3",
+ "text": [
+ "foc|version|Failing|WorkloadNotAvailable|7a6a",
+ "rule|certificates_not_approved|CERTIFICATES_NOT_APPROVED",
+ "alert|openshift-monitoring|KubeNodeUnreachable",
+ "rule|certificates_not_approved|CERTIFICATES_NOT_APPROVED",
+ "rule|certificates_not_approved|CERTIFICATES_NOT_APPROVED",
+ "rule|nodes_pressure_check|NODE_PRESSURE",
+ "alert|default|KubeAPILatencyHigh",
+ "rule|nodes_pressure_check|NODE_PRESSURE",
+ "alert|openshift-operator-lifecycle-manager|FailingOperator",
+ "rule|nodes_pressure_check|NODE_PRESSURE",
+ "alert|openshift-monitoring|TargetDown|cluster-monitoring-operator",
+ "rule|bug_1766907|BUGZILLA_BUG_1766907",
+ "rule|nodes_pressure_check|NODE_PRESSURE",
+ "alert|openshift-cluster-version|CannotRetrieveUpdates",
+ "foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc
foc|monitoring|Progressing|RollOutInProgress|f311",
+ "rule|certificates_not_approved|CERTIFICATES_NOT_APPROVED",
+ "alert|ThanosQueryHighDNSFailures",
+ "alert|openshift-monitoring|KubeNodeUnreachable",
+ "alert|ThanosQueryHighDNSFailures",
+ "foc|image-registry|Progressing|Error|79db",
+ "rule|certificates_not_approved|CERTIFICATES_NOT_APPROVED"
+ ],
+ "type": "scatter3d",
+ "x": [
+ -6.407799243927002,
+ -6.583059310913086,
+ -5.983137607574463,
+ -6.4932074546813965,
+ -6.200707912445068,
+ -6.221963405609131,
+ -6.212206840515137,
+ -6.216485500335693,
+ -6.229846000671387,
+ -6.249646186828613,
+ -6.327864170074463,
+ -5.892481327056885,
+ -6.182474136352539,
+ -6.312941074371338,
+ -5.937560081481934,
+ -6.096992492675781,
+ -6.02660608291626,
+ -6.083723545074463,
+ -6.025033473968506,
+ -6.255163192749023,
+ -6.07065486907959
+ ],
+ "y": [
+ -27.560924530029297,
+ -27.216550827026367,
+ -27.124618530273438,
+ -27.396469116210938,
+ -27.488170623779297,
+ -27.28164291381836,
+ -27.127492904663086,
+ -27.34534454345703,
+ -27.163732528686523,
+ -27.304758071899414,
+ -27.438535690307617,
+ -26.859600067138672,
+ -27.22418212890625,
+ -27.088550567626953,
+ -27.384544372558594,
+ -27.138900756835938,
+ -27.17331314086914,
+ -27.23386573791504,
+ -27.162738800048828,
+ -27.343626022338867,
+ -27.21497917175293
+ ],
+ "z": [
+ 24.455217361450195,
+ 24.460609436035156,
+ 24.27526092529297,
+ 24.61604118347168,
+ 24.557565689086914,
+ 24.513809204101562,
+ 24.381132125854492,
+ 24.603069305419922,
+ 24.447097778320312,
+ 24.64521026611328,
+ 24.22368621826172,
+ 24.39542007446289,
+ 24.441322326660156,
+ 24.351051330566406,
+ 24.43136215209961,
+ 24.129762649536133,
+ 24.638032913208008,
+ 24.16557502746582,
+ 24.60442543029785,
+ 24.2659969329834,
+ 24.198200225830078
+ ]
+ },
+ {
+ "customdata": [
+ "017d9336-b042-4e7d-a718-c5e2ed3d44a3",
+ "07cba83d-3b93-4e04-94ad-27e5d792ce77",
+ "177bb979-239f-4fbe-aac2-c3c4c30948da",
+ "206d4f85-565a-4912-86e6-60d8effdd66b",
+ "34e3e7ac-dbf9-4d39-af71-ccb622f15e3e",
+ "4497eba5-7787-4b0f-9484-428822739a78",
+ "4bc4f8ba-a8b7-4bd8-b7ce-d206a9fffaac",
+ "56147424-36d9-464a-87d8-03a4c9889bb3",
+ "562da8a7-ebf1-466a-be0e-a99ad6473c0c",
+ "74587daa-1a4e-4438-84cf-09f8ef4a2154",
+ "78d23f68-b428-4b83-aead-401b33521830",
+ "7bac7a66-f63a-4344-bc73-626a58c047c7",
+ "bfe68641-4488-4a67-9e9d-9208588bf96f",
+ "c2e2b6b3-64be-4090-9f90-7848a348ad9c",
+ "c84b060f-7e34-4c06-bb61-703ac2793b69",
+ "cc16de56-889f-4536-a196-5500305264c7",
+ "d4a0f4c0-57aa-45cf-a717-032fcc532c30",
+ "ded575f0-480b-4d6c-9a6f-de56594edbbc",
+ "ec7e2358-59d0-4882-bce5-1e1783517eac",
+ "f38fe275-366a-4c2b-a719-9d6a50dc34f3"
+ ],
+ "hovertemplate": "_id: %{customdata}
%{text}",
+ "marker": {
+ "size": 2
+ },
+ "mode": "markers",
+ "name": "Cluster ID 4",
+ "text": [
+ "rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|openshift-monitoring|PrometheusErrorSendingAlertsToSomeAlertmanagers
alert|openshift-monitoring|TargetDown|alertmanager-main
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|openshift-cluster-version|CannotRetrieveUpdates
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed
rule|version_forced|FORCED_VERSION_UPDATES",
+ "foc|machine-config|Degraded|RequiredPoolsFailed|d1fc
rule|version_forced|FORCED_VERSION_UPDATES
rule|version_retarget|ABORTED_UPDATES_IN_RECENT_HISTORY",
+ "rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|version_forced|FORCED_VERSION_UPDATES"
+ ],
+ "type": "scatter3d",
+ "x": [
+ -7.075637340545654,
+ -7.020079135894775,
+ -6.932839393615723,
+ -7.051228046417236,
+ -6.919513702392578,
+ -7.010329246520996,
+ -6.678353786468506,
+ -6.8952531814575195,
+ -6.936687469482422,
+ -6.7844696044921875,
+ -6.9561896324157715,
+ -6.855470180511475,
+ -6.894435405731201,
+ -6.904990196228027,
+ -6.824306964874268,
+ -6.923197269439697,
+ -6.857708930969238,
+ -6.920022964477539,
+ -6.988371849060059,
+ -6.891895771026611
+ ],
+ "y": [
+ -26.336523056030273,
+ -26.18734359741211,
+ -26.374828338623047,
+ -26.17220687866211,
+ -26.440170288085938,
+ -26.226490020751953,
+ -26.490737915039062,
+ -26.5472412109375,
+ -26.3290958404541,
+ -26.452499389648438,
+ -26.537071228027344,
+ -26.584300994873047,
+ -26.323633193969727,
+ -26.295366287231445,
+ -26.47551727294922,
+ -26.412498474121094,
+ -26.34971809387207,
+ -26.36805534362793,
+ -26.304466247558594,
+ -26.463390350341797
+ ],
+ "z": [
+ 23.98715591430664,
+ 23.791494369506836,
+ 23.783222198486328,
+ 24.04662322998047,
+ 23.76462745666504,
+ 24.199909210205078,
+ 24.10161781311035,
+ 24.16397476196289,
+ 24.300708770751953,
+ 23.919076919555664,
+ 24.192428588867188,
+ 24.067686080932617,
+ 24.25131607055664,
+ 24.05539894104004,
+ 23.9949951171875,
+ 23.79336166381836,
+ 23.8762149810791,
+ 23.887775421142578,
+ 23.84055519104004,
+ 23.8532772064209
+ ]
+ },
+ {
+ "customdata": [
+ "022d5393-3557-44b7-820b-0e6a657a70be",
+ "2cac5cdb-aa8b-46f4-b932-03134cbbe4e7",
+ "41971f60-413d-42a2-a412-03b0c0ee3c5d",
+ "4b7ef91e-6a43-46f1-8f25-d43c3d4b7c03",
+ "593e8aa6-6760-4d47-868a-2f5d15d44e99",
+ "6494e8ba-b1aa-4280-8af6-2e635ea38e13",
+ "8b79ba23-c02b-45f8-9bee-27f82dcadf37",
+ "8ecd19e5-4f74-40ce-8ac6-1259d037c22a",
+ "a0d72a81-896e-4d48-bc87-8b5329baa173",
+ "baaa3dc4-9489-44b5-9f20-4b368e401b9a",
+ "d8f66384-903c-48ad-be64-b49a2bd9aabb"
+ ],
+ "hovertemplate": "_id: %{customdata}
%{text}",
+ "marker": {
+ "size": 2
+ },
+ "mode": "markers",
+ "name": "Cluster ID 5",
+ "text": [
+ "rule|ingress_operator_degraded_with_reason_ingresscontrollers|INGRESS_OPERATOR_DEGRADED_WITH_REASON_INGRESSCONTROLLERSDEGRADED",
+ "rule|ingress_operator_degraded_with_reason_ingresscontrollers|INGRESS_OPERATOR_DEGRADED_WITH_REASON_INGRESSCONTROLLERSDEGRADED",
+ "alert|openshift-kube-apiserver-operator|TechPreviewNoUpgrade
rule|ingress_operator_degraded_with_reason_ingresscontrollers|INGRESS_OPERATOR_DEGRADED_WITH_REASON_INGRESSCONTROLLERSDEGRADED",
+ "rule|ingress_operator_degraded_with_reason_ingresscontrollers|INGRESS_OPERATOR_DEGRADED_WITH_REASON_INGRESSCONTROLLERSDEGRADED",
+ "alert|knative-serving|PodDisruptionBudgetAtLimit
rule|ingress_operator_degraded_with_reason_ingresscontrollers|INGRESS_OPERATOR_DEGRADED_WITH_REASON_INGRESSCONTROLLERSDEGRADED",
+ "rule|ingress_operator_degraded_with_reason_ingresscontrollers|INGRESS_OPERATOR_DEGRADED_WITH_REASON_INGRESSCONTROLLERSDEGRADED",
+ "rule|ingress_operator_degraded_with_reason_ingresscontrollers|INGRESS_OPERATOR_DEGRADED_WITH_REASON_INGRESSCONTROLLERSDEGRADED",
+ "rule|ingress_operator_degraded_with_reason_ingresscontrollers|INGRESS_OPERATOR_DEGRADED_WITH_REASON_INGRESSCONTROLLERSDEGRADED",
+ "rule|ingress_operator_degraded_with_reason_ingresscontrollers|INGRESS_OPERATOR_DEGRADED_WITH_REASON_INGRESSCONTROLLERSDEGRADED",
+ "rule|ingress_operator_degraded_with_reason_ingresscontrollers|INGRESS_OPERATOR_DEGRADED_WITH_REASON_INGRESSCONTROLLERSDEGRADED",
+ "rule|ingress_operator_degraded_with_reason_ingresscontrollers|INGRESS_OPERATOR_DEGRADED_WITH_REASON_INGRESSCONTROLLERSDEGRADED"
+ ],
+ "type": "scatter3d",
+ "x": [
+ -6.359860420227051,
+ -6.367044925689697,
+ -6.368623733520508,
+ -6.31596565246582,
+ -6.28857946395874,
+ -6.422153472900391,
+ -6.464454174041748,
+ -6.343450546264648,
+ -6.332729339599609,
+ -6.284247875213623,
+ -6.375609874725342
+ ],
+ "y": [
+ -26.916194915771484,
+ -26.91396141052246,
+ -26.94698715209961,
+ -26.971708297729492,
+ -26.95482635498047,
+ -26.868894577026367,
+ -26.807971954345703,
+ -26.937389373779297,
+ -26.947309494018555,
+ -26.98289680480957,
+ -26.928783416748047
+ ],
+ "z": [
+ 27.452320098876953,
+ 27.414518356323242,
+ 27.442197799682617,
+ 27.19668960571289,
+ 27.407264709472656,
+ 27.516721725463867,
+ 27.261642456054688,
+ 27.41499137878418,
+ 27.289142608642578,
+ 27.068078994750977,
+ 27.371593475341797
+ ]
+ },
+ {
+ "customdata": [
+ "02a78a9b-5460-4570-af0a-e3237c4237c1",
+ "0625c051-b467-428f-b349-898a76e34d07",
+ "1131ee6a-71a4-46b8-8138-fdd489d7cfe0",
+ "131bbca2-2acb-4d10-bbf2-f4cf508009f6",
+ "1963acde-d493-430f-a70e-e71281e217c8",
+ "26de89f2-ef43-490c-84e3-93c9a2080d19",
+ "2d5acf77-d8ba-48ca-80ba-9a5465641c17",
+ "352d8a12-7fe9-4af7-8630-4c5df967aae2",
+ "4220f455-30ed-4559-90b2-8e15f1d69fe7",
+ "51ac26ba-f5a1-40c0-872e-49ef97e8af61",
+ "5c9dad2d-9146-4557-93d0-bfa481530c1e",
+ "62563bc7-da63-42a6-bbb2-1e5e3265e4f8",
+ "6441f67d-b986-472e-af2a-aff46a913b16",
+ "822106d4-8a95-49c9-bdd5-8b88965d8ab0",
+ "855ba28d-c36a-47c9-8bc8-b8ecb83d1f21",
+ "8711acb7-5776-42cb-9f0c-e071db145b50",
+ "8aab2aca-1d46-4ac4-87d3-542d6fc9d5e8",
+ "a3a2a859-6949-4d30-81d1-ada11d764671",
+ "a75495a0-53d4-4c3a-bd9f-16e11feee96a",
+ "adbb53d6-d024-452e-9d9b-ba7738d948ad",
+ "ade05133-5516-45f4-b79e-e7f5e660b2e6",
+ "b2161864-15dc-4ce3-b3f5-ee3af715c9d0",
+ "b3ba49ef-eb5f-4483-adbc-d3b70ca72c85",
+ "b850ce60-f4b8-47e5-ba16-4b32bb919ec6",
+ "bb18f4d8-faf6-4a92-9c91-4feb687029c4",
+ "bca08c1f-1c9c-4771-911d-0992edc1ba18",
+ "c28867a3-e8e6-471c-ac7b-1e7e349f9d25",
+ "c342ef60-2ef0-46de-857b-8d7f83eaf65e",
+ "c37d2385-7481-48ea-97c3-180d570469d9",
+ "cc967684-f052-4ed9-b86e-1f287a36f58d",
+ "cf9e5e27-6a7a-423a-8603-ff4061bc51b6",
+ "e45c3232-0c41-453e-910a-da8cb8b1fbd3",
+ "e7769325-1f7a-4328-b357-832736a6227d",
+ "e90c3905-5e0a-4616-8d37-def0b995424f",
+ "e9598dae-8938-4cb7-b346-24bcb85f523f",
+ "e9b97d55-437c-45e0-85dd-108f923adb07",
+ "edddbe74-5280-446a-8c94-f1fdbd340a58",
+ "f10bc131-ccfd-4fe8-832d-8aa442faf573",
+ "f5b85ad5-abe0-42eb-84f9-cf2d70d085e2",
+ "f912b681-97c4-48bb-a8ff-aed3b3ac1f25",
+ "fdb730b7-27b8-441c-884f-4e4c87267c5e"
+ ],
+ "hovertemplate": "_id: %{customdata}
%{text}",
+ "marker": {
+ "size": 2
+ },
+ "mode": "markers",
+ "name": "Cluster ID 6",
+ "text": [
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator
rule|nodes_container_runtime_version_check|NODES_CONTAINER_RUNTIME_VERSION
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator
rule|nodes_kubelet_version_check|NODE_KUBELET_VERSION
rule|nodes_pressure_check|NODE_PRESSURE
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|openshift-monitoring|KubeContainerWaiting
alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator",
+ "alert|openshift-monitoring|KubeContainerWaiting
alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator",
+ "alert|KubeAPIErrorBudgetBurn
alert|openshift-etcd|etcdHighCommitDurations
alert|openshift-etcd|etcdHighFsyncDurations
alert|openshift-monitoring|KubeContainerWaiting
alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator
foc|network|Degraded|ApplyOperatorConfig|a60e
foc|network|Degraded|ApplyOperatorConfig|e879
foc|version|Failing|MultipleErrors|eb7a
rule|certificates_not_approved|CERTIFICATES_NOT_APPROVED
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator",
+ "alert|openshift-monitoring|KubeContainerWaiting
alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator
foc|version|Failing|WorkloadNotAvailable|7a6a
foc|version|Failing|WorkloadNotAvailable|eb07",
+ "alert|openshift-monitoring|KubeContainerWaiting
alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator
foc|version|Failing|WorkloadNotAvailable|7a6a",
+ "alert|openshift-monitoring|KubeContainerWaiting
alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator",
+ "alert|openshift-monitoring|KubeContainerWaiting
alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|openshift-monitoring|KubeContainerWaiting
alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator
rule|nodes_kubelet_version_check|NODE_KUBELET_VERSION
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator",
+ "alert|openshift-monitoring|KubeContainerWaiting
alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator
alert|tekton-pipelines|PodDisruptionBudgetAtLimit",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator
alert|openshift-operator-lifecycle-manager|FailingOperator",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator
rule|nodes_kubelet_version_check|NODE_KUBELET_VERSION
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator
rule|nodes_container_runtime_version_check|NODES_CONTAINER_RUNTIME_VERSION
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator
rule|nodes_pressure_check|NODE_PRESSURE
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|openshift-monitoring|KubeDeploymentReplicasMismatch
alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|cluster-monitoring-operator"
+ ],
+ "type": "scatter3d",
+ "x": [
+ -1.1922708749771118,
+ -1.6985814571380615,
+ -0.7400919795036316,
+ -1.5929874181747437,
+ -1.5694812536239624,
+ -1.603980541229248,
+ -1.6609220504760742,
+ -1.3275141716003418,
+ -1.498488187789917,
+ -1.7241560220718384,
+ -1.6113970279693604,
+ -1.5855491161346436,
+ -1.484007716178894,
+ -1.4721779823303223,
+ -1.5603101253509521,
+ -1.6564605236053467,
+ -1.4695523977279663,
+ -1.4494723081588745,
+ -1.5687144994735718,
+ -1.4258058071136475,
+ -1.366783618927002,
+ -0.8481283783912659,
+ -1.525602102279663,
+ -1.2286872863769531,
+ -1.625158429145813,
+ -1.5608052015304565,
+ -1.3400657176971436,
+ -1.33734929561615,
+ -1.6320915222167969,
+ -1.509687066078186,
+ -0.8963751196861267,
+ -1.4994255304336548,
+ -0.7883594632148743,
+ -1.2136008739471436,
+ -1.3632787466049194,
+ -1.5000979900360107,
+ -1.5002319812774658,
+ -1.3828365802764893,
+ -1.0650038719177246,
+ -1.3062107563018799,
+ -1.4513665437698364
+ ],
+ "y": [
+ 8.528918266296387,
+ 8.344063758850098,
+ 8.635396957397461,
+ 8.631075859069824,
+ 8.519402503967285,
+ 8.822068214416504,
+ 8.439791679382324,
+ 8.337406158447266,
+ 8.512685775756836,
+ 8.694847106933594,
+ 8.740100860595703,
+ 8.477258682250977,
+ 8.71697998046875,
+ 8.802658081054688,
+ 8.752095222473145,
+ 8.669106483459473,
+ 8.560523986816406,
+ 8.639897346496582,
+ 8.63701057434082,
+ 8.652303695678711,
+ 8.534278869628906,
+ 8.643148422241211,
+ 8.427978515625,
+ 8.433550834655762,
+ 8.600713729858398,
+ 8.568625450134277,
+ 8.499092102050781,
+ 8.652801513671875,
+ 8.718467712402344,
+ 8.638826370239258,
+ 8.666205406188965,
+ 8.61318302154541,
+ 8.639701843261719,
+ 8.505294799804688,
+ 8.661144256591797,
+ 8.6274995803833,
+ 8.607436180114746,
+ 8.578200340270996,
+ 8.617544174194336,
+ 8.500396728515625,
+ 8.65102767944336
+ ],
+ "z": [
+ 20.088409423828125,
+ 20.188838958740234,
+ 19.709930419921875,
+ 20.011573791503906,
+ 20.15454864501953,
+ 20.062768936157227,
+ 20.27866554260254,
+ 20.13187026977539,
+ 20.340328216552734,
+ 19.96795654296875,
+ 20.358552932739258,
+ 20.257465362548828,
+ 20.310152053833008,
+ 19.829748153686523,
+ 19.79663848876953,
+ 20.028968811035156,
+ 20.37648582458496,
+ 19.93271255493164,
+ 20.162456512451172,
+ 20.25800895690918,
+ 20.169864654541016,
+ 19.760356903076172,
+ 20.183237075805664,
+ 20.23876190185547,
+ 20.364225387573242,
+ 20.364789962768555,
+ 20.272146224975586,
+ 20.247716903686523,
+ 19.977460861206055,
+ 20.269813537597656,
+ 19.78512954711914,
+ 20.283985137939453,
+ 19.7271671295166,
+ 20.093976974487305,
+ 20.234962463378906,
+ 20.24287986755371,
+ 20.27212905883789,
+ 20.223812103271484,
+ 19.919597625732422,
+ 20.166851043701172,
+ 20.265117645263672
+ ]
+ },
+ {
+ "customdata": [
+ "04d9e7a0-d723-4b8c-b2de-d4d805402279",
+ "12ba5926-55ec-4c19-bf22-9103dc22d636",
+ "17af723a-6691-46f8-98d1-af803ae8741f",
+ "202580af-d984-4d09-b53c-3a47d8ce6cdb",
+ "2abe83ff-b531-4639-9ce8-11e5f6ea16e2",
+ "2c35e944-e5b1-4067-948e-f2eb0d5258c9",
+ "35a9ab3e-ac0d-474a-9ecf-f504fad46767",
+ "44c72d60-7d0e-4c7c-938e-c42dd7a28db5",
+ "470cc80f-8251-4060-a1f6-8e39cf7eac62",
+ "4913c901-acb5-4797-aa0f-e9d95b888e89",
+ "6f120ef1-d4f8-4b5e-8a37-d95a0f4bef5e",
+ "76747c92-faf8-48ee-acd9-0d6395a00456",
+ "7b53bbce-2d33-481e-982a-b653ef3a9b1c",
+ "7fc5aaad-906f-411b-9ea7-278f2fd2aaec",
+ "aaed39a6-9f44-4276-8069-d2b67839a0e7",
+ "c4fc96fa-c77f-4a98-beca-8df506d11970",
+ "cad907fa-b997-410e-a4c3-b0a7eeac9880",
+ "cd05ad54-41e8-4e67-8a5b-9589caa89892",
+ "e660f005-4d9a-4243-8af1-9a535df6b6bf",
+ "e9d7ff39-1b62-4aee-9494-f51d395f2ef3",
+ "eaad0788-7af4-4885-9d44-5ee82f852230",
+ "f1e1d121-a467-4409-be64-88dc48e10def",
+ "f20a75fa-4baa-4a1a-a35f-25866ba56982"
+ ],
+ "hovertemplate": "_id: %{customdata}
%{text}",
+ "marker": {
+ "size": 2
+ },
+ "mode": "markers",
+ "name": "Cluster ID 7",
+ "text": [
+ "alert|KubeClientErrors
alert|openshift-image-registry|ImagePruningDisabled
alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors
foc|openshift-samples|Degraded|APIServerTimeoutError|327e
foc|version|Failing|MultipleErrors|3946
foc|version|Progressing|MultipleErrors|b12b
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|nodes_kubelet_version_check|NODE_KUBELET_VERSION
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED
rule|nodes_pressure_check|NODE_PRESSURE
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|nodes_kubelet_version_check|NODE_KUBELET_VERSION
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|openshift-monitoring|TargetDown|openshift-state-metrics
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|CloudCredentialOperatorDown
alert|openshift-etcd|etcdMemberCommunicationSlow
alert|openshift-multus|KubeDaemonSetRolloutStuck
alert|openshift-multus|KubePodNotReady
alert|openshift-multus|TargetDown|multus-admission-controller
foc|network|Degraded|RolloutHung|443c
foc|network|Progressing|Deploying|2264
rule|nodes_pressure_check|NODE_PRESSURE
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|openshift-image-registry|ImagePruningDisabled
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED
rule|nodes_kubelet_version_check|NODE_KUBELET_VERSION
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|nodes_kubelet_version_check|NODE_KUBELET_VERSION
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|nodes_kubelet_version_check|NODE_KUBELET_VERSION
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|CloudCredentialOperatorDown
rule|nodes_kubelet_version_check|NODE_KUBELET_VERSION
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|openshift-cluster-version|CannotRetrieveUpdates
alert|openshift-etcd|KubeContainerWaiting
alert|openshift-etcd|KubePodNotReady
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|nodes_kubelet_version_check|NODE_KUBELET_VERSION
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|MachineAPIOperatorDown
rule|ocp_version_end_of_life|OCP4X_BEYOND_EOL
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|CloudCredentialOperatorDown
alert|openshift-machine-config-operator|MCDDrainError
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|CloudCredentialOperatorDown
rule|nodes_kubelet_version_check|NODE_KUBELET_VERSION
rule|nodes_pressure_check|NODE_PRESSURE
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|openshift-monitoring|TargetDown|cluster-monitoring-operator
rule|nodes_kubelet_version_check|NODE_KUBELET_VERSION
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|nodes_kubelet_version_check|NODE_KUBELET_VERSION
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|nodes_kubelet_version_check|NODE_KUBELET_VERSION
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|nodes_kubelet_version_check|NODE_KUBELET_VERSION
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES"
+ ],
+ "type": "scatter3d",
+ "x": [
+ 5.919954299926758,
+ 5.9358673095703125,
+ 5.968183994293213,
+ 5.967514514923096,
+ 5.983912467956543,
+ 6.0377655029296875,
+ 6.007969379425049,
+ 5.68173885345459,
+ 5.985781192779541,
+ 5.911401271820068,
+ 6.0331244468688965,
+ 5.83152961730957,
+ 6.116550922393799,
+ 5.7672271728515625,
+ 5.942519664764404,
+ 5.844346523284912,
+ 5.960714340209961,
+ 6.146078586578369,
+ 6.004005432128906,
+ 5.939996719360352,
+ 5.978385925292969,
+ 5.989429950714111,
+ 5.9598565101623535
+ ],
+ "y": [
+ -22.417749404907227,
+ -22.178422927856445,
+ -22.52374839782715,
+ -22.143798828125,
+ -22.463197708129883,
+ -22.457120895385742,
+ -22.08506965637207,
+ -22.507953643798828,
+ -22.176477432250977,
+ -22.148530960083008,
+ -22.19812774658203,
+ -22.274934768676758,
+ -22.109872817993164,
+ -22.2999267578125,
+ -22.23111343383789,
+ -22.41525650024414,
+ -22.33993911743164,
+ -22.301591873168945,
+ -22.121036529541016,
+ -22.16929054260254,
+ -22.220605850219727,
+ -22.224288940429688,
+ -22.29214859008789
+ ],
+ "z": [
+ 42.71653747558594,
+ 42.646568298339844,
+ 42.56985855102539,
+ 42.69428253173828,
+ 42.64662551879883,
+ 42.46690368652344,
+ 42.662567138671875,
+ 42.643096923828125,
+ 42.7249870300293,
+ 42.723365783691406,
+ 42.663455963134766,
+ 42.4249153137207,
+ 43.01173782348633,
+ 42.63345718383789,
+ 42.625736236572266,
+ 42.66718673706055,
+ 42.5792236328125,
+ 42.55045700073242,
+ 42.706138610839844,
+ 42.71296691894531,
+ 42.68391036987305,
+ 42.64792251586914,
+ 42.76758575439453
+ ]
+ },
+ {
+ "customdata": [
+ "000167dc-b92b-4677-bcb9-28cf8b2eded3",
+ "077bde34-64aa-439b-ab11-e7bb074765ac",
+ "0a047c03-6611-4b11-9658-b56a89390dc4",
+ "0ae3600a-8ad0-4960-a1e9-fd02a11c93f0",
+ "0d81dfad-1549-4e35-bcb0-1e116995e0a0",
+ "10f057b7-16e1-4e41-a96b-52d74a4b036b",
+ "118739a8-9d86-43c9-a3c5-41a81742ad89",
+ "143a71df-c655-49f3-96d4-01282534c7f1",
+ "1ba56859-ebea-461f-8641-1301b7afdb8c",
+ "222a7438-f8e2-4b11-a713-d572675582be",
+ "258c53f2-c56f-4aff-a891-cfb295e89af3",
+ "2782ab31-4554-48df-902c-cce2dfde5e0d",
+ "2bf375ca-99a8-4906-9907-d61ba2befdf4",
+ "2f42addf-98b2-4fef-b39e-addd72460b1b",
+ "2fbcff46-e8a5-4484-93c4-655c6209d243",
+ "3413dd90-dbf6-4f9a-99d5-e4a53be4779a",
+ "362ca1a7-2e42-4258-b4e0-bdd936bbb311",
+ "375669cb-f5f3-4c98-a55d-e9d716ec9b49",
+ "3b596f83-1c95-4c51-bca1-48be0a1c4ed1",
+ "3e7ab0cd-5cd1-42e3-90ae-0b3a39c75b51",
+ "3fb9d46d-a5a3-4d31-86eb-c058ccfad4d5",
+ "434cdbe7-911a-4cd7-a218-a6bbc5e5a47e",
+ "446c9a39-9ac5-4b49-bf65-c256fac6d8b2",
+ "4b84b009-46c9-4c71-9c06-30b54ca8f837",
+ "4db3427c-a233-49c1-8bb8-4c17eb8034bf",
+ "52149037-bf6a-4e60-bc7e-6abcf187866a",
+ "5795a6b3-417a-4b1f-9107-3b6e4d4fd514",
+ "5a8258a9-1992-4304-b786-114ef90709f1",
+ "5c2a97d1-07f0-406a-a456-0c4c1c429da5",
+ "5db1c350-8bc5-4d19-bd72-f8155b76fdf3",
+ "68cc1c2d-c498-46a0-b2eb-921fcdc244af",
+ "6c7d2373-853c-4547-bcaf-2a7d715acb12",
+ "7851338b-74f1-4043-92b0-2e0bafd3b710",
+ "79fb55bd-d525-4e2e-ad89-60810920a172",
+ "7a30ac45-c017-48de-8a8b-9fc6fe3fd004",
+ "7c6989e0-1058-4b9e-a8ae-18e069a11bc4",
+ "7d39da83-d5e3-4d08-b02a-df068b91776a",
+ "7f2c1004-9a5b-4dbe-b351-1c0b35268648",
+ "81d036bf-ba70-4410-a20d-acb8d68a1972",
+ "84c865c1-4301-4653-b73d-e7c71892c612",
+ "8681c54b-e875-401a-8076-ab580a6f5f29",
+ "8d0b7856-1526-4147-aadb-407f079c3477",
+ "8df104ad-7adf-4850-b889-a0e4324b5cac",
+ "99ac70e6-c103-42fb-ae6d-e6fb5acd0dd7",
+ "9da10cd0-a5c2-43f1-907b-20894ed6dc7e",
+ "9fc2c21d-a13c-4dac-9d67-5c8946dc6e08",
+ "a1769597-71aa-43b4-a525-92e71cf5882b",
+ "a8ec100e-b76c-474d-9a9b-5dfafc7e8441",
+ "aa6b1b4f-881b-4317-93ea-596c738e7ffd",
+ "afff3b42-9132-4518-aa68-24f94d0e9e41",
+ "b43a7ba6-3161-439b-80bb-88acdaa2e9bd",
+ "c2424ceb-d6cd-466e-8a24-e249c1da6613",
+ "c953722b-ca38-46f9-92d4-218a31490340",
+ "caa6f44b-dc90-462c-a5bf-5d1654d270cd",
+ "d119e727-f1ab-49b9-862b-73a7a4dab252",
+ "d282bc08-ca00-456f-84dd-33daadb3dd8f",
+ "d532e12c-f655-432f-a2e8-b49f0bc1a087",
+ "d86052b9-2e0f-4276-a4ae-0a9fdbd8514d",
+ "da09e993-1661-47d5-bfeb-4715af5a6a23",
+ "db7f6409-0ab0-4a3b-be9d-7b0794f7887a",
+ "dece6130-4ae2-446c-93a8-73da23eccd53",
+ "e062a4e7-1629-4508-a433-9a6ac9ddf4bf",
+ "e0aa6aa1-4a84-445a-8c4a-2da058683aff",
+ "e0c8cc3e-4746-461d-8bbf-af884da3390c",
+ "e2d306d3-6643-4f80-82ee-77e9277f7524",
+ "e95d2e72-49f5-4a5f-ba85-903838468b42",
+ "eb721536-4746-4618-b75a-5ac679a7647b",
+ "f0a639f8-3d6f-419b-a257-e9a0c2e7890b",
+ "f3c6dfef-a0f0-4e42-92bb-9268758ab84a",
+ "f45c2e00-2c52-4471-bc7b-63b6179257ea",
+ "f7bbd277-1d25-477e-aa84-2bd9aa74ab61",
+ "f9a90f11-f700-44b9-a233-48a5b6d8cd78"
+ ],
+ "hovertemplate": "_id: %{customdata}
%{text}",
+ "marker": {
+ "size": 2
+ },
+ "mode": "markers",
+ "name": "Cluster ID 8",
+ "text": [
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_container_runtime_version_check|NODES_CONTAINER_RUNTIME_VERSION
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|ThanosQueryGrpcClientErrorRate
alert|ThanosQueryHighDNSFailures
rule|nodes_container_runtime_version_check|NODES_CONTAINER_RUNTIME_VERSION
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_container_runtime_version_check|NODES_CONTAINER_RUNTIME_VERSION
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_pressure_check|NODE_PRESSURE
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|default|AggregatedAPIDown
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_container_runtime_version_check|NODES_CONTAINER_RUNTIME_VERSION
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|ThanosQueryHighDNSFailures
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|ClusterAutoscalerOperatorDown
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|KubeAPIDown
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|openshift-monitoring|KubePodNotReady
alert|openshift-monitoring|TargetDown|prometheus-adapter
foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|ThanosQueryGrpcClientErrorRate
alert|ThanosQueryHighDNSFailures
rule|nodes_container_runtime_version_check|NODES_CONTAINER_RUNTIME_VERSION
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|ThanosQueryHighDNSFailures
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|ClusterNotUpgradeable
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_container_runtime_version_check|NODES_CONTAINER_RUNTIME_VERSION
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|openshift-cluster-version|CannotRetrieveUpdates
alert|openshift-service-catalog-removed|KubeContainerWaiting
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET"
+ ],
+ "type": "scatter3d",
+ "x": [
+ -6.508472919464111,
+ -6.855248928070068,
+ -6.640495777130127,
+ -6.243607521057129,
+ -6.388707637786865,
+ -6.941802978515625,
+ -6.7674360275268555,
+ -6.682797431945801,
+ -6.798947334289551,
+ -6.782342910766602,
+ -6.366758823394775,
+ -6.351593017578125,
+ -6.291979789733887,
+ -6.509585857391357,
+ -6.457581043243408,
+ -6.120248317718506,
+ -6.116791725158691,
+ -6.179051876068115,
+ -6.774296283721924,
+ -6.631752967834473,
+ -6.709264755249023,
+ -6.394754886627197,
+ -6.655190944671631,
+ -6.451382160186768,
+ -6.748777866363525,
+ -6.258054733276367,
+ -5.994319915771484,
+ -6.092935085296631,
+ -6.476114749908447,
+ -6.0303874015808105,
+ -6.918054580688477,
+ -6.170941352844238,
+ -6.228448390960693,
+ -6.611615180969238,
+ -6.056013107299805,
+ -6.39256477355957,
+ -6.699692249298096,
+ -6.355433464050293,
+ -6.264157295227051,
+ -6.56808614730835,
+ -6.5721635818481445,
+ -5.999269008636475,
+ -6.302257537841797,
+ -6.175192356109619,
+ -6.358592510223389,
+ -6.259182929992676,
+ -6.470727920532227,
+ -6.602229118347168,
+ -6.2415771484375,
+ -6.4966230392456055,
+ -6.2800703048706055,
+ -6.472530364990234,
+ -6.601585865020752,
+ -6.49524450302124,
+ -6.56385612487793,
+ -6.3094706535339355,
+ -6.713663578033447,
+ -6.629059314727783,
+ -6.5423736572265625,
+ -6.476625919342041,
+ -6.615434169769287,
+ -6.406599044799805,
+ -6.5076398849487305,
+ -6.458674907684326,
+ -6.5229811668396,
+ -6.507847785949707,
+ -6.421209335327148,
+ -6.391116142272949,
+ -6.515506267547607,
+ -6.580477237701416,
+ -6.617132663726807,
+ -6.526794910430908
+ ],
+ "y": [
+ -27.89963722229004,
+ -27.75773811340332,
+ -27.535974502563477,
+ -27.543107986450195,
+ -27.316089630126953,
+ -27.575544357299805,
+ -27.00328254699707,
+ -27.367616653442383,
+ -27.736072540283203,
+ -27.597698211669922,
+ -27.899518966674805,
+ -27.30091667175293,
+ -27.69510269165039,
+ -27.46687126159668,
+ -27.976318359375,
+ -27.69938087463379,
+ -27.06110382080078,
+ -27.775699615478516,
+ -27.779184341430664,
+ -27.445289611816406,
+ -27.77206802368164,
+ -27.656381607055664,
+ -27.416139602661133,
+ -27.186750411987305,
+ -27.545536041259766,
+ -27.37449073791504,
+ -27.036392211914062,
+ -27.2197208404541,
+ -27.711366653442383,
+ -27.329938888549805,
+ -27.545352935791016,
+ -26.9728946685791,
+ -27.791290283203125,
+ -27.528369903564453,
+ -27.294055938720703,
+ -27.171367645263672,
+ -27.555662155151367,
+ -27.092477798461914,
+ -27.53542137145996,
+ -27.354089736938477,
+ -27.659591674804688,
+ -27.37152099609375,
+ -27.75541877746582,
+ -27.56310272216797,
+ -27.791751861572266,
+ -27.680286407470703,
+ -27.564958572387695,
+ -27.11508560180664,
+ -27.553544998168945,
+ -27.63831901550293,
+ -27.571117401123047,
+ -27.636138916015625,
+ -27.197717666625977,
+ -27.085081100463867,
+ -27.158946990966797,
+ -27.29935646057129,
+ -27.378625869750977,
+ -27.350475311279297,
+ -27.266063690185547,
+ -27.484601974487305,
+ -27.545167922973633,
+ -27.34865951538086,
+ -27.20864486694336,
+ -27.394546508789062,
+ -27.197111129760742,
+ -27.337182998657227,
+ -27.477170944213867,
+ -27.51096534729004,
+ -27.338552474975586,
+ -27.283634185791016,
+ -27.390138626098633,
+ -27.327054977416992
+ ],
+ "z": [
+ 22.8504581451416,
+ 23.086185455322266,
+ 22.631393432617188,
+ 22.80612564086914,
+ 22.58152198791504,
+ 22.918537139892578,
+ 22.84181022644043,
+ 22.775970458984375,
+ 23.056350708007812,
+ 22.954538345336914,
+ 23.047283172607422,
+ 22.893888473510742,
+ 22.781408309936523,
+ 22.769424438476562,
+ 23.203805923461914,
+ 22.88593292236328,
+ 23.176986694335938,
+ 22.907560348510742,
+ 23.2619686126709,
+ 23.749958038330078,
+ 23.515432357788086,
+ 23.696571350097656,
+ 22.949182510375977,
+ 22.82699203491211,
+ 23.700075149536133,
+ 23.623682022094727,
+ 23.360443115234375,
+ 23.11185073852539,
+ 23.528451919555664,
+ 23.070363998413086,
+ 23.120325088500977,
+ 23.17709732055664,
+ 23.0352725982666,
+ 23.55287742614746,
+ 23.341320037841797,
+ 23.383745193481445,
+ 23.61458969116211,
+ 23.468393325805664,
+ 23.520008087158203,
+ 23.1492919921875,
+ 23.00848388671875,
+ 23.198429107666016,
+ 23.303953170776367,
+ 23.178447723388672,
+ 23.38178825378418,
+ 23.139631271362305,
+ 22.931665420532227,
+ 22.9483585357666,
+ 23.484695434570312,
+ 23.223228454589844,
+ 23.241243362426758,
+ 23.293062210083008,
+ 23.111209869384766,
+ 23.15666389465332,
+ 23.066486358642578,
+ 23.11724090576172,
+ 23.277997970581055,
+ 23.26117706298828,
+ 23.321216583251953,
+ 23.355274200439453,
+ 23.32392692565918,
+ 23.219196319580078,
+ 23.139244079589844,
+ 23.09986686706543,
+ 23.2066650390625,
+ 23.26881980895996,
+ 23.207414627075195,
+ 23.169761657714844,
+ 23.26671028137207,
+ 23.32514190673828,
+ 23.180912017822266,
+ 23.272686004638672
+ ]
+ },
+ {
+ "customdata": [
+ "034265cb-0256-4a34-8975-fad19d73cf66",
+ "07fe1099-84e0-47ba-bf4a-d97d55f18d93",
+ "0b9820fb-3194-4d90-b4a2-ba9d9dbc72a6",
+ "117502d2-10ac-451a-bedc-dfee53f00e6a",
+ "1d90d328-c419-42d8-af86-ed1b066dafea",
+ "2ab35237-ddaf-4774-895a-2540e0c04331",
+ "3be87d1a-298b-45db-bf66-5042422fc1a1",
+ "532aa7be-09cd-45ec-817f-95ef4ebf19c8",
+ "68c16459-483b-40bd-b743-4b4e4f0c303a",
+ "78ee7623-680a-406c-a11f-48c7c6ba7883",
+ "88fc34ba-8223-43c5-bce0-f45a94932d64",
+ "bb7f4020-5032-4425-8e1c-1a487e599932"
+ ],
+ "hovertemplate": "_id: %{customdata}
%{text}",
+ "marker": {
+ "size": 2
+ },
+ "mode": "markers",
+ "name": "Cluster ID 9",
+ "text": [
+ "alert|ThanosQueryGrpcClientErrorRate
alert|ThanosQueryHighDNSFailures
alert|default|KubeClientCertificateExpiration
alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed
alert|openshift-cluster-version|CannotRetrieveUpdates
alert|openshift-controller-manager|KubeContainerWaiting
alert|openshift-controller-manager|KubeDaemonSetRolloutStuck
alert|openshift-controller-manager|KubePodNotReady
alert|openshift-image-registry|KubeContainerWaiting
alert|openshift-image-registry|KubeJobCompletion
alert|openshift-kube-apiserver|KubeContainerWaiting
alert|openshift-kube-apiserver|KubePodNotReady
alert|openshift-multus|KubeContainerWaiting
alert|openshift-multus|KubeDaemonSetRolloutStuck
alert|openshift-multus|KubePodNotReady
alert|openshift-sdn|KubeDaemonSetRolloutStuck
alert|openshift-sdn|SDNPodNotReady
alert|openshift-sdn|TargetDown|sdn
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed
alert|openshift-cluster-version|CannotRetrieveUpdates
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed
alert|openshift-cluster-version|CannotRetrieveUpdates
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed
alert|openshift-cluster-version|CannotRetrieveUpdates
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|default|KubeClientCertificateExpiration
alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed
alert|openshift-cluster-version|CannotRetrieveUpdates
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|ThanosQueryGrpcClientErrorRate
alert|ThanosQueryHighDNSFailures
alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed
alert|openshift-cluster-version|CannotRetrieveUpdates
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|ThanosQueryGrpcClientErrorRate
alert|ThanosQueryHighDNSFailures
alert|openshift-cluster-version|CannotRetrieveUpdates
alert|openshift-image-registry|KubeContainerWaiting
alert|openshift-image-registry|KubeJobCompletion
alert|openshift-multus|KubeDaemonSetRolloutStuck
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed
alert|openshift-cluster-version|CannotRetrieveUpdates
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|default|KubeClientCertificateExpiration
alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed
alert|openshift-cluster-version|CannotRetrieveUpdates
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed
alert|openshift-cluster-version|CannotRetrieveUpdates
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed
alert|openshift-cluster-version|CannotRetrieveUpdates
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed
alert|openshift-cluster-version|CannotRetrieveUpdates
alert|openshift-multus|KubeDaemonSetRolloutStuck
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES"
+ ],
+ "type": "scatter3d",
+ "x": [
+ 15.866284370422363,
+ 15.847081184387207,
+ 15.835899353027344,
+ 15.83413314819336,
+ 15.81425666809082,
+ 15.815242767333984,
+ 15.868584632873535,
+ 15.914960861206055,
+ 15.853472709655762,
+ 15.823834419250488,
+ 15.761283874511719,
+ 15.918874740600586
+ ],
+ "y": [
+ -8.908788681030273,
+ -8.988445281982422,
+ -8.997578620910645,
+ -8.99428653717041,
+ -9.017114639282227,
+ -9.015351295471191,
+ -8.901880264282227,
+ -8.915262222290039,
+ -8.963929176330566,
+ -9.005845069885254,
+ -9.068763732910156,
+ -8.874434471130371
+ ],
+ "z": [
+ 57.87911605834961,
+ 58.29733657836914,
+ 58.309295654296875,
+ 58.24107360839844,
+ 58.274227142333984,
+ 58.27170944213867,
+ 57.8470344543457,
+ 58.3651008605957,
+ 58.318115234375,
+ 58.26966094970703,
+ 58.30634307861328,
+ 58.00498962402344
+ ]
+ },
+ {
+ "customdata": [
+ "0801286f-2bbd-4133-9617-cebdff248040",
+ "51f60812-8ba3-40b1-9b4a-77c2f33172c0",
+ "68f112d3-1c3d-4d8f-b0ca-903cd72d0820",
+ "aacf11ec-249d-4837-a9ac-749913fc4943",
+ "d1939e4a-3a6d-4705-9d35-b515986727cf",
+ "d40c556d-dcc4-4d8a-ad26-5848a8a6dbbd"
+ ],
+ "hovertemplate": "_id: %{customdata}
%{text}",
+ "marker": {
+ "size": 2
+ },
+ "mode": "markers",
+ "name": "Cluster ID 10",
+ "text": [
+ "alert|KubeAPIDown
alert|KubeControllerManagerDown
alert|KubeSchedulerDown
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|KubeAPIDown
alert|KubeControllerManagerDown
alert|KubeSchedulerDown
rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE",
+ "alert|KubeAPIDown
alert|KubeControllerManagerDown
alert|KubeSchedulerDown
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET",
+ "alert|KubeAPIDown
alert|KubeControllerManagerDown
alert|KubeSchedulerDown
alert|kube-system|TargetDown|kubelet
alert|openshift-apiserver|KubeDeploymentReplicasMismatch
alert|openshift-apiserver|KubePodNotReady
alert|openshift-cluster-node-tuning-operator|KubeDaemonSetRolloutStuck
alert|openshift-console|KubeDeploymentReplicasMismatch
alert|openshift-controller-manager|KubeDaemonSetRolloutStuck
alert|openshift-controller-manager|KubePodNotReady
alert|openshift-dns|KubeDaemonSetRolloutStuck
alert|openshift-etcd|KubePodNotReady
alert|openshift-image-registry|KubeDaemonSetRolloutStuck
alert|openshift-image-registry|KubePodNotReady
alert|openshift-kube-apiserver|KubePodNotReady
alert|openshift-kube-controller-manager|KubePodNotReady
alert|openshift-kube-scheduler|KubePodNotReady
alert|openshift-machine-config-operator|KubeDaemonSetMisScheduled
alert|openshift-machine-config-operator|KubeDaemonSetRolloutStuck
alert|openshift-machine-config-operator|KubeDeploymentReplicasMismatch
alert|openshift-machine-config-operator|KubePodNotReady
alert|openshift-monitoring|KubeDaemonSetRolloutStuck
alert|openshift-monitoring|KubeNodeNotReady
alert|openshift-monitoring|KubeNodeUnreachable
alert|openshift-monitoring|KubePodNotReady
alert|openshift-multus|KubeDaemonSetMisScheduled
alert|openshift-multus|KubeDaemonSetRolloutStuck
alert|openshift-sdn|KubeDaemonSetMisScheduled
alert|openshift-sdn|KubeDaemonSetRolloutStuck
alert|openshift-sdn|SDNPodNotReady
rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED",
+ "alert|ClusterNotUpgradeable
alert|KubeAPIDown
alert|KubeControllerManagerDown
alert|KubeSchedulerDown",
+ "alert|ClusterNotUpgradeable
alert|KubeAPIDown
alert|KubeControllerManagerDown
alert|KubeSchedulerDown
alert|openshift-console|KubeDeploymentReplicasMismatch"
+ ],
+ "type": "scatter3d",
+ "x": [
+ 20.551259994506836,
+ 20.517641067504883,
+ 20.480785369873047,
+ 20.515026092529297,
+ 20.53032112121582,
+ 20.51243782043457
+ ],
+ "y": [
+ -3.648930311203003,
+ -3.682539463043213,
+ -3.718353271484375,
+ -3.6862266063690186,
+ -3.6695594787597656,
+ -3.6878530979156494
+ ],
+ "z": [
+ 57.64208221435547,
+ 57.6082878112793,
+ 57.575809478759766,
+ 57.599754333496094,
+ 57.6201286315918,
+ 57.601295471191406
+ ]
+ },
+ {
+ "customdata": [
+ "03022f48-21ae-45d8-a35d-796e075c4c24",
+ "0ed72f1a-2922-42c9-873c-cd1fb0a96514",
+ "11445743-a545-4f7b-980a-2b462bf67dd4",
+ "1a4cd49f-d095-45ae-a3d7-19f96d1b57f2",
+ "3e7193b2-2b58-4cae-8207-96d6d99a8012",
+ "560fa45b-1367-425b-b5a4-b4dc66b69293",
+ "5a38aa5b-8d82-4152-bb40-6028ccd56548",
+ "683667a6-9ef4-4497-8693-a652fd3c4756",
+ "6ab9cd7c-84ce-4676-acb8-b6d9cf7d4cb3",
+ "73131cc4-f421-4fb4-a473-3807df2ea3fd",
+ "885d1a81-734e-4765-93bf-a527a73424f5",
+ "a0571fe1-dd5d-49c2-8a69-605397cd196f",
+ "ad9a6f93-c924-4476-bbac-df32e775ac34",
+ "c7e61571-f930-400d-a31f-7505345ebf8c",
+ "ce82062b-53d2-4e42-b1e3-57e64990b9ed",
+ "d1d85a16-7186-4596-ae5d-a1e9932abca5",
+ "d23546f2-9207-4e3c-af73-b0c81850f0b4",
+ "daaed396-5201-4621-931e-494852cf8248",
+ "ff63c92c-6793-4981-b578-bff413d1554c"
+ ],
+ "hovertemplate": "_id: %{customdata}
%{text}",
+ "marker": {
+ "size": 2
+ },
+ "mode": "markers",
+ "name": "Cluster ID 11",
+ "text": [
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_forced|FORCED_VERSION_UPDATES",
+ "alert|ThanosQueryHighDNSFailures
alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed
rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_check|CLUSTER_VERSION_MISMATCH
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_forced|FORCED_VERSION_UPDATES",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET
rule|version_forced|FORCED_VERSION_UPDATES"
+ ],
+ "type": "scatter3d",
+ "x": [
+ -6.652331352233887,
+ -7.107786655426025,
+ -7.13996696472168,
+ -6.854470729827881,
+ -6.976282119750977,
+ -6.8718581199646,
+ -6.993056774139404,
+ -6.872201919555664,
+ -6.849020004272461,
+ -6.808959007263184,
+ -6.877250671386719,
+ -6.990578651428223,
+ -6.78416633605957,
+ -6.734348773956299,
+ -6.683668613433838,
+ -6.5508809089660645,
+ -6.705931186676025,
+ -6.761687278747559,
+ -6.684908866882324
+ ],
+ "y": [
+ -26.49807357788086,
+ -26.91932487487793,
+ -26.789142608642578,
+ -26.610736846923828,
+ -26.92291259765625,
+ -26.98171615600586,
+ -26.7445068359375,
+ -27.02591896057129,
+ -26.72005844116211,
+ -26.608776092529297,
+ -26.74193572998047,
+ -26.733949661254883,
+ -26.982479095458984,
+ -26.769123077392578,
+ -26.797887802124023,
+ -26.84357261657715,
+ -26.98872947692871,
+ -26.926971435546875,
+ -26.980304718017578
+ ],
+ "z": [
+ 23.358383178710938,
+ 23.713075637817383,
+ 23.351686477661133,
+ 23.207752227783203,
+ 23.2438907623291,
+ 23.146812438964844,
+ 23.524560928344727,
+ 23.66227912902832,
+ 23.589649200439453,
+ 23.43956184387207,
+ 23.63909339904785,
+ 23.508230209350586,
+ 23.599700927734375,
+ 23.327213287353516,
+ 23.51398277282715,
+ 23.440107345581055,
+ 23.450275421142578,
+ 23.495798110961914,
+ 23.465057373046875
+ ]
+ },
+ {
+ "customdata": [
+ "013895d7-4d77-4522-9d87-fe26a324fdfe",
+ "74f24646-1581-4020-9b42-9ea006986058",
+ "7af5ce29-9267-4f20-952e-180451cb7419",
+ "7d9b6f1c-26e6-46b1-8ca0-1696dbe03ed7",
+ "94fff388-959b-4fe7-9faf-ddf9d278b228",
+ "c26b21b0-7326-4df6-b384-d59943635f8f"
+ ],
+ "hovertemplate": "_id: %{customdata}
%{text}",
+ "marker": {
+ "size": 2
+ },
+ "mode": "markers",
+ "name": "Cluster ID 12",
+ "text": [
+ "alert|default|KubeClientCertificateExpiration
alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed",
+ "alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed",
+ "alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed",
+ "alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed
foc|cloud-credential|Degraded|CredentialsFailing|337e
foc|cloud-credential|Progressing|Reconciling|b7a8
foc|image-registry|Progressing|Error|79db",
+ "alert|ThanosQueryHighDNSFailures
alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed",
+ "alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed"
+ ],
+ "type": "scatter3d",
+ "x": [
+ -6.485951900482178,
+ -6.3738508224487305,
+ -6.315647602081299,
+ -6.4550371170043945,
+ -6.2611236572265625,
+ -6.358331203460693
+ ],
+ "y": [
+ -26.78243064880371,
+ -26.869831085205078,
+ -26.952056884765625,
+ -26.83515167236328,
+ -26.9167537689209,
+ -26.94268798828125
+ ],
+ "z": [
+ 25.32775115966797,
+ 24.880992889404297,
+ 24.800085067749023,
+ 25.043746948242188,
+ 25.220415115356445,
+ 24.806257247924805
+ ]
+ }
+ ],
+ "layout": {
+ "template": {
+ "data": {
+ "bar": [
+ {
+ "error_x": {
+ "color": "#2a3f5f"
+ },
+ "error_y": {
+ "color": "#2a3f5f"
+ },
+ "marker": {
+ "line": {
+ "color": "#E5ECF6",
+ "width": 0.5
+ }
+ },
+ "type": "bar"
+ }
+ ],
+ "barpolar": [
+ {
+ "marker": {
+ "line": {
+ "color": "#E5ECF6",
+ "width": 0.5
+ }
+ },
+ "type": "barpolar"
+ }
+ ],
+ "carpet": [
+ {
+ "aaxis": {
+ "endlinecolor": "#2a3f5f",
+ "gridcolor": "white",
+ "linecolor": "white",
+ "minorgridcolor": "white",
+ "startlinecolor": "#2a3f5f"
+ },
+ "baxis": {
+ "endlinecolor": "#2a3f5f",
+ "gridcolor": "white",
+ "linecolor": "white",
+ "minorgridcolor": "white",
+ "startlinecolor": "#2a3f5f"
+ },
+ "type": "carpet"
+ }
+ ],
+ "choropleth": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "choropleth"
+ }
+ ],
+ "contour": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "contour"
+ }
+ ],
+ "contourcarpet": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "contourcarpet"
+ }
+ ],
+ "heatmap": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "heatmap"
+ }
+ ],
+ "heatmapgl": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "heatmapgl"
+ }
+ ],
+ "histogram": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "histogram"
+ }
+ ],
+ "histogram2d": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "histogram2d"
+ }
+ ],
+ "histogram2dcontour": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "histogram2dcontour"
+ }
+ ],
+ "mesh3d": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "mesh3d"
+ }
+ ],
+ "parcoords": [
+ {
+ "line": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "parcoords"
+ }
+ ],
+ "pie": [
+ {
+ "automargin": true,
+ "type": "pie"
+ }
+ ],
+ "scatter": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatter"
+ }
+ ],
+ "scatter3d": [
+ {
+ "line": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatter3d"
+ }
+ ],
+ "scattercarpet": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattercarpet"
+ }
+ ],
+ "scattergeo": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattergeo"
+ }
+ ],
+ "scattergl": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattergl"
+ }
+ ],
+ "scattermapbox": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattermapbox"
+ }
+ ],
+ "scatterpolar": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterpolar"
+ }
+ ],
+ "scatterpolargl": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterpolargl"
+ }
+ ],
+ "scatterternary": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterternary"
+ }
+ ],
+ "surface": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "surface"
+ }
+ ],
+ "table": [
+ {
+ "cells": {
+ "fill": {
+ "color": "#EBF0F8"
+ },
+ "line": {
+ "color": "white"
+ }
+ },
+ "header": {
+ "fill": {
+ "color": "#C8D4E3"
+ },
+ "line": {
+ "color": "white"
+ }
+ },
+ "type": "table"
+ }
+ ]
+ },
+ "layout": {
+ "annotationdefaults": {
+ "arrowcolor": "#2a3f5f",
+ "arrowhead": 0,
+ "arrowwidth": 1
+ },
+ "autotypenumbers": "strict",
+ "coloraxis": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "colorscale": {
+ "diverging": [
+ [
+ 0,
+ "#8e0152"
+ ],
+ [
+ 0.1,
+ "#c51b7d"
+ ],
+ [
+ 0.2,
+ "#de77ae"
+ ],
+ [
+ 0.3,
+ "#f1b6da"
+ ],
+ [
+ 0.4,
+ "#fde0ef"
+ ],
+ [
+ 0.5,
+ "#f7f7f7"
+ ],
+ [
+ 0.6,
+ "#e6f5d0"
+ ],
+ [
+ 0.7,
+ "#b8e186"
+ ],
+ [
+ 0.8,
+ "#7fbc41"
+ ],
+ [
+ 0.9,
+ "#4d9221"
+ ],
+ [
+ 1,
+ "#276419"
+ ]
+ ],
+ "sequential": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "sequentialminus": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ]
+ },
+ "colorway": [
+ "#636efa",
+ "#EF553B",
+ "#00cc96",
+ "#ab63fa",
+ "#FFA15A",
+ "#19d3f3",
+ "#FF6692",
+ "#B6E880",
+ "#FF97FF",
+ "#FECB52"
+ ],
+ "font": {
+ "color": "#2a3f5f"
+ },
+ "geo": {
+ "bgcolor": "white",
+ "lakecolor": "white",
+ "landcolor": "#E5ECF6",
+ "showlakes": true,
+ "showland": true,
+ "subunitcolor": "white"
+ },
+ "hoverlabel": {
+ "align": "left"
+ },
+ "hovermode": "closest",
+ "mapbox": {
+ "style": "light"
+ },
+ "paper_bgcolor": "white",
+ "plot_bgcolor": "#E5ECF6",
+ "polar": {
+ "angularaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "bgcolor": "#E5ECF6",
+ "radialaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ }
+ },
+ "scene": {
+ "xaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ },
+ "yaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ },
+ "zaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ }
+ },
+ "shapedefaults": {
+ "line": {
+ "color": "#2a3f5f"
+ }
+ },
+ "ternary": {
+ "aaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "baxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "bgcolor": "#E5ECF6",
+ "caxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ }
+ },
+ "title": {
+ "x": 0.05
+ },
+ "xaxis": {
+ "automargin": true,
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": "",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "white",
+ "zerolinewidth": 2
+ },
+ "yaxis": {
+ "automargin": true,
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": "",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "white",
+ "zerolinewidth": 2
+ }
+ }
+ }
+ }
+ },
+ "text/html": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# visualize deployments, colored by dbscan cluster label\n",
+ "fig = go.Figure()\n",
+ "\n",
+ "# data to display when hover over - list of all symptoms\n",
+ "hoverdata = X_df.apply(create_hoverinfo, axis=1)\n",
+ "\n",
+ "for c in unique_dbscan_labels:\n",
+ " # index where points are of this class\n",
+ " c_pts = dbscan.labels_ == c\n",
+ "\n",
+ " # add those points\n",
+ " fig.add_trace(\n",
+ " go.Scatter3d(\n",
+ " x=X_df_trans[c_pts, 0],\n",
+ " y=X_df_trans[c_pts, 1],\n",
+ " z=X_df_trans[c_pts, 2],\n",
+ " name=f\"Cluster ID {c}\",\n",
+ " mode=\"markers\",\n",
+ " hovertemplate=\"_id: %{customdata}
\" + \"
%{text}\",\n",
+ " customdata=hoverdata[c_pts].index.tolist(),\n",
+ " text=hoverdata[c_pts].values,\n",
+ " marker=dict(size=2),\n",
+ " )\n",
+ " )\n",
+ "\n",
+ "if SAVE_PLOTS:\n",
+ " savedir = \"../../reports/figures\"\n",
+ " fname = f\"dbscan_{dbscan.eps}_{dbscan.min_samples}\"\n",
+ " suffix = f\"{DATE_PREFIX.replace('/', '_')}_{IMAGES_TAG}\"\n",
+ "\n",
+ " print(f\"Saving plot as '{savedir}/{fname}_{suffix}.html'\")\n",
+ " plotly.offline.plot(\n",
+ " fig,\n",
+ " filename=f\"{savedir}/{fname}_{suffix}.html\",\n",
+ " auto_open=True,\n",
+ " )\n",
+ "fig.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Interpretation\n",
+ "\n",
+ "- This graph is to be interpreted in a similar way as the one above. The only difference is in the way the points are colored.\n",
+ "\n",
+ "- The color of a point represent the cluster (group) that the clustering algorithm assigned it to. For example, all the yellow points represent deployments that were labelled as belonging to cluster id 8.\n",
+ "\n",
+ "**INTERESTING NOTE 1**\n",
+ "
In the above graph, it can be seen the most popular symptom in deployments in cluster id 2 is `POD_CRASHLOOP_ISSUE`, and that for deployments in its neighboring cluster id 8 is `NODES_MINIMUM_REQUIREMENTS_NOT_MET`. The deployments that lie at the boundary of these two clusters tend to have both of the above symptoms. This suggests that the latent representation learned and the clusters formed are somewhat meaningful.\n",
+ "\n",
+ "**INTERESTING NOTE 2**\n",
+ "
In the above graph, it can be seen the most popular symptom in deployments in cluster id 4 is `FORCED_VERSION_UPDATES`, and that for deployments in its nearby cluster id 8 is `NODES_MINIMUM_REQUIREMENTS_NOT_MET`. For the deployments in cluster id 11, which lies between the above two clusters, the most popular symptoms are both `FORCED_VERSION_UPDATES` and `NODES_MINIMUM_REQUIREMENTS_NOT_MET`. This again suggests that the latent representation learned and the clusters formed are somewhat meaningful."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2021-01-27T16:42:56.843647Z",
+ "start_time": "2021-01-27T16:42:56.763369Z"
+ },
+ "code_folding": [
+ 0
+ ],
+ "scrolled": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The following table shows, what percent of deployments in a given cluster (group) had a particular diagnosis\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " cluster_size | \n",
+ " percent_ignored-symptoms | \n",
+ " percent_sdn-issue | \n",
+ " percent_kubelet-down | \n",
+ " percent_BZ-1821905-DefaultSecurityContextConstraints_Mutated | \n",
+ " percent_4.3-major-upgrade-autoscaler | \n",
+ "
\n",
+ " \n",
+ " cluster_id | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 10 | \n",
+ " 6 | \n",
+ " 0 | \n",
+ " 0.166667 | \n",
+ " 0.166667 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " -1 | \n",
+ " 23 | \n",
+ " 0 | \n",
+ " 0.0869565 | \n",
+ " 0.0434783 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " 12 | \n",
+ " 0 | \n",
+ " 0.0833333 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " 12 | \n",
+ " 6 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " 11 | \n",
+ " 19 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " 72 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 23 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 41 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 11 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 20 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " cluster_size percent_ignored-symptoms percent_sdn-issue \\\n",
+ "cluster_id \n",
+ " 10 6 0 0.166667 \n",
+ "-1 23 0 0.0869565 \n",
+ " 9 12 0 0.0833333 \n",
+ " 12 6 0 0 \n",
+ " 11 19 0 0 \n",
+ " 8 72 0 0 \n",
+ " 7 23 0 0 \n",
+ " 6 41 0 0 \n",
+ " 5 11 0 0 \n",
+ " 4 20 0 0 \n",
+ "\n",
+ " percent_kubelet-down \\\n",
+ "cluster_id \n",
+ " 10 0.166667 \n",
+ "-1 0.0434783 \n",
+ " 9 0 \n",
+ " 12 0 \n",
+ " 11 0 \n",
+ " 8 0 \n",
+ " 7 0 \n",
+ " 6 0 \n",
+ " 5 0 \n",
+ " 4 0 \n",
+ "\n",
+ " percent_BZ-1821905-DefaultSecurityContextConstraints_Mutated \\\n",
+ "cluster_id \n",
+ " 10 0 \n",
+ "-1 0 \n",
+ " 9 0 \n",
+ " 12 0 \n",
+ " 11 0 \n",
+ " 8 0 \n",
+ " 7 0 \n",
+ " 6 0 \n",
+ " 5 0 \n",
+ " 4 0 \n",
+ "\n",
+ " percent_4.3-major-upgrade-autoscaler \n",
+ "cluster_id \n",
+ " 10 0 \n",
+ "-1 0 \n",
+ " 9 0 \n",
+ " 12 0 \n",
+ " 11 0 \n",
+ " 8 0 \n",
+ " 7 0 \n",
+ " 6 0 \n",
+ " 5 0 \n",
+ " 4 0 "
+ ]
+ },
+ "execution_count": 18,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# for each cluster, what fraction of deployments have a particular diagnosis?\n",
+ "dbclust_diagnosis_df = pd.DataFrame(\n",
+ " index=unique_dbscan_labels,\n",
+ " columns=[\"cluster_size\"] + [f\"percent_{i}\" for i in diag_names],\n",
+ ")\n",
+ "dbclust_diagnosis_df.index.rename(\"cluster_id\", inplace=True)\n",
+ "for c in unique_dbscan_labels:\n",
+ " clust_depls = X_df.index[dbscan.labels_ == c]\n",
+ " dbclust_diagnosis_df.loc[c, \"cluster_size\"] = len(clust_depls)\n",
+ " for diag in diag_names:\n",
+ " does_clust_have_diag = clust_depls.isin(\n",
+ " diagnoses_df[diagnoses_df[\"symptom_id\"] == f\"diagnosis|{diag}\"][\n",
+ " \"cluster_id\"\n",
+ " ].unique()\n",
+ " )\n",
+ " try:\n",
+ " dbclust_diagnosis_df.loc[\n",
+ " c, f\"percent_{diag}\"\n",
+ " ] = does_clust_have_diag.mean()\n",
+ " except ZeroDivisionError:\n",
+ " dbclust_diagnosis_df.loc[c, f\"percent_{diag}\"] = 0\n",
+ "\n",
+ "pct_sorted_idx = (\n",
+ " dbclust_diagnosis_df.drop(\"cluster_size\", axis=1)\n",
+ " .max(axis=1)\n",
+ " .sort_values(ascending=False)\n",
+ " .index\n",
+ ")\n",
+ "\n",
+ "print(\n",
+ " \"The following table shows, what percent of deployments in a given cluster (group) had a particular diagnosis\"\n",
+ ")\n",
+ "dbclust_diagnosis_df.reindex(pct_sorted_idx).head(10)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Most Frequently Co-occuring Symptoms"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Now that clustering is done, we have a rough idea of which deployments are similar to each other (and therefore belong in the same cluster). In order to get the potential diagnosis that the deployments in a cluster supposedly share, we want to determine what makes deployments in that cluster different than the rest. That is, which symptoms are the defining characteristics of the cluster.\n",
+ "\n",
+ "To do this, we'll first use \"frequent pattern mining\" algorithms to find which symptom combinations are the most \"dominant\" in each cluster. Then, we'll compare the frequent symptom combinations in a cluster with those in others to determine which symptom combinations are unique to that cluster."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2021-01-27T16:42:56.852772Z",
+ "start_time": "2021-01-27T16:42:56.845279Z"
+ },
+ "code_folding": [
+ 0,
+ 2
+ ]
+ },
+ "outputs": [],
+ "source": [
+ "def get_frequent_symptom_combinations(\n",
+ " symptom_onehot_df, algo=\"fpgrowth\", min_support=0.9, drop_singles=False\n",
+ "):\n",
+ " # calculate frequent patterns as per the algorithm name passed\n",
+ " ret = getattr(mlxtend.frequent_patterns, algo)(\n",
+ " df=symptom_onehot_df, min_support=min_support, use_colnames=True\n",
+ " )\n",
+ "\n",
+ " # keep only those \"combinations\" whose length is >1\n",
+ " if drop_singles:\n",
+ " ret = ret[ret[\"itemsets\"].apply(lambda x: len(x)) > 1]\n",
+ "\n",
+ " # friendlier index and column names\n",
+ " ret = ret.rename(\n",
+ " columns={\n",
+ " \"itemsets\": \"symptom_combination\",\n",
+ " \"support\": \"percent_affected\",\n",
+ " }\n",
+ " ).set_index(\"symptom_combination\")\n",
+ "\n",
+ " # sort by percent_affected to bring attention to more frequent symptoms\n",
+ " ret = ret.sort_values(by=\"percent_affected\", ascending=False)\n",
+ "\n",
+ " return ret"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Overall Data\n",
+ "\n",
+ "Before diving into frequent symptom combination in specific clusters, let's have a look at symptom combinations in the overall data, so that we have a baseline to compare against.\n",
+ "\n",
+ "**NOTE**: This might not be _super_ informative because overall, various deployments are affected by various issues, so the values for \"average\" issues and patterns are likely very small. Nonetheless, this is meant to give only a rough idea, and to see if there are any symptoms that are common across a significant portion of the fleet."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2021-01-27T16:42:56.869558Z",
+ "start_time": "2021-01-27T16:42:56.854631Z"
+ },
+ "code_folding": [
+ 0
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " percent_affected | \n",
+ "
\n",
+ " \n",
+ " symptom_id | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET | \n",
+ " 0.379581 | \n",
+ "
\n",
+ " \n",
+ " rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE | \n",
+ " 0.225131 | \n",
+ "
\n",
+ " \n",
+ " rule|version_forced|FORCED_VERSION_UPDATES | \n",
+ " 0.225131 | \n",
+ "
\n",
+ " \n",
+ " alert|openshift-monitoring|KubePodNotReady | \n",
+ " 0.157068 | \n",
+ "
\n",
+ " \n",
+ " alert|openshift-monitoring|TargetDown|cluster-monitoring-operator | \n",
+ " 0.115183 | \n",
+ "
\n",
+ " \n",
+ " rule|machineconfig_stuck_by_node_taints|NODE_HAS_TAINTS_APPLIED | \n",
+ " 0.115183 | \n",
+ "
\n",
+ " \n",
+ " alert|openshift-monitoring|KubeDeploymentReplicasMismatch | \n",
+ " 0.107330 | \n",
+ "
\n",
+ " \n",
+ " rule|version_check|CLUSTER_VERSION_MISMATCH | \n",
+ " 0.091623 | \n",
+ "
\n",
+ " \n",
+ " alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed | \n",
+ " 0.073298 | \n",
+ "
\n",
+ " \n",
+ " alert|ThanosQueryHighDNSFailures | \n",
+ " 0.065445 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " percent_affected\n",
+ "symptom_id \n",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQ... 0.379581\n",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE 0.225131\n",
+ "rule|version_forced|FORCED_VERSION_UPDATES 0.225131\n",
+ "alert|openshift-monitoring|KubePodNotReady 0.157068\n",
+ "alert|openshift-monitoring|TargetDown|cluster-m... 0.115183\n",
+ "rule|machineconfig_stuck_by_node_taints|NODE_HA... 0.115183\n",
+ "alert|openshift-monitoring|KubeDeploymentReplic... 0.107330\n",
+ "rule|version_check|CLUSTER_VERSION_MISMATCH 0.091623\n",
+ "alert|openshift-cloud-credential-operator|Cloud... 0.073298\n",
+ "alert|ThanosQueryHighDNSFailures 0.065445"
+ ]
+ },
+ "execution_count": 20,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# average value of each symptom in overall data\n",
+ "X_df.mean().sort_values(ascending=False).to_frame(\"percent_affected\").head(10)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2021-01-27T16:42:56.926863Z",
+ "start_time": "2021-01-27T16:42:56.871316Z"
+ },
+ "code_folding": [
+ 0
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " percent_affected | \n",
+ "
\n",
+ " \n",
+ " symptom_combination | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " (alert|openshift-monitoring|TargetDown|cluster-monitoring-operator, alert|openshift-monitoring|KubePodNotReady) | \n",
+ " 0.10733 | \n",
+ "
\n",
+ " \n",
+ " (alert|openshift-monitoring|KubeDeploymentReplicasMismatch, alert|openshift-monitoring|TargetDown|cluster-monitoring-operator) | \n",
+ " 0.10733 | \n",
+ "
\n",
+ " \n",
+ " (alert|openshift-monitoring|KubeDeploymentReplicasMismatch, alert|openshift-monitoring|KubePodNotReady) | \n",
+ " 0.10733 | \n",
+ "
\n",
+ " \n",
+ " (alert|openshift-monitoring|KubeDeploymentReplicasMismatch, alert|openshift-monitoring|TargetDown|cluster-monitoring-operator, alert|openshift-monitoring|KubePodNotReady) | \n",
+ " 0.10733 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " percent_affected\n",
+ "symptom_combination \n",
+ "(alert|openshift-monitoring|TargetDown|cluster-... 0.10733\n",
+ "(alert|openshift-monitoring|KubeDeploymentRepli... 0.10733\n",
+ "(alert|openshift-monitoring|KubeDeploymentRepli... 0.10733\n",
+ "(alert|openshift-monitoring|KubeDeploymentRepli... 0.10733"
+ ]
+ },
+ "execution_count": 21,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# find frequent combinations in the entire dataset\n",
+ "# NOTE: min_support = at least this % of depls should have this combination of symptoms\n",
+ "get_frequent_symptom_combinations(\n",
+ " X_df, min_support=0.1, drop_singles=True\n",
+ ").head(10)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Specific Cluster (diagnosis = \"sdn-issue\")\n",
+ "\n",
+ "Let's perform this analysis for a specific cluster, cluster id 9. From the table at the end of [Apply Clustering](#Apply-Clustering) section, we see that one of the deployments in cluster was diagnosed with \"sdn-issue\". If our analysis is able to hint at the symptoms that define \"sdn-issue\", then it means this line of research is worth exploring further.\n",
+ "\n",
+ "As per kraken, the \"sdn-issue\" diagnosis is defined by\n",
+ "1. Root Cause\n",
+ " - AlertSymptom, \"namespace\": \"openshift-sdn\", \"name\": \"KubeDaemonSetRolloutStuck\"\n",
+ "2. Consequence\n",
+ " - OperatorConditionSymptom, \"operator\": \"dns\",\n",
+ " - --- OR --- \n",
+ " - AlertSymptom, \"namespace\": \"openshift-dns\""
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2021-01-27T16:42:56.936039Z",
+ "start_time": "2021-01-27T16:42:56.928812Z"
+ },
+ "code_folding": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ " Num Deployments in this Cluster = 12
"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Percent Deployments Assigned to this Cluster = 0.031413612565445025
"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# specific cluster for which to extract frequent patterns\n",
+ "clustid = 9\n",
+ "\n",
+ "# indexer into X_df. True where the deployment belongs to the cluster of id ==clustid\n",
+ "is_depl_in_clust = dbscan.labels_ == clustid\n",
+ "\n",
+ "# how many deployments in this particular cluster\n",
+ "display(\n",
+ " HTML(\n",
+ " f\" Num Deployments in this Cluster = {is_depl_in_clust.sum()}
\"\n",
+ " )\n",
+ ")\n",
+ "display(\n",
+ " HTML(\n",
+ " f\" Percent Deployments Assigned to this Cluster = {is_depl_in_clust.mean()}
\"\n",
+ " )\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2021-01-27T16:42:57.132681Z",
+ "start_time": "2021-01-27T16:42:56.937946Z"
+ },
+ "code_folding": [
+ 0
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "Most Affecting Symptoms
"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " percent_affected | \n",
+ "
\n",
+ " \n",
+ " symptom_id | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " rule|version_forced|FORCED_VERSION_UPDATES | \n",
+ " 1.000000 | \n",
+ "
\n",
+ " \n",
+ " alert|openshift-cluster-version|CannotRetrieveUpdates | \n",
+ " 1.000000 | \n",
+ "
\n",
+ " \n",
+ " alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed | \n",
+ " 0.916667 | \n",
+ "
\n",
+ " \n",
+ " rule|version_check|CLUSTER_VERSION_MISMATCH | \n",
+ " 0.333333 | \n",
+ "
\n",
+ " \n",
+ " rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE | \n",
+ " 0.250000 | \n",
+ "
\n",
+ " \n",
+ " alert|default|KubeClientCertificateExpiration | \n",
+ " 0.250000 | \n",
+ "
\n",
+ " \n",
+ " alert|openshift-multus|KubeDaemonSetRolloutStuck | \n",
+ " 0.250000 | \n",
+ "
\n",
+ " \n",
+ " alert|ThanosQueryGrpcClientErrorRate | \n",
+ " 0.250000 | \n",
+ "
\n",
+ " \n",
+ " alert|ThanosQueryHighDNSFailures | \n",
+ " 0.250000 | \n",
+ "
\n",
+ " \n",
+ " alert|openshift-image-registry|KubeJobCompletion | \n",
+ " 0.166667 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " percent_affected\n",
+ "symptom_id \n",
+ "rule|version_forced|FORCED_VERSION_UPDATES 1.000000\n",
+ "alert|openshift-cluster-version|CannotRetrieveU... 1.000000\n",
+ "alert|openshift-cloud-credential-operator|Cloud... 0.916667\n",
+ "rule|version_check|CLUSTER_VERSION_MISMATCH 0.333333\n",
+ "rule|pods_crash_loop_check|POD_CRASHLOOP_ISSUE 0.250000\n",
+ "alert|default|KubeClientCertificateExpiration 0.250000\n",
+ "alert|openshift-multus|KubeDaemonSetRolloutStuck 0.250000\n",
+ "alert|ThanosQueryGrpcClientErrorRate 0.250000\n",
+ "alert|ThanosQueryHighDNSFailures 0.250000\n",
+ "alert|openshift-image-registry|KubeJobCompletion 0.166667"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Most UNIQUELY Affecting Symptoms
"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " percent_affected_this | \n",
+ " percent_affected_others | \n",
+ "
\n",
+ " \n",
+ " symptom_id | \n",
+ " | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " alert|openshift-cluster-version|CannotRetrieveUpdates | \n",
+ " 1.000000 | \n",
+ " 0.021622 | \n",
+ "
\n",
+ " \n",
+ " alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed | \n",
+ " 0.916667 | \n",
+ " 0.045946 | \n",
+ "
\n",
+ " \n",
+ " rule|version_forced|FORCED_VERSION_UPDATES | \n",
+ " 1.000000 | \n",
+ " 0.200000 | \n",
+ "
\n",
+ " \n",
+ " rule|version_check|CLUSTER_VERSION_MISMATCH | \n",
+ " 0.333333 | \n",
+ " 0.083784 | \n",
+ "
\n",
+ " \n",
+ " alert|default|KubeClientCertificateExpiration | \n",
+ " 0.250000 | \n",
+ " 0.005405 | \n",
+ "
\n",
+ " \n",
+ " alert|ThanosQueryGrpcClientErrorRate | \n",
+ " 0.250000 | \n",
+ " 0.010811 | \n",
+ "
\n",
+ " \n",
+ " alert|openshift-multus|KubeDaemonSetRolloutStuck | \n",
+ " 0.250000 | \n",
+ " 0.010811 | \n",
+ "
\n",
+ " \n",
+ " alert|ThanosQueryHighDNSFailures | \n",
+ " 0.250000 | \n",
+ " 0.059459 | \n",
+ "
\n",
+ " \n",
+ " alert|openshift-image-registry|KubeJobCompletion | \n",
+ " 0.166667 | \n",
+ " 0.000000 | \n",
+ "
\n",
+ " \n",
+ " alert|openshift-image-registry|KubeContainerWaiting | \n",
+ " 0.166667 | \n",
+ " 0.002703 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " percent_affected_this \\\n",
+ "symptom_id \n",
+ "alert|openshift-cluster-version|CannotRetrieveU... 1.000000 \n",
+ "alert|openshift-cloud-credential-operator|Cloud... 0.916667 \n",
+ "rule|version_forced|FORCED_VERSION_UPDATES 1.000000 \n",
+ "rule|version_check|CLUSTER_VERSION_MISMATCH 0.333333 \n",
+ "alert|default|KubeClientCertificateExpiration 0.250000 \n",
+ "alert|ThanosQueryGrpcClientErrorRate 0.250000 \n",
+ "alert|openshift-multus|KubeDaemonSetRolloutStuck 0.250000 \n",
+ "alert|ThanosQueryHighDNSFailures 0.250000 \n",
+ "alert|openshift-image-registry|KubeJobCompletion 0.166667 \n",
+ "alert|openshift-image-registry|KubeContainerWai... 0.166667 \n",
+ "\n",
+ " percent_affected_others \n",
+ "symptom_id \n",
+ "alert|openshift-cluster-version|CannotRetrieveU... 0.021622 \n",
+ "alert|openshift-cloud-credential-operator|Cloud... 0.045946 \n",
+ "rule|version_forced|FORCED_VERSION_UPDATES 0.200000 \n",
+ "rule|version_check|CLUSTER_VERSION_MISMATCH 0.083784 \n",
+ "alert|default|KubeClientCertificateExpiration 0.005405 \n",
+ "alert|ThanosQueryGrpcClientErrorRate 0.010811 \n",
+ "alert|openshift-multus|KubeDaemonSetRolloutStuck 0.010811 \n",
+ "alert|ThanosQueryHighDNSFailures 0.059459 \n",
+ "alert|openshift-image-registry|KubeJobCompletion 0.000000 \n",
+ "alert|openshift-image-registry|KubeContainerWai... 0.002703 "
+ ]
+ },
+ "execution_count": 23,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# \"average\" symptom vector for this cluster\n",
+ "curr_clust_mean_symptom = (\n",
+ " X_df[is_depl_in_clust].mean().to_frame(\"percent_affected\")\n",
+ ")\n",
+ "display(HTML(\"Most Affecting Symptoms
\"))\n",
+ "display(\n",
+ " curr_clust_mean_symptom.sort_values(\n",
+ " \"percent_affected\", ascending=False\n",
+ " ).head(10)\n",
+ ")\n",
+ "\n",
+ "# \"average\" symptom vector for depls not in this cluster\n",
+ "other_clusts_mean_symptom = (\n",
+ " X_df[~is_depl_in_clust].mean().to_frame(\"percent_affected\")\n",
+ ")\n",
+ "\n",
+ "# what symptoms have different occurence frequencies as compared to other clusters\n",
+ "diff = pd.merge(\n",
+ " curr_clust_mean_symptom,\n",
+ " other_clusts_mean_symptom,\n",
+ " how=\"left\",\n",
+ " left_index=True,\n",
+ " right_index=True,\n",
+ " suffixes=(\"_this\", \"_others\"),\n",
+ ")\n",
+ "\n",
+ "# display in descending order of difference\n",
+ "display(HTML(\"Most UNIQUELY Affecting Symptoms
\"))\n",
+ "diff.reindex(\n",
+ " (diff[\"percent_affected_this\"] - diff[\"percent_affected_others\"])\n",
+ " .sort_values(ascending=False)\n",
+ " .index\n",
+ ").head(10)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2021-01-27T16:42:57.213455Z",
+ "start_time": "2021-01-27T16:42:57.134946Z"
+ },
+ "code_folding": [
+ 0
+ ],
+ "scrolled": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "Most Affecting Symptom Combinations
"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " percent_affected | \n",
+ "
\n",
+ " \n",
+ " symptom_combination | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " (rule|version_forced|FORCED_VERSION_UPDATES) | \n",
+ " 1.000000 | \n",
+ "
\n",
+ " \n",
+ " (alert|openshift-cluster-version|CannotRetrieveUpdates) | \n",
+ " 1.000000 | \n",
+ "
\n",
+ " \n",
+ " (alert|openshift-cluster-version|CannotRetrieveUpdates, rule|version_forced|FORCED_VERSION_UPDATES) | \n",
+ " 1.000000 | \n",
+ "
\n",
+ " \n",
+ " (alert|openshift-cluster-version|CannotRetrieveUpdates, rule|version_forced|FORCED_VERSION_UPDATES, alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed) | \n",
+ " 0.916667 | \n",
+ "
\n",
+ " \n",
+ " (rule|version_forced|FORCED_VERSION_UPDATES, alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed) | \n",
+ " 0.916667 | \n",
+ "
\n",
+ " \n",
+ " (alert|openshift-cluster-version|CannotRetrieveUpdates, alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed) | \n",
+ " 0.916667 | \n",
+ "
\n",
+ " \n",
+ " (alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed) | \n",
+ " 0.916667 | \n",
+ "
\n",
+ " \n",
+ " (rule|version_check|CLUSTER_VERSION_MISMATCH) | \n",
+ " 0.333333 | \n",
+ "
\n",
+ " \n",
+ " (alert|openshift-cluster-version|CannotRetrieveUpdates, rule|version_check|CLUSTER_VERSION_MISMATCH) | \n",
+ " 0.333333 | \n",
+ "
\n",
+ " \n",
+ " (rule|version_check|CLUSTER_VERSION_MISMATCH, rule|version_forced|FORCED_VERSION_UPDATES) | \n",
+ " 0.333333 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " percent_affected\n",
+ "symptom_combination \n",
+ "(rule|version_forced|FORCED_VERSION_UPDATES) 1.000000\n",
+ "(alert|openshift-cluster-version|CannotRetrieve... 1.000000\n",
+ "(alert|openshift-cluster-version|CannotRetrieve... 1.000000\n",
+ "(alert|openshift-cluster-version|CannotRetrieve... 0.916667\n",
+ "(rule|version_forced|FORCED_VERSION_UPDATES, al... 0.916667\n",
+ "(alert|openshift-cluster-version|CannotRetrieve... 0.916667\n",
+ "(alert|openshift-cloud-credential-operator|Clou... 0.916667\n",
+ "(rule|version_check|CLUSTER_VERSION_MISMATCH) 0.333333\n",
+ "(alert|openshift-cluster-version|CannotRetrieve... 0.333333\n",
+ "(rule|version_check|CLUSTER_VERSION_MISMATCH, r... 0.333333"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Most UNIQUELY Affecting Symptom Combinations
"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " percent_affected_this | \n",
+ " percent_affected_others | \n",
+ "
\n",
+ " \n",
+ " symptom_combination | \n",
+ " | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " (alert|openshift-cluster-version|CannotRetrieveUpdates) | \n",
+ " 1.000000 | \n",
+ " 0.021622 | \n",
+ "
\n",
+ " \n",
+ " (alert|openshift-cluster-version|CannotRetrieveUpdates, rule|version_forced|FORCED_VERSION_UPDATES) | \n",
+ " 1.000000 | \n",
+ " 0.050000 | \n",
+ "
\n",
+ " \n",
+ " (alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed) | \n",
+ " 0.916667 | \n",
+ " 0.045946 | \n",
+ "
\n",
+ " \n",
+ " (alert|openshift-cluster-version|CannotRetrieveUpdates, rule|version_forced|FORCED_VERSION_UPDATES, alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed) | \n",
+ " 0.916667 | \n",
+ " 0.050000 | \n",
+ "
\n",
+ " \n",
+ " (rule|version_forced|FORCED_VERSION_UPDATES, alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed) | \n",
+ " 0.916667 | \n",
+ " 0.050000 | \n",
+ "
\n",
+ " \n",
+ " (alert|openshift-cluster-version|CannotRetrieveUpdates, alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed) | \n",
+ " 0.916667 | \n",
+ " 0.050000 | \n",
+ "
\n",
+ " \n",
+ " (rule|version_forced|FORCED_VERSION_UPDATES) | \n",
+ " 1.000000 | \n",
+ " 0.200000 | \n",
+ "
\n",
+ " \n",
+ " (alert|openshift-cluster-version|CannotRetrieveUpdates, rule|version_check|CLUSTER_VERSION_MISMATCH) | \n",
+ " 0.333333 | \n",
+ " 0.050000 | \n",
+ "
\n",
+ " \n",
+ " (alert|openshift-cluster-version|CannotRetrieveUpdates, rule|version_check|CLUSTER_VERSION_MISMATCH, rule|version_forced|FORCED_VERSION_UPDATES) | \n",
+ " 0.333333 | \n",
+ " 0.050000 | \n",
+ "
\n",
+ " \n",
+ " (rule|version_check|CLUSTER_VERSION_MISMATCH, rule|version_forced|FORCED_VERSION_UPDATES) | \n",
+ " 0.333333 | \n",
+ " 0.083784 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " percent_affected_this \\\n",
+ "symptom_combination \n",
+ "(alert|openshift-cluster-version|CannotRetrieve... 1.000000 \n",
+ "(alert|openshift-cluster-version|CannotRetrieve... 1.000000 \n",
+ "(alert|openshift-cloud-credential-operator|Clou... 0.916667 \n",
+ "(alert|openshift-cluster-version|CannotRetrieve... 0.916667 \n",
+ "(rule|version_forced|FORCED_VERSION_UPDATES, al... 0.916667 \n",
+ "(alert|openshift-cluster-version|CannotRetrieve... 0.916667 \n",
+ "(rule|version_forced|FORCED_VERSION_UPDATES) 1.000000 \n",
+ "(alert|openshift-cluster-version|CannotRetrieve... 0.333333 \n",
+ "(alert|openshift-cluster-version|CannotRetrieve... 0.333333 \n",
+ "(rule|version_check|CLUSTER_VERSION_MISMATCH, r... 0.333333 \n",
+ "\n",
+ " percent_affected_others \n",
+ "symptom_combination \n",
+ "(alert|openshift-cluster-version|CannotRetrieve... 0.021622 \n",
+ "(alert|openshift-cluster-version|CannotRetrieve... 0.050000 \n",
+ "(alert|openshift-cloud-credential-operator|Clou... 0.045946 \n",
+ "(alert|openshift-cluster-version|CannotRetrieve... 0.050000 \n",
+ "(rule|version_forced|FORCED_VERSION_UPDATES, al... 0.050000 \n",
+ "(alert|openshift-cluster-version|CannotRetrieve... 0.050000 \n",
+ "(rule|version_forced|FORCED_VERSION_UPDATES) 0.200000 \n",
+ "(alert|openshift-cluster-version|CannotRetrieve... 0.050000 \n",
+ "(alert|openshift-cluster-version|CannotRetrieve... 0.050000 \n",
+ "(rule|version_check|CLUSTER_VERSION_MISMATCH, r... 0.083784 "
+ ]
+ },
+ "execution_count": 24,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# frequent symptom cominations in depls of this cluster\n",
+ "curr_clust_combinations = get_frequent_symptom_combinations(\n",
+ " X_df[is_depl_in_clust], min_support=0.25, drop_singles=False\n",
+ ")\n",
+ "display(HTML(\"Most Affecting Symptom Combinations
\"))\n",
+ "display(curr_clust_combinations.head(10))\n",
+ "\n",
+ "# frequent symptom patterns in depls of all other clusters\n",
+ "# NOTE: since num total depls is high, and it can contain depls of different types, min_support is kept v low (~5%)\n",
+ "other_clusts_combinations = get_frequent_symptom_combinations(\n",
+ " X_df[~is_depl_in_clust], min_support=0.01, drop_singles=False\n",
+ ")\n",
+ "\n",
+ "# what symptom patterns have different frequencies in this cluster as compared to other clusters\n",
+ "diff = pd.merge(\n",
+ " curr_clust_combinations,\n",
+ " other_clusts_combinations,\n",
+ " how=\"left\",\n",
+ " left_index=True,\n",
+ " right_index=True,\n",
+ " suffixes=(\"_this\", \"_others\"),\n",
+ ").fillna(0.05)\n",
+ "\n",
+ "# display in descending order of difference\n",
+ "display(HTML(\"Most UNIQUELY Affecting Symptom Combinations
\"))\n",
+ "diff.reindex(\n",
+ " (diff[\"percent_affected_this\"] - diff[\"percent_affected_others\"])\n",
+ " .sort_values(ascending=False)\n",
+ " .index\n",
+ ").head(10)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Interpretation\n",
+ "\n",
+ "The symptoms such as `alert|openshift-multus|KubeDaemonSetRolloutStuck`, `alert|ThanosQueryHighDNSFailures`, and `alert|ThanosQueryGrpcClientErrorRate` that are surfaced in the above tables seem to suggest that a network issue is the underlying problem for the deployments in this cluster. This is somewhat (but not completely) consistent with our knowledge, as one of the deployments in this cluster did already get diagnosed with `sdn-issue`."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example Potential Diagnosis\n",
+ "\n",
+ "In this section, we'll apply the above analysis to deployments of a specific cluster, for which we don't have a defined diagnosis yet. The goal is to see if we can extract useful information that could hint towards a potential diagnosis for deployments of this cluster."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2021-01-27T16:42:57.221876Z",
+ "start_time": "2021-01-27T16:42:57.215579Z"
+ },
+ "code_folding": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ " Num Deployments in this Cluster = 17
"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Percent Deployments Assigned to this Cluster = 0.04450261780104712
"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# specific cluster for which to extract frequent patterns\n",
+ "clustid = 0\n",
+ "\n",
+ "# indexer into X_df. True where the deployment belongs to the cluster of id ==clustid\n",
+ "is_depl_in_clust = dbscan.labels_ == clustid\n",
+ "\n",
+ "# how many deployments in this particular cluster\n",
+ "display(\n",
+ " HTML(\n",
+ " f\" Num Deployments in this Cluster = {is_depl_in_clust.sum()}
\"\n",
+ " )\n",
+ ")\n",
+ "display(\n",
+ " HTML(\n",
+ " f\" Percent Deployments Assigned to this Cluster = {is_depl_in_clust.mean()}
\"\n",
+ " )\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2021-01-27T16:42:57.252463Z",
+ "start_time": "2021-01-27T16:42:57.223837Z"
+ },
+ "code_folding": [
+ 0
+ ],
+ "scrolled": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "Most Affecting Symptoms
"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " percent_affected | \n",
+ "
\n",
+ " \n",
+ " symptom_id | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " alert|openshift-monitoring|KubePodNotReady | \n",
+ " 1.000000 | \n",
+ "
\n",
+ " \n",
+ " alert|openshift-monitoring|TargetDown|prometheus-adapter | \n",
+ " 1.000000 | \n",
+ "
\n",
+ " \n",
+ " alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors | \n",
+ " 1.000000 | \n",
+ "
\n",
+ " \n",
+ " foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc | \n",
+ " 0.941176 | \n",
+ "
\n",
+ " \n",
+ " alert|openshift-monitoring|KubeContainerWaiting | \n",
+ " 0.882353 | \n",
+ "
\n",
+ " \n",
+ " alert|default|AggregatedAPIDown | \n",
+ " 0.882353 | \n",
+ "
\n",
+ " \n",
+ " alert|KubeClientErrors | \n",
+ " 0.764706 | \n",
+ "
\n",
+ " \n",
+ " foc|monitoring|Progressing|RollOutInProgress|f311 | \n",
+ " 0.529412 | \n",
+ "
\n",
+ " \n",
+ " alert|openshift-cloud-credential-operator|CloudCredentialOperatorProvisioningFailed | \n",
+ " 0.411765 | \n",
+ "
\n",
+ " \n",
+ " rule|nodes_requirements_check|NODES_MINIMUM_REQUIREMENTS_NOT_MET | \n",
+ " 0.411765 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " percent_affected\n",
+ "symptom_id \n",
+ "alert|openshift-monitoring|KubePodNotReady 1.000000\n",
+ "alert|openshift-monitoring|TargetDown|prometheu... 1.000000\n",
+ "alert|openshift-monitoring|ClusterMonitoringOpe... 1.000000\n",
+ "foc|monitoring|Degraded|UpdatingprometheusAdapt... 0.941176\n",
+ "alert|openshift-monitoring|KubeContainerWaiting 0.882353\n",
+ "alert|default|AggregatedAPIDown 0.882353\n",
+ "alert|KubeClientErrors 0.764706\n",
+ "foc|monitoring|Progressing|RollOutInProgress|f311 0.529412\n",
+ "alert|openshift-cloud-credential-operator|Cloud... 0.411765\n",
+ "rule|nodes_requirements_check|NODES_MINIMUM_REQ... 0.411765"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Most UNIQUELY Affecting Symptoms
"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " percent_affected_this | \n",
+ " percent_affected_others | \n",
+ "
\n",
+ " \n",
+ " symptom_id | \n",
+ " | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " alert|openshift-monitoring|TargetDown|prometheus-adapter | \n",
+ " 1.000000 | \n",
+ " 0.005479 | \n",
+ "
\n",
+ " \n",
+ " alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors | \n",
+ " 1.000000 | \n",
+ " 0.010959 | \n",
+ "
\n",
+ " \n",
+ " foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc | \n",
+ " 0.941176 | \n",
+ " 0.005479 | \n",
+ "
\n",
+ " \n",
+ " alert|openshift-monitoring|KubePodNotReady | \n",
+ " 1.000000 | \n",
+ " 0.117808 | \n",
+ "
\n",
+ " \n",
+ " alert|default|AggregatedAPIDown | \n",
+ " 0.882353 | \n",
+ " 0.010959 | \n",
+ "
\n",
+ " \n",
+ " alert|openshift-monitoring|KubeContainerWaiting | \n",
+ " 0.882353 | \n",
+ " 0.024658 | \n",
+ "
\n",
+ " \n",
+ " alert|KubeClientErrors | \n",
+ " 0.764706 | \n",
+ " 0.008219 | \n",
+ "
\n",
+ " \n",
+ " foc|monitoring|Progressing|RollOutInProgress|f311 | \n",
+ " 0.529412 | \n",
+ " 0.002740 | \n",
+ "
\n",
+ " \n",
+ " foc|cloud-credential|Degraded|CredentialsFailing|337e | \n",
+ " 0.411765 | \n",
+ " 0.002740 | \n",
+ "
\n",
+ " \n",
+ " foc|cloud-credential|Progressing|Reconciling|b7a8 | \n",
+ " 0.411765 | \n",
+ " 0.002740 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " percent_affected_this \\\n",
+ "symptom_id \n",
+ "alert|openshift-monitoring|TargetDown|prometheu... 1.000000 \n",
+ "alert|openshift-monitoring|ClusterMonitoringOpe... 1.000000 \n",
+ "foc|monitoring|Degraded|UpdatingprometheusAdapt... 0.941176 \n",
+ "alert|openshift-monitoring|KubePodNotReady 1.000000 \n",
+ "alert|default|AggregatedAPIDown 0.882353 \n",
+ "alert|openshift-monitoring|KubeContainerWaiting 0.882353 \n",
+ "alert|KubeClientErrors 0.764706 \n",
+ "foc|monitoring|Progressing|RollOutInProgress|f311 0.529412 \n",
+ "foc|cloud-credential|Degraded|CredentialsFailin... 0.411765 \n",
+ "foc|cloud-credential|Progressing|Reconciling|b7a8 0.411765 \n",
+ "\n",
+ " percent_affected_others \n",
+ "symptom_id \n",
+ "alert|openshift-monitoring|TargetDown|prometheu... 0.005479 \n",
+ "alert|openshift-monitoring|ClusterMonitoringOpe... 0.010959 \n",
+ "foc|monitoring|Degraded|UpdatingprometheusAdapt... 0.005479 \n",
+ "alert|openshift-monitoring|KubePodNotReady 0.117808 \n",
+ "alert|default|AggregatedAPIDown 0.010959 \n",
+ "alert|openshift-monitoring|KubeContainerWaiting 0.024658 \n",
+ "alert|KubeClientErrors 0.008219 \n",
+ "foc|monitoring|Progressing|RollOutInProgress|f311 0.002740 \n",
+ "foc|cloud-credential|Degraded|CredentialsFailin... 0.002740 \n",
+ "foc|cloud-credential|Progressing|Reconciling|b7a8 0.002740 "
+ ]
+ },
+ "execution_count": 26,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# \"average\" symptom vector for this cluster\n",
+ "curr_clust_mean_symptom = (\n",
+ " X_df[is_depl_in_clust].mean().to_frame(\"percent_affected\")\n",
+ ")\n",
+ "display(HTML(\"Most Affecting Symptoms
\"))\n",
+ "display(\n",
+ " curr_clust_mean_symptom.sort_values(\n",
+ " \"percent_affected\", ascending=False\n",
+ " ).head(10)\n",
+ ")\n",
+ "\n",
+ "# \"average\" symptom vector for depls not in this cluster\n",
+ "other_clusts_mean_symptom = (\n",
+ " X_df[~is_depl_in_clust].mean().to_frame(\"percent_affected\")\n",
+ ")\n",
+ "\n",
+ "# what symptoms have different occurence frequencies as compared to other clusters\n",
+ "diff = pd.merge(\n",
+ " curr_clust_mean_symptom,\n",
+ " other_clusts_mean_symptom,\n",
+ " how=\"left\",\n",
+ " left_index=True,\n",
+ " right_index=True,\n",
+ " suffixes=(\"_this\", \"_others\"),\n",
+ ")\n",
+ "\n",
+ "# display in descending order of difference\n",
+ "display(HTML(\"Most UNIQUELY Affecting Symptoms
\"))\n",
+ "diff.reindex(\n",
+ " (diff[\"percent_affected_this\"] - diff[\"percent_affected_others\"])\n",
+ " .sort_values(ascending=False)\n",
+ " .index\n",
+ ").head(10)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2021-01-27T16:42:57.325285Z",
+ "start_time": "2021-01-27T16:42:57.255994Z"
+ },
+ "code_folding": [
+ 0
+ ],
+ "scrolled": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "Most Affecting Symptom Combinations
"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " percent_affected | \n",
+ "
\n",
+ " \n",
+ " symptom_combination | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " (alert|openshift-monitoring|TargetDown|prometheus-adapter, alert|openshift-monitoring|KubePodNotReady) | \n",
+ " 1.000000 | \n",
+ "
\n",
+ " \n",
+ " (alert|openshift-monitoring|TargetDown|prometheus-adapter, alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors) | \n",
+ " 1.000000 | \n",
+ "
\n",
+ " \n",
+ " (alert|openshift-monitoring|TargetDown|prometheus-adapter, alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors, alert|openshift-monitoring|KubePodNotReady) | \n",
+ " 1.000000 | \n",
+ "
\n",
+ " \n",
+ " (alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors, alert|openshift-monitoring|KubePodNotReady) | \n",
+ " 1.000000 | \n",
+ "
\n",
+ " \n",
+ " (alert|openshift-monitoring|KubePodNotReady, alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors, foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc) | \n",
+ " 0.941176 | \n",
+ "
\n",
+ " \n",
+ " (alert|openshift-monitoring|TargetDown|prometheus-adapter, alert|openshift-monitoring|KubePodNotReady, alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors, foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc) | \n",
+ " 0.941176 | \n",
+ "
\n",
+ " \n",
+ " (alert|openshift-monitoring|TargetDown|prometheus-adapter, alert|openshift-monitoring|KubePodNotReady, foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc) | \n",
+ " 0.941176 | \n",
+ "
\n",
+ " \n",
+ " (alert|openshift-monitoring|TargetDown|prometheus-adapter, alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors, foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc) | \n",
+ " 0.941176 | \n",
+ "
\n",
+ " \n",
+ " (alert|openshift-monitoring|TargetDown|prometheus-adapter, foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc) | \n",
+ " 0.941176 | \n",
+ "
\n",
+ " \n",
+ " (alert|openshift-monitoring|KubePodNotReady, foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc) | \n",
+ " 0.941176 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " percent_affected\n",
+ "symptom_combination \n",
+ "(alert|openshift-monitoring|TargetDown|promethe... 1.000000\n",
+ "(alert|openshift-monitoring|TargetDown|promethe... 1.000000\n",
+ "(alert|openshift-monitoring|TargetDown|promethe... 1.000000\n",
+ "(alert|openshift-monitoring|ClusterMonitoringOp... 1.000000\n",
+ "(alert|openshift-monitoring|KubePodNotReady, al... 0.941176\n",
+ "(alert|openshift-monitoring|TargetDown|promethe... 0.941176\n",
+ "(alert|openshift-monitoring|TargetDown|promethe... 0.941176\n",
+ "(alert|openshift-monitoring|TargetDown|promethe... 0.941176\n",
+ "(alert|openshift-monitoring|TargetDown|promethe... 0.941176\n",
+ "(alert|openshift-monitoring|KubePodNotReady, fo... 0.941176"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Most UNIQUELY Affecting Symptom Combinations
"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " percent_affected_this | \n",
+ " percent_affected_others | \n",
+ "
\n",
+ " \n",
+ " symptom_combination | \n",
+ " | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " (alert|openshift-monitoring|TargetDown|prometheus-adapter, alert|openshift-monitoring|KubePodNotReady) | \n",
+ " 1.000000 | \n",
+ " 0.05 | \n",
+ "
\n",
+ " \n",
+ " (alert|openshift-monitoring|TargetDown|prometheus-adapter, alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors) | \n",
+ " 1.000000 | \n",
+ " 0.05 | \n",
+ "
\n",
+ " \n",
+ " (alert|openshift-monitoring|TargetDown|prometheus-adapter, alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors, alert|openshift-monitoring|KubePodNotReady) | \n",
+ " 1.000000 | \n",
+ " 0.05 | \n",
+ "
\n",
+ " \n",
+ " (alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors, alert|openshift-monitoring|KubePodNotReady) | \n",
+ " 1.000000 | \n",
+ " 0.05 | \n",
+ "
\n",
+ " \n",
+ " (alert|openshift-monitoring|TargetDown|prometheus-adapter, alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors, foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc) | \n",
+ " 0.941176 | \n",
+ " 0.05 | \n",
+ "
\n",
+ " \n",
+ " (alert|openshift-monitoring|KubePodNotReady, foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc) | \n",
+ " 0.941176 | \n",
+ " 0.05 | \n",
+ "
\n",
+ " \n",
+ " (alert|openshift-monitoring|TargetDown|prometheus-adapter, foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc) | \n",
+ " 0.941176 | \n",
+ " 0.05 | \n",
+ "
\n",
+ " \n",
+ " (alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors, foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc) | \n",
+ " 0.941176 | \n",
+ " 0.05 | \n",
+ "
\n",
+ " \n",
+ " (alert|openshift-monitoring|TargetDown|prometheus-adapter, alert|openshift-monitoring|KubePodNotReady, foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc) | \n",
+ " 0.941176 | \n",
+ " 0.05 | \n",
+ "
\n",
+ " \n",
+ " (alert|openshift-monitoring|TargetDown|prometheus-adapter, alert|openshift-monitoring|KubePodNotReady, alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors, foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc) | \n",
+ " 0.941176 | \n",
+ " 0.05 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " percent_affected_this \\\n",
+ "symptom_combination \n",
+ "(alert|openshift-monitoring|TargetDown|promethe... 1.000000 \n",
+ "(alert|openshift-monitoring|TargetDown|promethe... 1.000000 \n",
+ "(alert|openshift-monitoring|TargetDown|promethe... 1.000000 \n",
+ "(alert|openshift-monitoring|ClusterMonitoringOp... 1.000000 \n",
+ "(alert|openshift-monitoring|TargetDown|promethe... 0.941176 \n",
+ "(alert|openshift-monitoring|KubePodNotReady, fo... 0.941176 \n",
+ "(alert|openshift-monitoring|TargetDown|promethe... 0.941176 \n",
+ "(alert|openshift-monitoring|ClusterMonitoringOp... 0.941176 \n",
+ "(alert|openshift-monitoring|TargetDown|promethe... 0.941176 \n",
+ "(alert|openshift-monitoring|TargetDown|promethe... 0.941176 \n",
+ "\n",
+ " percent_affected_others \n",
+ "symptom_combination \n",
+ "(alert|openshift-monitoring|TargetDown|promethe... 0.05 \n",
+ "(alert|openshift-monitoring|TargetDown|promethe... 0.05 \n",
+ "(alert|openshift-monitoring|TargetDown|promethe... 0.05 \n",
+ "(alert|openshift-monitoring|ClusterMonitoringOp... 0.05 \n",
+ "(alert|openshift-monitoring|TargetDown|promethe... 0.05 \n",
+ "(alert|openshift-monitoring|KubePodNotReady, fo... 0.05 \n",
+ "(alert|openshift-monitoring|TargetDown|promethe... 0.05 \n",
+ "(alert|openshift-monitoring|ClusterMonitoringOp... 0.05 \n",
+ "(alert|openshift-monitoring|TargetDown|promethe... 0.05 \n",
+ "(alert|openshift-monitoring|TargetDown|promethe... 0.05 "
+ ]
+ },
+ "execution_count": 27,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# frequent symptom cominations in depls of this cluster\n",
+ "curr_clust_combinations = get_frequent_symptom_combinations(\n",
+ " X_df[is_depl_in_clust],\n",
+ " min_support=0.25,\n",
+ " drop_singles=True,\n",
+ ")\n",
+ "display(HTML(\"Most Affecting Symptom Combinations
\"))\n",
+ "display(curr_clust_combinations.head(10))\n",
+ "\n",
+ "# frequent symptom patterns in depls of all other clusters\n",
+ "# NOTE: since num total depls is high, and it can contain depls of different types, min_support is kept v low (~5%)\n",
+ "other_clusts_combinations = get_frequent_symptom_combinations(\n",
+ " X_df[~is_depl_in_clust],\n",
+ " min_support=0.05,\n",
+ " drop_singles=True,\n",
+ ")\n",
+ "\n",
+ "# what symptom patterns have different frequencies in this cluster as compared to other clusters\n",
+ "diff = pd.merge(\n",
+ " curr_clust_combinations,\n",
+ " other_clusts_combinations,\n",
+ " how=\"left\",\n",
+ " left_index=True,\n",
+ " right_index=True,\n",
+ " suffixes=(\"_this\", \"_others\"),\n",
+ ").fillna(0.05)\n",
+ "\n",
+ "# display in descending order of difference\n",
+ "display(HTML(\"Most UNIQUELY Affecting Symptom Combinations
\"))\n",
+ "diff.reindex(\n",
+ " (diff[\"percent_affected_this\"] - diff[\"percent_affected_others\"])\n",
+ " .sort_values(ascending=False)\n",
+ " .index\n",
+ ").head(10)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Interpretation\n",
+ "It seems (to a non-SME eye) that the main issue for the deployments in this cluster is that prometheus or cluster monitoring operator is not deployed correctly. The symptoms that point towards this are `alert|openshift-monitoring|TargetDown|prometheus-adapter`, `foc|monitoring|Degraded|UpdatingprometheusAdapterFailed|e0dc`, `alert|openshift-monitoring|ClusterMonitoringOperatorReconciliationErrors`, `foc|monitoring|Progressing|RollOutInProgress|f311`, etc."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Conclusion and Next Steps\n",
+ "\n",
+ "The results above do not seem as definitive as those obtained by running this analysis on production data. When run on data collected from actual production deployments, we were able to surface the _exact_ symptoms and combinations that engineers had used to define the existing `sdn-issue`, `kubelet-down`, and `DefaultSecurityContextConstraints_Mutated` diagnoses.\n",
+ "\n",
+ "One possible reason why we do not see the same results here is that CI/CD deployments do not have the same workloads as production deployments. Therefore, the amount and variety of symptoms we have is limited. Nonetheless, as seen in the above [example](#Specific-Cluster-(diagnosis-=-\"sdn-issue\")), these recommendations can still be quite helpful and save engineers time in determining the underlying problem.\n",
+ "\n",
+ "Considering the results here and in the notebook with production data, we can conclude that:\n",
+ "\n",
+ "1. There is some probability that, if deployments are assigned to the same group/cluster by the clustering algorithm, then many of them share the same or related diagnosis.\n",
+ "2. Determining the most frequent (and most \"characteristic\") symptoms and symptom combinations using frequent pattern mining can hint towards the underlying diagnosis.\n",
+ "\n",
+ "Therefore, ML techniques such as clustering and pattern mining can indeed be used to identify and define new diagnoses.\n",
+ "\n",
+ "For the **next steps**, SME's should try to perform the analysis done in `Example Potential Diagnosis` for rest of the cluster (group) ids, to see what other symptom patterns could be made into diagnosis definitions. To do this, simply change the value of the variable `clustid` and re-run the cells in that section."
+ ]
+ }
+ ],
+ "metadata": {
+ "finalized": {
+ "timestamp": 1611764053996,
+ "trusted": true
+ },
+ "kernelspec": {
+ "display_name": "Python 3",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.6.8"
+ },
+ "toc": {
+ "base_numbering": 1,
+ "nav_menu": {},
+ "number_sections": true,
+ "sideBar": true,
+ "skip_h1_title": false,
+ "title_cell": "Table of Contents",
+ "title_sidebar": "Contents",
+ "toc_cell": false,
+ "toc_position": {},
+ "toc_section_display": true,
+ "toc_window_display": false
+ },
+ "widgets": {
+ "application/vnd.jupyter.widget-state+json": {
+ "state": {
+ "0096f59a6ff5415b80bdb30b462b1b1b": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "ButtonModel",
+ "state": {
+ "description": "Run Interact",
+ "layout": "IPY_MODEL_a6963905f0b1490686954276b3041ba0",
+ "style": "IPY_MODEL_810d22ad83004279bb239543aab17344"
+ }
+ },
+ "015fea98e9cb4fd8921d2928babf9cc7": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "VBoxModel",
+ "state": {
+ "_dom_classes": [
+ "widget-interact"
+ ],
+ "children": [
+ "IPY_MODEL_815719b492d74536b950f146cf238b14",
+ "IPY_MODEL_cc8570bbb92143dcbc1994888d2d1a28"
+ ],
+ "layout": "IPY_MODEL_cd48f3cbb70646519a2bee4a09199719"
+ }
+ },
+ "03c3b6f8963148c5807aa0884fe6a5e8": {
+ "model_module": "@jupyter-widgets/output",
+ "model_module_version": "1.0.0",
+ "model_name": "OutputModel",
+ "state": {
+ "layout": "IPY_MODEL_b43d35cd5b2045558709795d0ea45072"
+ }
+ },
+ "06da8f71ff134812a21c67802199be9e": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "09157d99750b4bafb66bd0798147977b": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "09aa7277a98b45689cab3b76ee7d60fc": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "09bbd0b44b354d6492c897cce257f506": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "09c6f042cf3446e6a1dcfab6c75683ef": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "0a4bd157b89e43559dd73fee0866efef": {
+ "model_module": "@jupyter-widgets/output",
+ "model_module_version": "1.0.0",
+ "model_name": "OutputModel",
+ "state": {
+ "layout": "IPY_MODEL_a9938f87c9d74bd18c1c8017f4cbe2da"
+ }
+ },
+ "0a93954217e24ce39f01052dc44ede09": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "0ccd6ba36a6549c486333609661aa6ab": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "0ea0318e74564234ae0ea1487bf32321": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "1021e472ecaf4efab30d65c941f73784": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DropdownModel",
+ "state": {
+ "_options_labels": [
+ "0",
+ "1",
+ "2",
+ "3",
+ "4",
+ "5",
+ "6",
+ "7",
+ "8",
+ "9",
+ "10",
+ "11",
+ "12",
+ "13",
+ "14",
+ "15",
+ "16",
+ "17",
+ "18",
+ "19",
+ "20",
+ "21",
+ "22",
+ "23",
+ "24",
+ "25",
+ "26",
+ "27",
+ "28",
+ "29",
+ "30",
+ "31",
+ "32",
+ "33",
+ "34",
+ "35",
+ "36",
+ "37",
+ "38",
+ "39",
+ "40",
+ "41",
+ "42",
+ "43",
+ "44",
+ "45",
+ "46",
+ "47",
+ "48",
+ "49",
+ "50",
+ "51",
+ "52",
+ "53",
+ "54",
+ "55",
+ "56",
+ "57",
+ "58",
+ "59"
+ ],
+ "description": "minute",
+ "index": 0,
+ "layout": "IPY_MODEL_86d52c205a5844c3a4aef8af38b5148b",
+ "style": "IPY_MODEL_c99b35ec1eeb4cb49d505d84a048d9ee"
+ }
+ },
+ "102a3df892de4f5c975ff0c035206cef": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DropdownModel",
+ "state": {
+ "_options_labels": [
+ "1",
+ "2",
+ "3",
+ "4",
+ "5",
+ "6",
+ "7",
+ "8",
+ "9",
+ "10",
+ "11",
+ "12",
+ "13",
+ "14",
+ "15",
+ "16",
+ "17",
+ "18",
+ "19",
+ "20",
+ "21",
+ "22",
+ "23",
+ "24",
+ "25",
+ "26",
+ "27",
+ "28",
+ "29",
+ "30",
+ "31"
+ ],
+ "description": "day",
+ "index": 16,
+ "layout": "IPY_MODEL_35c9c8b504ce458b9d2d9ad61b0f1c0a",
+ "style": "IPY_MODEL_ec3731d9f26440f083b890b81e75b3df"
+ }
+ },
+ "119a7c624689434d813d3a615be5e8cd": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "VBoxModel",
+ "state": {
+ "_dom_classes": [
+ "widget-interact"
+ ],
+ "children": [
+ "IPY_MODEL_3e91bd9aae6948c88da1a1711a59e325",
+ "IPY_MODEL_cc3aaf470fa64b11b4944d847863b8c3"
+ ],
+ "layout": "IPY_MODEL_d219194e639e4b52a3be19a5bbc16c15"
+ }
+ },
+ "13044b506f444d82a737a6605005bc9c": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "1511e6a7f0c045c9b64cbf4995394790": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DropdownModel",
+ "state": {
+ "_options_labels": [
+ "1",
+ "2",
+ "3",
+ "4",
+ "5",
+ "6",
+ "7",
+ "8",
+ "9",
+ "10",
+ "11",
+ "12",
+ "13",
+ "14",
+ "15",
+ "16",
+ "17",
+ "18",
+ "19",
+ "20",
+ "21",
+ "22",
+ "23",
+ "24",
+ "25",
+ "26",
+ "27",
+ "28",
+ "29",
+ "30",
+ "31"
+ ],
+ "description": "day",
+ "index": 16,
+ "layout": "IPY_MODEL_890ebeb79f474ab48011e721d06b93a6",
+ "style": "IPY_MODEL_b1c872d655074efaaf7d421a20c41f32"
+ }
+ },
+ "15adc8fc6af544438619d942c4da8065": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "15b496f6cb6c4f4d864e607e3e5153c8": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "1696663d58ee425b9ead50e6a33ab534": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "SelectMultipleModel",
+ "state": {
+ "_options_labels": [
+ "4.3.0",
+ "4.3.0-0.ci-2020-06-02-135046",
+ "4.3.0-0.ci-2020-06-02-143046",
+ "4.3.0-0.ci-2020-06-02-173709",
+ "4.3.0-0.nightly-2019-10-18-120524",
+ "4.3.0-0.nightly-2019-12-11-073659",
+ "4.3.0-0.nightly-2019-12-18-215416",
+ "4.3.0-0.nightly-2020-01-20-183918",
+ "4.3.0-0.nightly-2020-03-10-182422",
+ "4.3.0-0.nightly-2020-05-03-171510",
+ "4.3.0-0.nightly-2020-06-01-225519",
+ "4.3.0-0.nightly-ppc64le-2020-01-29-170954",
+ "4.3.0-0.nightly-ppc64le-2020-03-02-144601",
+ "4.3.0-0.nightly-ppc64le-2020-03-11-144705",
+ "4.3.0-0.nightly-ppc64le-2020-04-29-064539",
+ "4.3.0-0.nightly-s390x-2020-04-20-185529",
+ "4.3.0-0.okd-2020-05-07-035413",
+ "4.3.0-rc.2",
+ "4.3.1",
+ "4.3.10",
+ "4.3.11",
+ "4.3.12",
+ "4.3.13",
+ "4.3.16",
+ "4.3.17",
+ "4.3.18",
+ "4.3.19",
+ "4.3.2",
+ "4.3.21",
+ "4.3.22",
+ "4.3.23",
+ "4.3.3",
+ "4.3.5",
+ "4.3.8",
+ "4.3.9"
+ ],
+ "description": "Patches",
+ "index": [
+ 0,
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34
+ ],
+ "layout": "IPY_MODEL_843e1778ae984d70906529844e810968",
+ "rows": 5,
+ "style": "IPY_MODEL_2f9454a74a4549959505d18c5d718543"
+ }
+ },
+ "1ae91e63be8140f1bffb7706ab2aff8e": {
+ "model_module": "@jupyter-widgets/output",
+ "model_module_version": "1.0.0",
+ "model_name": "OutputModel",
+ "state": {
+ "layout": "IPY_MODEL_51af6dc301444d3397bd2244591c3a11"
+ }
+ },
+ "1d93d2e351c342b59cfe0aac70a541fe": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DropdownModel",
+ "state": {
+ "_options_labels": [
+ "0",
+ "1",
+ "2",
+ "3",
+ "4",
+ "5",
+ "6",
+ "7",
+ "8",
+ "9",
+ "10",
+ "11",
+ "12",
+ "13",
+ "14",
+ "15",
+ "16",
+ "17",
+ "18",
+ "19",
+ "20",
+ "21",
+ "22",
+ "23",
+ "24",
+ "25",
+ "26",
+ "27",
+ "28",
+ "29",
+ "30",
+ "31",
+ "32",
+ "33",
+ "34",
+ "35",
+ "36",
+ "37",
+ "38",
+ "39",
+ "40",
+ "41",
+ "42",
+ "43",
+ "44",
+ "45",
+ "46",
+ "47",
+ "48",
+ "49",
+ "50",
+ "51",
+ "52",
+ "53",
+ "54",
+ "55",
+ "56",
+ "57",
+ "58",
+ "59"
+ ],
+ "description": "minute",
+ "index": 0,
+ "layout": "IPY_MODEL_bf0192248c534f0995c4b9f4ce090a69",
+ "style": "IPY_MODEL_7d5bab431dc74165bdc15f3d87f5c39d"
+ }
+ },
+ "1f6a96cb9a554a70acf4556e2bc83005": {
+ "model_module": "@jupyter-widgets/output",
+ "model_module_version": "1.0.0",
+ "model_name": "OutputModel",
+ "state": {
+ "layout": "IPY_MODEL_e9d30cea8bdf41b795e8cbffea49d58f"
+ }
+ },
+ "1f73cc572f2b46d984727b23e2458407": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "20eac18aad9d4d788c33bf150c126ed6": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "215a9cfae49f4f6d9f031548aff997b0": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "VBoxModel",
+ "state": {
+ "_dom_classes": [
+ "widget-interact"
+ ],
+ "children": [
+ "IPY_MODEL_57ffcef54cc74b668630638dd048eb51",
+ "IPY_MODEL_f99bc377b2fa4b1287dbf170ee088c5e"
+ ],
+ "layout": "IPY_MODEL_b8394a07081041eca352b7ad0aa58714"
+ }
+ },
+ "21e22844406b4607bd9eccf0b7334b61": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "234ba692853b41e895f5e1622ceaa860": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "ButtonModel",
+ "state": {
+ "description": "Run Interact",
+ "layout": "IPY_MODEL_e693bacadcf844b78f22da39d7d1c9cb",
+ "style": "IPY_MODEL_768a884a67de4a38907b2da1b1c04204"
+ }
+ },
+ "2369bff6ab674cfd8008df5e3bd251dc": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "VBoxModel",
+ "state": {
+ "_dom_classes": [
+ "widget-interact"
+ ],
+ "children": [
+ "IPY_MODEL_f6f7c924e22e46f59aa1ab2be5fd8b5f",
+ "IPY_MODEL_364d88b567f347799df7a2dcfc7e2a11",
+ "IPY_MODEL_102a3df892de4f5c975ff0c035206cef",
+ "IPY_MODEL_90bf62ef0b324ea5a1a129e311488af5",
+ "IPY_MODEL_eac023e292da4a50ae78355829146cda",
+ "IPY_MODEL_6a52f648ffb14eb9968986850607ba75",
+ "IPY_MODEL_778beb97d14945908b32029409e800f1",
+ "IPY_MODEL_52e3eb03517e49cb986123c7753ee324"
+ ],
+ "layout": "IPY_MODEL_48a81232d5c94e38a56f7fa84fb67e4a"
+ }
+ },
+ "23b8a43a307a43b094d80180106aadfa": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "SelectMultipleModel",
+ "state": {
+ "_options_labels": [
+ "4.2.0",
+ "4.2.0-0.nightly-2019-08-29-062233",
+ "4.2.0-0.nightly-2019-09-18-114152",
+ "4.2.0-0.nightly-2019-09-23-154647",
+ "4.2.0-0.nightly-2019-09-24-194016",
+ "4.2.0-0.nightly-2019-09-25-233506",
+ "4.2.0-0.nightly-2019-09-26-192831",
+ "4.2.0-0.nightly-2019-10-07-203748",
+ "4.2.0-0.nightly-s390x-2019-12-05-223224",
+ "4.2.0-rc.3",
+ "4.2.1",
+ "4.2.10",
+ "4.2.10-s390x",
+ "4.2.12",
+ "4.2.12-s390x",
+ "4.2.13",
+ "4.2.13-s390x",
+ "4.2.14",
+ "4.2.16",
+ "4.2.18",
+ "4.2.19",
+ "4.2.2",
+ "4.2.4",
+ "4.2.5",
+ "4.2.7",
+ "4.2.8",
+ "4.2.9"
+ ],
+ "description": "Patches",
+ "index": [
+ 0,
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26
+ ],
+ "layout": "IPY_MODEL_246b6cb501f74e00859882f8a714878f",
+ "rows": 5,
+ "style": "IPY_MODEL_98409eb030224181b31200aa09ddbd5e"
+ }
+ },
+ "246b6cb501f74e00859882f8a714878f": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "247fd31698f84c5888e7f40f95f6cf32": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DropdownModel",
+ "state": {
+ "_options_labels": [
+ "0",
+ "1",
+ "2",
+ "3",
+ "4",
+ "5",
+ "6",
+ "7",
+ "8",
+ "9",
+ "10",
+ "11",
+ "12",
+ "13",
+ "14",
+ "15",
+ "16",
+ "17",
+ "18",
+ "19",
+ "20",
+ "21",
+ "22",
+ "23",
+ "24",
+ "25",
+ "26",
+ "27",
+ "28",
+ "29",
+ "30",
+ "31",
+ "32",
+ "33",
+ "34",
+ "35",
+ "36",
+ "37",
+ "38",
+ "39",
+ "40",
+ "41",
+ "42",
+ "43",
+ "44",
+ "45",
+ "46",
+ "47",
+ "48",
+ "49",
+ "50",
+ "51",
+ "52",
+ "53",
+ "54",
+ "55",
+ "56",
+ "57",
+ "58",
+ "59"
+ ],
+ "description": "second",
+ "index": 0,
+ "layout": "IPY_MODEL_bac678d7cd8849d380720a9f3e76bfec",
+ "style": "IPY_MODEL_2a6b22e49a4d4253bd2a3ce021a88454"
+ }
+ },
+ "2625bbe3fb714fe68b19ba4e12e81581": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "26611313663141ae8ebb84de4968c4f2": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "2799f90af52645deb9166d90f460c78d": {
+ "model_module": "@jupyter-widgets/output",
+ "model_module_version": "1.0.0",
+ "model_name": "OutputModel",
+ "state": {
+ "layout": "IPY_MODEL_35e11b3e0cac479b82cf508bdbd00d59"
+ }
+ },
+ "2840a00ac95843378f9263bef757dbda": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DropdownModel",
+ "state": {
+ "_options_labels": [
+ "1",
+ "2",
+ "3",
+ "4",
+ "5",
+ "6",
+ "7",
+ "8",
+ "9",
+ "10",
+ "11",
+ "12"
+ ],
+ "description": "month",
+ "index": 1,
+ "layout": "IPY_MODEL_32a634ce172746d98cc07d47bfb4864f",
+ "style": "IPY_MODEL_37e8a916d2b245ef9e2c480b1366c605"
+ }
+ },
+ "2a6b22e49a4d4253bd2a3ce021a88454": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "2aea9e200b444934886846c727dbabf3": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "2d17162ea04348aea6c27eefe641d96b": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DropdownModel",
+ "state": {
+ "_options_labels": [
+ "1",
+ "2",
+ "3",
+ "4",
+ "5",
+ "6",
+ "7",
+ "8",
+ "9",
+ "10",
+ "11",
+ "12"
+ ],
+ "description": "month",
+ "index": 1,
+ "layout": "IPY_MODEL_26611313663141ae8ebb84de4968c4f2",
+ "style": "IPY_MODEL_21e22844406b4607bd9eccf0b7334b61"
+ }
+ },
+ "2d5b9f562fab4b6aa87b892f760bd1d0": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DropdownModel",
+ "state": {
+ "_options_labels": [
+ "0",
+ "1",
+ "2",
+ "3",
+ "4",
+ "5",
+ "6",
+ "7",
+ "8",
+ "9",
+ "10",
+ "11",
+ "12",
+ "13",
+ "14",
+ "15",
+ "16",
+ "17",
+ "18",
+ "19",
+ "20",
+ "21",
+ "22",
+ "23",
+ "24",
+ "25",
+ "26",
+ "27",
+ "28",
+ "29",
+ "30",
+ "31",
+ "32",
+ "33",
+ "34",
+ "35",
+ "36",
+ "37",
+ "38",
+ "39",
+ "40",
+ "41",
+ "42",
+ "43",
+ "44",
+ "45",
+ "46",
+ "47",
+ "48",
+ "49",
+ "50",
+ "51",
+ "52",
+ "53",
+ "54",
+ "55",
+ "56",
+ "57",
+ "58",
+ "59"
+ ],
+ "description": "second",
+ "index": 0,
+ "layout": "IPY_MODEL_e64adc78c7b84ce38ed815895d856e3c",
+ "style": "IPY_MODEL_69c8cc2860f8490089769841f62cd95f"
+ }
+ },
+ "2f476652b58f48d78fbed8429946aa5c": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "ButtonStyleModel",
+ "state": {}
+ },
+ "2f9454a74a4549959505d18c5d718543": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "3093b652e58e452da514052942e46636": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "3163d9abe1f74289856fbd41d93898e6": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "32875dbbe0084885ac8c3b2f352293bf": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "32a634ce172746d98cc07d47bfb4864f": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "32aa4bd9696d40b5b970db6d95e9e9f5": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DropdownModel",
+ "state": {
+ "_options_labels": [
+ "2020",
+ "2019",
+ "2018",
+ "2017",
+ "2016",
+ "2015",
+ "2014",
+ "2013",
+ "2012",
+ "2011"
+ ],
+ "description": "year",
+ "index": 0,
+ "layout": "IPY_MODEL_cf3ca8357320446a85819782e4f59173",
+ "style": "IPY_MODEL_4eda209b3fc3451088bad24592b97013"
+ }
+ },
+ "33ad57d5f8084db6aae6b8e41e041c6c": {
+ "model_module": "@jupyter-widgets/output",
+ "model_module_version": "1.0.0",
+ "model_name": "OutputModel",
+ "state": {
+ "layout": "IPY_MODEL_9737e62a3a384956a2d13f7eb2448b09"
+ }
+ },
+ "34ce71863cfa44d1902491254aaeb417": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "35c9c8b504ce458b9d2d9ad61b0f1c0a": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "35e11b3e0cac479b82cf508bdbd00d59": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "364d88b567f347799df7a2dcfc7e2a11": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DropdownModel",
+ "state": {
+ "_options_labels": [
+ "1",
+ "2",
+ "3",
+ "4",
+ "5",
+ "6",
+ "7",
+ "8",
+ "9",
+ "10",
+ "11",
+ "12"
+ ],
+ "description": "month",
+ "index": 1,
+ "layout": "IPY_MODEL_b7d39ffa254c44a1a53ea6674671fd0d",
+ "style": "IPY_MODEL_e23dd20f3ef5412f9836ef33b8ec3a23"
+ }
+ },
+ "36b259400bf8424fa2ba15a09547db50": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DropdownModel",
+ "state": {
+ "_options_labels": [
+ "type_AWS",
+ "type_Azure",
+ "type_BareMetal",
+ "type_GCP",
+ "type_Libvirt",
+ "type_None",
+ "type_OpenStack",
+ "type_VSphere",
+ "type_oVirt"
+ ],
+ "description": "prov",
+ "index": 0,
+ "layout": "IPY_MODEL_a9c9b9ecbc9b4f2d87083c7321b62f89",
+ "style": "IPY_MODEL_f8d44ba0dbd1432dbf391f0294657cc5"
+ }
+ },
+ "36ceee127cd245438a8909ef20c0633b": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "37e8a916d2b245ef9e2c480b1366c605": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "3b21e78432084bc885b41d535a2545bc": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "VBoxModel",
+ "state": {
+ "_dom_classes": [
+ "widget-interact"
+ ],
+ "children": [
+ "IPY_MODEL_1696663d58ee425b9ead50e6a33ab534",
+ "IPY_MODEL_b46af3399ab143fd9ad92cb10788ac6f"
+ ],
+ "layout": "IPY_MODEL_58ad1ba369d24df29a562a05ddadc80a"
+ }
+ },
+ "3b98c35ed21540818ef1455dcbb516a1": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "3ddde9715bf44cc882dc4f1d70d5466b": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "3e3c4f5886f0404b94fe71e40e4581cc": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "3e89545f0fdc41e09fb007daef0fe088": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "3e8cf3da0b014c509986912fd7f3e2ec": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DropdownModel",
+ "state": {
+ "_options_labels": [
+ "2020",
+ "2019",
+ "2018",
+ "2017",
+ "2016",
+ "2015",
+ "2014",
+ "2013",
+ "2012",
+ "2011"
+ ],
+ "description": "year",
+ "index": 0,
+ "layout": "IPY_MODEL_765d602b07ed4ed1b07943a34a7f3377",
+ "style": "IPY_MODEL_32875dbbe0084885ac8c3b2f352293bf"
+ }
+ },
+ "3e91bd9aae6948c88da1a1711a59e325": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DropdownModel",
+ "state": {
+ "_options_labels": [
+ "ALL (2318)",
+ "us.ibm.com (1199 depls)",
+ "gmail.com (44 depls)",
+ "ibm.com (41 depls)",
+ "de.ibm.com (16 depls)",
+ "hpe.com (16 depls)",
+ "cn.ibm.com (16 depls)",
+ "in.ibm.com (13 depls)",
+ "ie.ibm.com (12 depls)",
+ "dell.com (11 depls)",
+ "accenture.com (11 depls)",
+ "intel.com (8 depls)",
+ "dl.jp.fujitsu.com (8 depls)",
+ "secureworks.com (8 depls)",
+ "infosys.com (7 depls)",
+ "bell.ca (7 depls)",
+ "jp.ibm.com (7 depls)",
+ "bkfs.com (7 depls)",
+ "delta.com (7 depls)",
+ "o2its.cz (6 depls)",
+ "rohde-schwarz.com (6 depls)",
+ "uk.ibm.com (6 depls)",
+ "kocsistem.com.tr (6 depls)",
+ "nec.com (6 depls)",
+ "jp.fujitsu.com (5 depls)",
+ "hcl.com (5 depls)",
+ "de.bosch.com (5 depls)",
+ "landregistry.gov.uk (5 depls)",
+ "capgroup.com (5 depls)",
+ "orange.com (5 depls)",
+ "computacenter.com (4 depls)",
+ "sparebank1.no (4 depls)",
+ "t-systems.com (4 depls)",
+ "sap.com (4 depls)",
+ "fr.ibm.com (4 depls)",
+ "nttdata.com (4 depls)",
+ "ukcloud.com (4 depls)",
+ "il.ibm.com (4 depls)",
+ "ca.ibm.com (4 depls)",
+ "crif.com (4 depls)",
+ "bankmandiri.co.id (4 depls)",
+ "tigera.io (4 depls)",
+ "atos.net (4 depls)",
+ "debeka.de (4 depls)",
+ "vmware.com (4 depls)",
+ "linux.vnet.ibm.com (4 depls)",
+ "qq.com (4 depls)",
+ "worldpay.com (4 depls)",
+ "anz.com (4 depls)",
+ "etisalat.ae (4 depls)",
+ "experian.com (4 depls)",
+ "microsoft.com (3 depls)",
+ "axa.com (3 depls)",
+ "intervalintl.com (3 depls)",
+ "bbva.com (3 depls)",
+ "dynatrace.com (3 depls)",
+ "bitmarck.de (3 depls)",
+ "blood.ca (3 depls)",
+ "yahoo.com (3 depls)",
+ "cigna.com (3 depls)",
+ "cirb.brussels (3 depls)",
+ "trustmarkbenefits.com (3 depls)",
+ "nike.com (3 depls)",
+ "bom.gov.au (3 depls)",
+ "hitachi.com (3 depls)",
+ "cern.ch (3 depls)",
+ "honeywell.com (3 depls)",
+ "list.orange.com (3 depls)",
+ "bt.com (3 depls)",
+ "ncontr.com (3 depls)",
+ "pl.ibm.com (3 depls)",
+ "es.ibm.com (3 depls)",
+ "tractorsupply.com (3 depls)",
+ "netapp.com (3 depls)",
+ "aquasec.com (3 depls)",
+ "faa.gov (3 depls)",
+ "vegas.com (3 depls)",
+ "juniper.net (3 depls)",
+ "redislabs.com (3 depls)",
+ "sas.com (3 depls)",
+ "vhi.ie (3 depls)",
+ "rbc.com (3 depls)",
+ "ford.com (3 depls)",
+ "ascendcorp.com (3 depls)",
+ "fostermoore.com (2 depls)",
+ "posteitaliane.it (2 depls)",
+ "pvgroup.be (2 depls)",
+ "sorint.it (2 depls)",
+ "exidelife.in (2 depls)",
+ "elcorteingles.es (2 depls)",
+ "ra.rockwell.com (2 depls)",
+ "spf.jp.nec.com (2 depls)",
+ "deloitte.com (2 depls)",
+ "rtlabs.ru (2 depls)",
+ "ornl.gov (2 depls)",
+ "cloudera.com (2 depls)",
+ "rechtspraak.nl (2 depls)",
+ "rise-world.com (2 depls)",
+ "reply.it (2 depls)",
+ "catalysts.cc (2 depls)",
+ "cargo-partner.com (2 depls)",
+ "popso.it (2 depls)",
+ "capgemini.com (2 depls)",
+ "emirates.com (2 depls)",
+ "npo.nl (2 depls)",
+ "perficient.com (2 depls)",
+ "sekom.com.tr (2 depls)",
+ "dentisoft.com (2 depls)",
+ "crossvale.com (2 depls)",
+ "criticaltechworks.com (2 depls)",
+ "sensiaglobal.com (2 depls)",
+ "f9c.com.br (2 depls)",
+ "onespan.com (2 depls)",
+ "ol.ge (2 depls)",
+ "gen-e.com (2 depls)",
+ "csaa.com (2 depls)",
+ "ocbcnisp.com (2 depls)",
+ "gig.com (2 depls)",
+ "dhl.com (2 depls)",
+ "corp.vodafone.es (2 depls)",
+ "reisebank.de (2 depls)",
+ "global.ntt (2 depls)",
+ "extremedata.com.tw (2 depls)",
+ "globalrelay.net (2 depls)",
+ "dxcas.com (2 depls)",
+ "garantibbva.com.tr (2 depls)",
+ "cucbc.com (2 depls)",
+ "provinzial.de (2 depls)",
+ "nuodb.com (2 depls)",
+ "eaton.com (2 depls)",
+ "sbb.ch (2 depls)",
+ "pegadaian.co.id (2 depls)",
+ "grupo-pinero.com (2 depls)",
+ "f5.com (2 depls)",
+ "ericsson.com (2 depls)",
+ "bandwidth.com (2 depls)",
+ "tw.ibm.com (2 depls)",
+ "tipsport.cz (2 depls)",
+ "mii.co.id (2 depls)",
+ "agility.com (2 depls)",
+ "verifone.com (2 depls)",
+ "tmrnd.com.my (2 depls)",
+ "bancocredicoop.coop (2 depls)",
+ "axians.de (2 depls)",
+ "transport.nsw.gov.au (2 depls)",
+ "kolon.com (2 depls)",
+ "michigan.gov (2 depls)",
+ "amadeus.com (2 depls)",
+ "vps.no (2 depls)",
+ "turbonomic.com (2 depls)",
+ "metlife.com (2 depls)",
+ "vodafone.com (2 depls)",
+ "lsd.co.za (2 depls)",
+ "au.ibm.com (2 depls)",
+ "swissmedical.com.ar (2 depls)",
+ "kela.fi (2 depls)",
+ "kasten.io (2 depls)",
+ "unimoni.com (2 depls)",
+ "unisystems.gr (2 depls)",
+ "united.com (2 depls)",
+ "arburg.com (2 depls)",
+ "ups.com (2 depls)",
+ "verizonwireless.com (2 depls)",
+ "arbetsformedlingen.se (2 depls)",
+ "k8s.jp.nec.com (2 depls)",
+ "jndata.dk (2 depls)",
+ "ar.ibm.com (2 depls)",
+ "tinubu.com (2 depls)",
+ "uspto.gov (2 depls)",
+ "krash.be (2 depls)",
+ "hydro.qc.ca (2 depls)",
+ "iecisa.com (2 depls)",
+ "accenturefederal.com (2 depls)",
+ "technet-asia.com (2 depls)",
+ "teco.com.ar (2 depls)",
+ "telefonica.com (2 depls)",
+ "mwam.com (2 depls)",
+ "tcs.com (2 depls)",
+ "bouyguestelecom.fr (2 depls)",
+ "icbc.com.ar (2 depls)",
+ "msn.com (2 depls)",
+ "kuivanto.fi (2 depls)",
+ "wipro.com (2 depls)",
+ "hughes.com (2 depls)",
+ "adlere.fr (2 depls)",
+ "systex.com.hk (2 depls)",
+ "163.com (2 depls)",
+ "msccruises.com (2 depls)",
+ "lansforsakringar.se (1 depls)",
+ "karauctionservices.com (1 depls)",
+ "fi.ibm.com (1 depls)",
+ "leep.app (1 depls)",
+ "everbank.com (1 depls)",
+ "kbtg.tech (1 depls)",
+ "evtcorp.com (1 depls)",
+ "lcwaikiki.com (1 depls)",
+ "kemkes.go.id (1 depls)",
+ "zsdis.sk (1 depls)",
+ "feratel.at (1 depls)",
+ "labanquepostale.fr (1 depls)",
+ "kubus-it.de (1 depls)",
+ "extraordy.com (1 depls)",
+ "ext.adeo.com (1 depls)",
+ "kr.ibm.com (1 depls)",
+ "korian.fr (1 depls)",
+ "exisoft.com.ar (1 depls)",
+ "lacaja.com.ar (1 depls)",
+ "keybank.com (1 depls)",
+ "kolabsys.com (1 depls)",
+ "kohls.com (1 depls)",
+ "fedins.com (1 depls)",
+ "lacework.net (1 depls)",
+ "extrasys.it (1 depls)",
+ "exatetechnology.com (1 depls)",
+ "hr.ibm.com (1 depls)",
+ "its4u.lu (1 depls)",
+ "fintechgroup.com (1 depls)",
+ "hfbank.com.cn (1 depls)",
+ "googlemail.com (1 depls)",
+ "insightglobal.com (1 depls)",
+ "insiel.it (1 depls)",
+ "inndata.in (1 depls)",
+ "h-da.de (1 depls)",
+ "harness.io (1 depls)",
+ "hcahealthcare.com (1 depls)",
+ "infineon.com (1 depls)",
+ "ikea.com (1 depls)",
+ "intellilink.co.jp (1 depls)",
+ "hitachi-systems.com (1 depls)",
+ "hitrust.com.tw (1 depls)",
+ "hma.honda.com (1 depls)",
+ "hna.honda.com (1 depls)",
+ "homecenter.co (1 depls)",
+ "i-t-m.com (1 depls)",
+ "hotmail.com (1 depls)",
+ "hts.ge (1 depls)",
+ "google.com (1 depls)",
+ "gmx.net (1 depls)",
+ "fixedmea.com (1 depls)",
+ "gd-ms.com (1 depls)",
+ "flex.com (1 depls)",
+ "jazz.com.pk (1 depls)",
+ "fujitsu.com (1 depls)",
+ "ivteknologi.com (1 depls)",
+ "g3solutions.com.br (1 depls)",
+ "ivirma.com (1 depls)",
+ "itgroupinc.asia (1 depls)",
+ "gazprom-neft.ru (1 depls)",
+ "gds.ey.com (1 depls)",
+ "intesasanpaolo.com (1 depls)",
+ "itc.li (1 depls)",
+ "italgas.it (1 depls)",
+ "it.mos.ru (1 depls)",
+ "geodis.com (1 depls)",
+ "it.ibm.com (1 depls)",
+ "getskillednow.com (1 depls)",
+ "intility.no (1 depls)",
+ "gire.com (1 depls)",
+ "hu.ibm.com (1 depls)",
+ "cyccustomshop.com (1 depls)",
+ "enhance-it.dk (1 depls)",
+ "axa-tech.com (1 depls)",
+ "bcbssc.com (1 depls)",
+ "bcbsfl.com (1 depls)",
+ "bca.co.id (1 depls)",
+ "barqsystems.com (1 depls)",
+ "barceloviajes.com (1 depls)",
+ "bankofthewest.com (1 depls)",
+ "avisbudget.com (1 depls)",
+ "bertelsmann.de (1 depls)",
+ "avinetworks.com (1 depls)",
+ "aviary.tech (1 depls)",
+ "avaloq.com (1 depls)",
+ "aval.ua (1 depls)",
+ "autozone.com (1 depls)",
+ "au1.ibm.com (1 depls)",
+ "bcx.co.za (1 depls)",
+ "bk.ru (1 depls)",
+ "bynet.co.il (1 depls)",
+ "boschrexroth.de (1 depls)",
+ "btpnsyariah.com (1 depls)",
+ "bthtech.com (1 depls)",
+ "br.ibm.com (1 depls)",
+ "bpsconsultores.com (1 depls)",
+ "bps-suisse.ch (1 depls)",
+ "bpba.com.ar (1 depls)",
+ "bofa.com (1 depls)",
+ "blackdiamondreporting.com (1 depls)",
+ "boehringer-ingelheim.com (1 depls)",
+ "bnz.co.nz (1 depls)",
+ "bnc.ca (1 depls)",
+ "bluestembrands.com (1 depls)",
+ "bls.gov (1 depls)",
+ "blackducksoftware.com (1 depls)",
+ "att.com (1 depls)",
+ "atea.se (1 depls)",
+ "asset-metrix.com (1 depls)",
+ "adcubum.com (1 depls)",
+ "agirc-arrco.fr (1 depls)",
+ "agiledigital.com.au (1 depls)",
+ "advatys.com (1 depls)",
+ "advance-auto.com (1 depls)",
+ "adfinis-sygroup.ch (1 depls)",
+ "adeoservices.com (1 depls)",
+ "achmea.nl (1 depls)",
+ "asia.ccb.com (1 depls)",
+ "acdigital.com.br (1 depls)",
+ "acceleris.ch (1 depls)",
+ "abanca.com (1 depls)",
+ "a1.at (1 depls)",
+ "4data.ch (1 depls)",
+ "126.com (1 depls)",
+ "aliyun.com (1 depls)",
+ "alliander.com (1 depls)",
+ "alltechsolucoes.com.br (1 depls)",
+ "altroninc.com (1 depls)",
+ "amazon.com (1 depls)",
+ "anadoluefes.com (1 depls)",
+ "anchore.com (1 depls)",
+ "ao.uscourts.gov (1 depls)",
+ "aoins.com (1 depls)",
+ "ap-com.co.jp (1 depls)",
+ "apg.at (1 depls)",
+ "apis-it.hr (1 depls)",
+ "apptecinc.com (1 depls)",
+ "appvalue.ro (1 depls)",
+ "apx.fr (1 depls)",
+ "aramco.com (1 depls)",
+ "aricent.com (1 depls)",
+ "buenosaires.gob.ar (1 depls)",
+ "c3.ai (1 depls)",
+ "emc.com (1 depls)",
+ "daa.ie (1 depls)",
+ "dct-cloud.com (1 depls)",
+ "datagumbo.com (1 depls)",
+ "datacom.co.nz (1 depls)",
+ "darkwolfsolutions.com (1 depls)",
+ "daocloud.io (1 depls)",
+ "danskecommodities.com (1 depls)",
+ "cz.ibm.com (1 depls)",
+ "deloitte.de (1 depls)",
+ "lhind.dlh.de (1 depls)",
+ "cyberark.com (1 depls)",
+ "ctc-g.com.sg (1 depls)",
+ "cspq.gouv.qc.ca (1 depls)",
+ "cspire.com (1 depls)",
+ "csiweb.com (1 depls)",
+ "decsoft.com.pl (1 depls)",
+ "det.nsw.edu.au (1 depls)",
+ "cablevision.com.ar (1 depls)",
+ "edgebound.com (1 depls)",
+ "email.unc.edu (1 depls)",
+ "emag.ro (1 depls)",
+ "elotl.co (1 depls)",
+ "elkarlan.onmicrosoft.com (1 depls)",
+ "eginnovations.com (1 depls)",
+ "egcp.com (1 depls)",
+ "econocom.com (1 depls)",
+ "deutsche-boerse.com (1 depls)",
+ "ece.cmu.edu (1 depls)",
+ "ec.europa.eu (1 depls)",
+ "duo.nl (1 depls)",
+ "doosan.com (1 depls)",
+ "dict.gov.ph (1 depls)",
+ "devoteam.com (1 depls)",
+ "croz.net (1 depls)",
+ "crown.com (1 depls)",
+ "cronos.be (1 depls)",
+ "ch.ibm.com (1 depls)",
+ "clearlake.ibm.com (1 depls)",
+ "citizensbank.com (1 depls)",
+ "cisco.com (1 depls)",
+ "cielo.com.br (1 depls)",
+ "chicos.com (1 depls)",
+ "charter.net (1 depls)",
+ "cfh.sk (1 depls)",
+ "cristie.se (1 depls)",
+ "cetelem.com.br (1 depls)",
+ "cepsa.com (1 depls)",
+ "centec.at (1 depls)",
+ "capitalonline.net (1 depls)",
+ "canada.ca (1 depls)",
+ "cambio.se (1 depls)",
+ "clearstream.com (1 depls)",
+ "cloudgensys.com (1 depls)",
+ "cmbchina.com (1 depls)",
+ "cn.fujitsu.com (1 depls)",
+ "cnr.it (1 depls)",
+ "cnsys.bg (1 depls)",
+ "cognitivescale.com (1 depls)",
+ "comafi.com.ar (1 depls)",
+ "comas.co.kr (1 depls)",
+ "commvault.com (1 depls)",
+ "comparex.com.tr (1 depls)",
+ "consol.de (1 depls)",
+ "couchbase.com (1 depls)",
+ "cpcc.edu (1 depls)",
+ "cra-arc.gc.ca (1 depls)",
+ "crediteurope.nl (1 depls)",
+ "creditone.com (1 depls)",
+ "lfst.bayern.de (1 depls)",
+ "ztech.io (1 depls)",
+ "0x233.cn (1 depls)",
+ "tcbs.com.vn (1 depls)",
+ "tier2consulting.com (1 depls)",
+ "tiaa.org (1 depls)",
+ "plusserver.com (1 depls)",
+ "tiaa-cref.org (1 depls)",
+ "thy.com (1 depls)",
+ "portworx.com (1 depls)",
+ "priorbank.by (1 depls)",
+ "prodevans.com (1 depls)",
+ "produban.com (1 depls)",
+ "proedge.hk (1 depls)",
+ "thinkahead.com (1 depls)",
+ "th.ibm.com (1 depls)",
+ "teranet.ca (1 depls)",
+ "tera-sky.com (1 depls)",
+ "pronaca.com (1 depls)",
+ "tep.com (1 depls)",
+ "telus.com (1 depls)",
+ "prosis.de (1 depls)",
+ "prosol.com (1 depls)",
+ "proteon.com (1 depls)",
+ "proxy.nl (1 depls)",
+ "teliacygate.fi (1 depls)",
+ "psba.qld.gov.au (1 depls)",
+ "techlead.com.br (1 depls)",
+ "ptt.gov.tr (1 depls)",
+ "techdata.com (1 depls)",
+ "team.telstra.com (1 depls)",
+ "planeta.es (1 depls)",
+ "tieto.com (1 depls)",
+ "pixar.com (1 depls)",
+ "otago.ac.nz (1 depls)",
+ "omnitracs.com (1 depls)",
+ "uib.es (1 depls)",
+ "twistlock.com (1 depls)",
+ "openline.nl (1 depls)",
+ "opennaru.com (1 depls)",
+ "opsta.co.th (1 depls)",
+ "oraex.com.br (1 depls)",
+ "orange.fr (1 depls)",
+ "origo.is (1 depls)",
+ "tre.se (1 depls)",
+ "tr.ibm.com (1 depls)",
+ "tpg.ch (1 depls)",
+ "outlook.com (1 depls)",
+ "tigbit.co.uk (1 depls)",
+ "outlook.fr (1 depls)",
+ "ozguryazilim.com.tr (1 depls)",
+ "packet-systems.com (1 depls)",
+ "tmx.com (1 depls)",
+ "payback.net (1 depls)",
+ "tmbbank.com (1 depls)",
+ "pbtech.net.br (1 depls)",
+ "penguincomputing.com (1 depls)",
+ "perceptilabs.com (1 depls)",
+ "physter.com (1 depls)",
+ "pinkroccade.nl (1 depls)",
+ "piros.be (1 depls)",
+ "tds.fujitsu.com (1 depls)",
+ "tbcbank.com.ge (1 depls)",
+ "ocbc.com (1 depls)",
+ "puzzle.ch (1 depls)",
+ "service-rz.de (1 depls)",
+ "sg.ibm.com (1 depls)",
+ "sg.smbc.co.jp (1 depls)",
+ "shaun.io (1 depls)",
+ "shi-g.com (1 depls)",
+ "sicredi.com.br (1 depls)",
+ "sigma.fr (1 depls)",
+ "startx.fr (1 depls)",
+ "starhub.com (1 depls)",
+ "standardbank.co.za (1 depls)",
+ "stackrox.com (1 depls)",
+ "ss.jrkyushu-g.co.jp (1 depls)",
+ "sita.aero (1 depls)",
+ "src.si (1 depls)",
+ "sprint.com (1 depls)",
+ "six-group.com (1 depls)",
+ "spirent.com (1 depls)",
+ "slac.stanford.edu (1 depls)",
+ "sll.se (1 depls)",
+ "snt.ro (1 depls)",
+ "softec.sk (1 depls)",
+ "spi.de (1 depls)",
+ "softwaymedical.fr (1 depls)",
+ "sogei.it (1 depls)",
+ "spectrumhealth.org (1 depls)",
+ "spark.co.nz (1 depls)",
+ "soprasteria.com (1 depls)",
+ "semprautilities.com (1 depls)",
+ "seldon.io (1 depls)",
+ "steelbridgelabs.com (1 depls)",
+ "roseltorg.tech (1 depls)",
+ "tav.aero (1 depls)",
+ "r-it.at (1 depls)",
+ "rabobank.nl (1 depls)",
+ "syspower.com.tw (1 depls)",
+ "libertyglobal.com (1 depls)",
+ "rccl.com (1 depls)",
+ "syncsort.com (1 depls)",
+ "regionh.dk (1 depls)",
+ "syncrasy.io (1 depls)",
+ "rku-it.de (1 depls)",
+ "robak.at (1 depls)",
+ "sympany.ch (1 depls)",
+ "swisscom.com (1 depls)",
+ "scholzj.com (1 depls)",
+ "rs.ibm.com (1 depls)",
+ "swift.com (1 depls)",
+ "sa.ibm.com (1 depls)",
+ "saic.com (1 depls)",
+ "samsung.com (1 depls)",
+ "swedbank.se (1 depls)",
+ "saq.qc.ca (1 depls)",
+ "sberbank.hr (1 depls)",
+ "stena.com (1 depls)",
+ "schindler.com (1 depls)",
+ "schiphol.nl (1 depls)",
+ "scholastic.com (1 depls)",
+ "omantel.om (1 depls)",
+ "os3infotech.com (1 depls)",
+ "oa.mo.gov (1 depls)",
+ "mediapro.tv (1 depls)",
+ "mendix.com (1 depls)",
+ "wimionline.be (1 depls)",
+ "mfec.co.th (1 depls)",
+ "whitehedge.com (1 depls)",
+ "microland.com (1 depls)",
+ "microstrat.com (1 depls)",
+ "mindgate.in (1 depls)",
+ "wh.jp.nec.com (1 depls)",
+ "minsait.com (1 depls)",
+ "westmonroepartners.com (1 depls)",
+ "mitre.org (1 depls)",
+ "mobiltel.bg (1 depls)",
+ "mongodb.com (1 depls)",
+ "morganstanley.com (1 depls)",
+ "vw.com (1 depls)",
+ "mtb.com (1 depls)",
+ "vub.sk (1 depls)",
+ "musala.com (1 depls)",
+ "vrtx.com (1 depls)",
+ "myriad.com (1 depls)",
+ "nationwide.co.uk (1 depls)",
+ "vkb.de (1 depls)",
+ "natixis.com (1 depls)",
+ "vismayacorp.com (1 depls)",
+ "vineti.com (1 depls)",
+ "videotron.com (1 depls)",
+ "navitus.com (1 depls)",
+ "medirect.com.mt (1 depls)",
+ "mduresources.com (1 depls)",
+ "nc.rr.com (1 depls)",
+ "wuerth-it.com (1 depls)",
+ "zpiz.si (1 depls)",
+ "liquidit.nz (1 depls)",
+ "lists.psi.ch (1 depls)",
+ "zettaset.com (1 depls)",
+ "lmco.com (1 depls)",
+ "lme.com (1 depls)",
+ "zenuity.com (1 depls)",
+ "loodse.com (1 depls)",
+ "loto-quebec.com (1 depls)",
+ "lowes.com (1 depls)",
+ "lso.ca (1 depls)",
+ "zap.co.ao (1 depls)",
+ "za.ibm.com (1 depls)",
+ "mahkamahagung.go.id (1 depls)",
+ "ymail.com (1 depls)",
+ "mail.schwarz (1 depls)",
+ "yahoo.co.in (1 depls)",
+ "mandatumlife.fi (1 depls)",
+ "mantech.com (1 depls)",
+ "marcusschiesser.de (1 depls)",
+ "xmann-online.de (1 depls)",
+ "marlow.com.cy (1 depls)",
+ "materna.de (1 depls)",
+ "matrix.co.il (1 depls)",
+ "mayadata.io (1 depls)",
+ "mcmaster.ca (1 depls)",
+ "mdhs.ms.gov (1 depls)",
+ "nbs.sk (1 depls)",
+ "multiplan.com (1 depls)",
+ "solarflare.com (1 depls)",
+ "verizonmedia.com (1 depls)",
+ "neuvector.com (1 depls)",
+ "umb.ch (1 depls)",
+ "unicredit.eu (1 depls)",
+ "vdl.lu (1 depls)",
+ "ngerntidlor.com (1 depls)",
+ "nice.com (1 depls)",
+ "ntt-tx.co.jp (1 depls)",
+ "nl.ibm.com (1 depls)",
+ "norsk-tipping.no (1 depls)",
+ "unipoint.co.kr (1 depls)",
+ "varmeego.com (1 depls)",
+ "ndb.bg (1 depls)",
+ "utc.com (1 depls)",
+ "usaa.com (1 depls)",
+ "us.logicalis.com (1 depls)",
+ "ntst.com (1 depls)",
+ "ntsretail.com (1 depls)",
+ "netzlink.com (1 depls)",
+ "urr.se (1 depls)",
+ "uk.fujitsu.com (1 depls)",
+ "viada.de (1 depls)",
+ "uk.mizuho-sc.com (1 depls)",
+ "nets.eu (1 depls)",
+ "nutanix.com (1 depls)",
+ "netcloud.ch (1 depls)",
+ "netone.co.jp (1 depls)",
+ "nxp.com (1 depls)",
+ "nyu.edu (1 depls)",
+ "nectechnologies.in (1 depls)",
+ "zf.com (0 depls)",
+ "upc.ch (0 depls)",
+ "architecht.com (0 depls)",
+ "21vianet.com (0 depls)",
+ "wwt.com (0 depls)",
+ "adeo.com (0 depls)",
+ "aditinet.it (0 depls)",
+ "atpco.net (0 depls)",
+ "sopragroup.com (0 depls)",
+ "wuliangye.com.cn (0 depls)",
+ "autopass.com.br (0 depls)",
+ "trace3.com (0 depls)",
+ "turkcell.com.tr (0 depls)",
+ "tudelft.nl (0 depls)",
+ "uk.pgds.com (0 depls)",
+ "tubitak.gov.tr (0 depls)",
+ "audemarspiguet.com (0 depls)",
+ "assentis.com (0 depls)",
+ "ciasc.sc.gov.br (0 depls)",
+ "yipintsoi.com (0 depls)",
+ "stofa.dk (0 depls)",
+ "turksat.com.tr (0 depls)",
+ "cedrusco.com (0 depls)",
+ "ccic-net.com.cn (0 depls)",
+ "aceinfosolutions.com (0 depls)",
+ "yahoo-corp.jp (0 depls)",
+ "ccc.jp.nec.com (0 depls)",
+ "cic.gc.ca (0 depls)",
+ "trilio.io (0 depls)",
+ "bionicpulse.mobi (0 depls)",
+ "stoiximan.gr (0 depls)",
+ "blum.com (0 depls)",
+ "timberchronicles.com (0 depls)",
+ "websam.jp.nec.com (0 depls)",
+ "teb.com.tr (0 depls)",
+ "appdynamics.com (0 depls)",
+ "atradius.com (0 depls)",
+ "telenetgroup.be (0 depls)",
+ "vsp.com (0 depls)",
+ "teliacompany.com (0 depls)",
+ "verso.hr (0 depls)",
+ "sulamerica.com.br (0 depls)",
+ "volkswagen.de (0 depls)",
+ "bluestem.com (0 depls)",
+ "beast-code.com (0 depls)",
+ "apendo.se (0 depls)",
+ "bendigobank.com.au (0 depls)",
+ "visma.com (0 depls)",
+ "teuto.net (0 depls)",
+ "bestbuy.com (0 depls)",
+ "baw.de (0 depls)",
+ "tine.no (0 depls)",
+ "taos.com (0 depls)",
+ "brighthousefinancial.com (0 depls)",
+ "sva.de (0 depls)",
+ "toyota.com.br (0 depls)",
+ "ayoy.se (0 depls)",
+ "caffeine.tv (0 depls)",
+ "adnovum.ch (0 depls)",
+ "worldline.com (0 depls)",
+ "tkhinnovations.com (0 depls)",
+ "afbnet.it (0 depls)",
+ "byu.edu (0 depls)",
+ "tk.de (0 depls)",
+ "tiri.li (0 depls)",
+ "bv.com.br (0 depls)",
+ "sysdig.com (0 depls)",
+ "ahgora.com.br (0 depls)",
+ "tamedia.ch (0 depls)",
+ "airbus.com (0 depls)",
+ "ais.co.th (0 depls)",
+ "ute.com.uy (0 depls)",
+ "lgim.com (0 depls)",
+ "solace.com (0 depls)",
+ "here.com (0 depls)",
+ "grupomatrix.co (0 depls)",
+ "gruppohera.it (0 depls)",
+ "gtb.gov.tr (0 depls)",
+ "hazelcast.com (0 depls)",
+ "novascotia.ca (0 depls)",
+ "novadoc.nl (0 depls)",
+ "helsinki.fi (0 depls)",
+ "hetg.ie (0 depls)",
+ "firstrepublic.com (0 depls)",
+ "hk1.ibm.com (0 depls)",
+ "holcim.com (0 depls)",
+ "netscout.com (0 depls)",
+ "hopitalvs.ch (0 depls)",
+ "hotpotatoes.nl (0 depls)",
+ "neoflex.ru (0 depls)",
+ "ibermatica.com (0 depls)",
+ "groupeonepoint.com (0 depls)",
+ "gravis.bg (0 depls)",
+ "grainger.com (0 depls)",
+ "nttdocomo.com (0 depls)",
+ "orpea.net (0 depls)",
+ "fokus.fraunhofer.de (0 depls)",
+ "forgerock.com (0 depls)",
+ "fr.scc.com (0 depls)",
+ "optus.com.au (0 depls)",
+ "futuregen.co.kr (0 depls)",
+ "optimoz.com (0 depls)",
+ "gasnatural.com (0 depls)",
+ "opsmx.io (0 depls)",
+ "ontario.ca (0 depls)",
+ "genusllc.com (0 depls)",
+ "gic.com.sg (0 depls)",
+ "nvidia.com (0 depls)",
+ "goias.gov.br (0 depls)",
+ "nuhs.edu.sg (0 depls)",
+ "ibermutua.es (0 depls)",
+ "navarra.es (0 depls)",
+ "ibs.bg (0 depls)",
+ "jri-america.com (0 depls)",
+ "kb.dk (0 depls)",
+ "kb.vlaanderen.be (0 depls)",
+ "mariadb.com (0 depls)",
+ "keylane.com (0 depls)",
+ "kiratech.it (0 depls)",
+ "knowis.de (0 depls)",
+ "mail.mil (0 depls)",
+ "maif.fr (0 depls)",
+ "komplex-it.dk (0 depls)",
+ "macif.fr (0 depls)",
+ "loc.gov (0 depls)",
+ "lafargeholcim.com (0 depls)",
+ "list.soliton.co.jp (0 depls)",
+ "laposte.fr (0 depls)",
+ "linquest.com (0 depls)",
+ "marriott.com (0 depls)",
+ "jit.team (0 depls)",
+ "idh.ch (0 depls)",
+ "meteoswiss.ch (0 depls)",
+ "ih.jp.nec.cm (0 depls)",
+ "mycom-osi.com (0 depls)",
+ "illumio.com (0 depls)",
+ "inditex.com (0 depls)",
+ "infinkon.de (0 depls)",
+ "infinkon.eu (0 depls)",
+ "integraltech.com.au (0 depls)",
+ "integration.works (0 depls)",
+ "minsegpres.gob.cl (0 depls)",
+ "intela.ai (0 depls)",
+ "intertech.com.tr (0 depls)",
+ "michelin.com (0 depls)",
+ "mhi.co.jp (0 depls)",
+ "itau.com.ar (0 depls)",
+ "metrodemedellin.gov.co (0 depls)",
+ "fiserv.com (0 depls)",
+ "fcc.es (0 depls)",
+ "cloud9ers.com (0 depls)",
+ "daum.net (0 depls)",
+ "ctc-g.co.jp (0 depls)",
+ "sberbank.ru (0 depls)",
+ "cybercom.com (0 depls)",
+ "saagie.com (0 depls)",
+ "s-und-n.de (0 depls)",
+ "rpa.gov.uk (0 depls)",
+ "datastar.com.ar (0 depls)",
+ "regions.com (0 depls)",
+ "p0f.net (0 depls)",
+ "redbridge.se (0 depls)",
+ "delijn.be (0 depls)",
+ "dellead.com (0 depls)",
+ "deloitte.com.au (0 depls)",
+ "raiffeisengroup.ba (0 depls)",
+ "quadras.co.id (0 depls)",
+ "qct.io (0 depls)",
+ "csx.com (0 depls)",
+ "sc.nesic.com (0 depls)",
+ "scanplus.de (0 depls)",
+ "scigames.at (0 depls)",
+ "cloudbees.com (0 depls)",
+ "softwareag.com (0 depls)",
+ "socgen.com (0 depls)",
+ "cnvrg.io (0 depls)",
+ "skatteetaten.no (0 depls)",
+ "combis.hr (0 depls)",
+ "commscope.com (0 depls)",
+ "siriuscom.com (0 depls)",
+ "singtel.com (0 depls)",
+ "comtrade.com (0 depls)",
+ "conova.com (0 depls)",
+ "sina.cn (0 depls)",
+ "contracted.pmi.com (0 depls)",
+ "corp.sysco.com (0 depls)",
+ "si.ibm.com (0 depls)",
+ "deutschepost.de (0 depls)",
+ "puma.com (0 depls)",
+ "publix.com (0 depls)",
+ "embl.de (0 depls)",
+ "employers.com (0 depls)",
+ "endpointclosing.com (0 depls)",
+ "enterprisedb.com (0 depls)",
+ "epam.com (0 depls)",
+ "epiontis.com (0 depls)",
+ "erieinsurance.com (0 depls)",
+ "escenic.com (0 depls)",
+ "etes.de (0 depls)",
+ "pivotal.io (0 depls)",
+ "eurecom.fr (0 depls)",
+ "pheaa.org (0 depls)",
+ "pe.ibm.com (0 depls)",
+ "ext.soprasteria.com (0 depls)",
+ "paysafe.com (0 depls)",
+ "paradigmadigital.com (0 depls)",
+ "pm.nttdata.co.jp (0 depls)",
+ "elostech.cz (0 depls)",
+ "dictu.nl (0 depls)",
+ "proficom.de (0 depls)",
+ "dimensiondata.com (0 depls)",
+ "dir.co.jp (0 depls)",
+ "disney.com (0 depls)",
+ "dnrd.ae (0 depls)",
+ "doc88.com.br (0 depls)",
+ "dorasnaturals.com (0 depls)",
+ "prudential.co.id (0 depls)",
+ "dxc.com (0 depls)",
+ "eagleinvsys.com (0 depls)",
+ "ec.ibm.com (0 depls)",
+ "prophetstor.com (0 depls)",
+ "progressive.com (0 depls)",
+ "programmer.net (0 depls)",
+ "profuturo.com.mx (0 depls)",
+ "elastic.co (0 depls)",
+ "rbi.co.uk (0 depls)"
+ ],
+ "description": "Email Domain",
+ "index": 0,
+ "layout": "IPY_MODEL_3ddde9715bf44cc882dc4f1d70d5466b",
+ "style": "IPY_MODEL_8ad07def4412411da98eaaefa2cb30ad"
+ }
+ },
+ "44f50b5e96674b5996f6f74e51865d39": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "48a81232d5c94e38a56f7fa84fb67e4a": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "4932a91d45504079ba0dc55d574f53dd": {
+ "model_module": "@jupyter-widgets/output",
+ "model_module_version": "1.0.0",
+ "model_name": "OutputModel",
+ "state": {
+ "layout": "IPY_MODEL_36ceee127cd245438a8909ef20c0633b",
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": "4068704a-0ebf-4e6d-98d3-8291ce036c0b\n924876f3-0bad-4686-8019-b01510dd1963\n95aee6a9-a75e-4924-aa10-a94cf275f73b\na9c60f9f-209c-482e-b671-a1e4a163d6d6\nb7bca4a6-8f0a-4bdb-92dc-3ffe5f7defa5\nbb8d5882-7abf-4f9a-aaec-9b115d994bef\ndcd86ab8-7b91-47e7-bc54-bf448a65b7e2\ne82d026e-b418-4e7f-8e58-615f368b9492\ne93cdc61-36c5-43e9-a0ef-8ef59633c90a\n"
+ }
+ ]
+ }
+ },
+ "4a3eb8e856844f78beb43c0f6b1539b9": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "4b38b24d64ea42baa7e956c6425aed48": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DropdownModel",
+ "state": {
+ "_options_labels": [
+ "ALL (5481)",
+ "us.ibm.com (2527 depls)",
+ "ibm.com (120 depls)",
+ "gmail.com (113 depls)",
+ "redhat.com (68 depls)",
+ "cn.ibm.com (50 depls)",
+ "hpe.com (48 depls)",
+ "uk.ibm.com (42 depls)",
+ "in.ibm.com (39 depls)",
+ "fr.ibm.com (30 depls)",
+ "ie.ibm.com (30 depls)",
+ "de.ibm.com (23 depls)",
+ "jp.ibm.com (20 depls)",
+ "hcl.com (17 depls)",
+ "ca.ibm.com (16 depls)",
+ "secureworks.com (16 depls)",
+ "accenture.com (15 depls)",
+ "capgroup.com (13 depls)",
+ "intel.com (13 depls)",
+ "dell.com (13 depls)",
+ "prophetstor.com (13 depls)",
+ "nokia.com (12 depls)",
+ "cloudera.com (12 depls)",
+ "twistlock.com (12 depls)",
+ "cisco.com (11 depls)",
+ "hotmail.com (11 depls)",
+ "br.ibm.com (11 depls)",
+ "o2its.cz (11 depls)",
+ "bell.ca (10 depls)",
+ "qq.com (10 depls)",
+ "atos.net (10 depls)",
+ "brreg.no (9 depls)",
+ "tractorsupply.com (9 depls)",
+ "delta.com (9 depls)",
+ "landregistry.gov.uk (9 depls)",
+ "anthem.com (9 depls)",
+ "pl.ibm.com (9 depls)",
+ "il.ibm.com (9 depls)",
+ "dl.jp.fujitsu.com (9 depls)",
+ "worldpay.com (8 depls)",
+ "santander.com.ar (8 depls)",
+ "sas.com (8 depls)",
+ "cern.ch (8 depls)",
+ "ford.com (8 depls)",
+ "sparebank1.no (8 depls)",
+ "ukcloud.com (8 depls)",
+ "t-systems.com (8 depls)",
+ "ticket.noris.net (8 depls)",
+ "f5.com (8 depls)",
+ "discover.com (8 depls)",
+ "tr.ibm.com (7 depls)",
+ "crossvale.com (7 depls)",
+ "mon-tier.com (7 depls)",
+ "rbc.com (7 depls)",
+ "jndata.dk (7 depls)",
+ "microsoft.com (7 depls)",
+ "netone.co.jp (7 depls)",
+ "regions.com (7 depls)",
+ "telefonica.com (7 depls)",
+ "citizensbank.com (7 depls)",
+ "soprasteria.com (6 depls)",
+ "nec.com (6 depls)",
+ "elkarlan.onmicrosoft.com (6 depls)",
+ "linux.vnet.ibm.com (6 depls)",
+ "tigera.io (6 depls)",
+ "trustmarkbenefits.com (6 depls)",
+ "cscinfo.com (6 depls)",
+ "deutsche-boerse.com (6 depls)",
+ "capgemini.com (6 depls)",
+ "cz.ibm.com (6 depls)",
+ "es.ibm.com (6 depls)",
+ "hitachi.com (6 depls)",
+ "keylane.com (6 depls)",
+ "axa.com (6 depls)",
+ "orange.com (6 depls)",
+ "etisalat.ae (5 depls)",
+ "qct.io (5 depls)",
+ "microfocus.com (5 depls)",
+ "tk.de (5 depls)",
+ "debeka.de (5 depls)",
+ "consol.de (5 depls)",
+ "dynatrace.com (5 depls)",
+ "dxc.com (5 depls)",
+ "nl.ibm.com (5 depls)",
+ "nectechnologies.in (5 depls)",
+ "ctc-g.co.jp (5 depls)",
+ "arbetsformedlingen.se (5 depls)",
+ "ascendcorp.com (5 depls)",
+ "rct.co.il (5 depls)",
+ "ais.co.th (5 depls)",
+ "cigna.com (5 depls)",
+ "f-i.de (5 depls)",
+ "plus.pl (5 depls)",
+ "k8s.jp.nec.com (5 depls)",
+ "wipro.com (5 depls)",
+ "it.ibm.com (5 depls)",
+ "vmware.com (5 depls)",
+ "sbb.ch (5 depls)",
+ "alaskaair.com (5 depls)",
+ "lmco.com (5 depls)",
+ "lenovo.com (5 depls)",
+ "au1.ibm.com (5 depls)",
+ "tipsport.cz (4 depls)",
+ "volkswagen.de (4 depls)",
+ "ao.uscourts.gov (4 depls)",
+ "laposte.fr (4 depls)",
+ "bom.gov.au (4 depls)",
+ "elcorteingles.es (4 depls)",
+ "sg.ibm.com (4 depls)",
+ "ericsson.com (4 depls)",
+ "anz.com (4 depls)",
+ "blood.ca (4 depls)",
+ "meteorcomm.com (4 depls)",
+ "za.ibm.com (4 depls)",
+ "amdocs.com (4 depls)",
+ "enterprisedb.com (4 depls)",
+ "wuerth-it.com (4 depls)",
+ "bitmarck.de (4 depls)",
+ "kocsistem.com.tr (4 depls)",
+ "thy.com (4 depls)",
+ "achmea.nl (4 depls)",
+ "bankmandiri.co.id (4 depls)",
+ "asseco.pl (4 depls)",
+ "kolon.com (4 depls)",
+ "nationwide.co.uk (4 depls)",
+ "vodafone.com (4 depls)",
+ "solarflare.com (4 depls)",
+ "ltkalmar.se (4 depls)",
+ "mskcc.org (4 depls)",
+ "lsd.co.za (4 depls)",
+ "att.com (4 depls)",
+ "corp.vodafone.es (4 depls)",
+ "techdata.com (4 depls)",
+ "msccruises.com (4 depls)",
+ "crif.com (4 depls)",
+ "sap.com (4 depls)",
+ "cirb.brussels (4 depls)",
+ "omnitracs.com (4 depls)",
+ "nike.com (4 depls)",
+ "hydro.qc.ca (4 depls)",
+ "skatteetaten.no (4 depls)",
+ "opennaru.com (4 depls)",
+ "cslbehring.com (4 depls)",
+ "cucbc.com (4 depls)",
+ "experian.com (4 depls)",
+ "saq.qc.ca (4 depls)",
+ "transport.nsw.gov.au (4 depls)",
+ "standardbank.co.za (4 depls)",
+ "honeywell.com (4 depls)",
+ "garantibbva.com.tr (4 depls)",
+ "adcubum.com (4 depls)",
+ "canada.ca (4 depls)",
+ "teco.com.ar (4 depls)",
+ "videotron.com (4 depls)",
+ "cyberark.com (4 depls)",
+ "mitre.org (3 depls)",
+ "aricent.com (3 depls)",
+ "minsait.com (3 depls)",
+ "mtb.com (3 depls)",
+ "mii.co.id (3 depls)",
+ "accenturefederal.com (3 depls)",
+ "pentalink.co.kr (3 depls)",
+ "gm.com (3 depls)",
+ "sk.com (3 depls)",
+ "sdx.com (3 depls)",
+ "seb.se (3 depls)",
+ "linuxpolska.pl (3 depls)",
+ "list.orange.com (3 depls)",
+ "kb.vlaanderen.be (3 depls)",
+ "kasten.io (3 depls)",
+ "adlere.fr (3 depls)",
+ "jp.fujitsu.com (3 depls)",
+ "jet.su (3 depls)",
+ "siemens.com (3 depls)",
+ "jazz.com.pk (3 depls)",
+ "itau.com.ar (3 depls)",
+ "it.mos.ru (3 depls)",
+ "ipi.ch (3 depls)",
+ "michigan.gov (3 depls)",
+ "apis-it.hr (3 depls)",
+ "inaservice.com.cn (3 depls)",
+ "iecisa.com (3 depls)",
+ "mwam.com (3 depls)",
+ "southernco.com (3 depls)",
+ "mail.ru (3 depls)",
+ "hu.ibm.com (3 depls)",
+ "hotpotatoes.nl (3 depls)",
+ "ru.ibm.com (3 depls)",
+ "helsinki.fi (3 depls)",
+ "mcb.mu (3 depls)",
+ "stjude.org (3 depls)",
+ "americansystems.com (3 depls)",
+ "macif.fr (3 depls)",
+ "netapp.com (3 depls)",
+ "regionorebrolan.se (3 depls)",
+ "optus.com.au (3 depls)",
+ "btpnsyariah.com (3 depls)",
+ "portoseguro.com.br (3 depls)",
+ "virginia.edu (3 depls)",
+ "portworx.com (3 depls)",
+ "cargo-partner.com (3 depls)",
+ "onespan.com (3 depls)",
+ "va.gov (3 depls)",
+ "cl.ibm.com (3 depls)",
+ "ocbcnisp.com (3 depls)",
+ "produban.com (3 depls)",
+ "nttdata.com (3 depls)",
+ "feratel.at (3 depls)",
+ "nri.co.jp (3 depls)",
+ "unicredit.eu (3 depls)",
+ "norsk-tipping.no (3 depls)",
+ "uk.mizuho-sc.com (3 depls)",
+ "criticaltechworks.com (3 depls)",
+ "btpn.com (3 depls)",
+ "brb.com.br (3 depls)",
+ "ua.ibm.com (3 depls)",
+ "bouyguestelecom.fr (3 depls)",
+ "pbz.hr (3 depls)",
+ "bandwidth.com (3 depls)",
+ "payback.net (3 depls)",
+ "zenuity.com (3 depls)",
+ "paloaltonetworks.com (3 depls)",
+ "outtherelabs.com (3 depls)",
+ "bcb.gov.br (3 depls)",
+ "pheaa.org (3 depls)",
+ "126.com (3 depls)",
+ "airbus.com (3 depls)",
+ "wwt.com (3 depls)",
+ "wwpdl.vnet.ibm.com (3 depls)",
+ "ornl.gov (3 depls)",
+ "origo.is (3 depls)",
+ "wellmark.com (3 depls)",
+ "163.com (3 depls)",
+ "bnz.co.nz (3 depls)",
+ "cronos.be (3 depls)",
+ "commvault.com (3 depls)",
+ "aetna.com (3 depls)",
+ "es.logicalis.com (3 depls)",
+ "dnrd.ae (3 depls)",
+ "tibco.com (3 depls)",
+ "schiphol.nl (3 depls)",
+ "dti.ulaval.ca (3 depls)",
+ "rbs-services.com (3 depls)",
+ "emirates.com (3 depls)",
+ "rechtspraak.nl (3 depls)",
+ "asia.ccb.com (3 depls)",
+ "deloitte.de (3 depls)",
+ "teb.com.tr (3 depls)",
+ "team.telstra.com (3 depls)",
+ "tds.fujitsu.com (3 depls)",
+ "tbc.sa (3 depls)",
+ "redbridge.se (3 depls)",
+ "redislabs.com (3 depls)",
+ "faa.gov (3 depls)",
+ "tine.no (3 depls)",
+ "netorek.fi (3 depls)",
+ "anfccorp.com (3 depls)",
+ "transfond.ro (3 depls)",
+ "de.bosch.com (3 depls)",
+ "csx.com (3 depls)",
+ "customs.bg (3 depls)",
+ "niandc.co.jp (3 depls)",
+ "trilio.io (3 depls)",
+ "travelers.com (3 depls)",
+ "amadeus.com (2 depls)",
+ "mainz.ibm.com (2 depls)",
+ "nrb.be (2 depls)",
+ "npo.nl (2 depls)",
+ "outlook.com (2 depls)",
+ "mont.com (2 depls)",
+ "liquidit.nz (2 depls)",
+ "ngerntidlor.com (2 depls)",
+ "nbch.com.ar (2 depls)",
+ "nist.gov (2 depls)",
+ "li9.com (2 depls)",
+ "pbtech.net.br (2 depls)",
+ "navitus.com (2 depls)",
+ "lists.psi.ch (2 depls)",
+ "materna.de (2 depls)",
+ "llnl.gov (2 depls)",
+ "alliander.com (2 depls)",
+ "nyu.edu (2 depls)",
+ "anadoluefes.com (2 depls)",
+ "oncor.com (2 depls)",
+ "aliyun.com (2 depls)",
+ "ontario.ca (2 depls)",
+ "openline.nl (2 depls)",
+ "neuvector.com (2 depls)",
+ "netzlink.com (2 depls)",
+ "meteoswiss.ch (2 depls)",
+ "live.com (2 depls)",
+ "maif.fr (2 depls)",
+ "opsta.co.th (2 depls)",
+ "andesdigital.com (2 depls)",
+ "lordabbett.com (2 depls)",
+ "orange.fr (2 depls)",
+ "loto-quebec.com (2 depls)",
+ "nvidia.com (2 depls)",
+ "original.com.br (2 depls)",
+ "alcatel-lucent.com (2 depls)",
+ "kemkes.go.id (2 depls)",
+ "lansforsakringar.se (2 depls)",
+ "cloudbees.com (2 depls)",
+ "cn.fujitsu.com (2 depls)",
+ "cognizant.com (2 depls)",
+ "comarch.pl (2 depls)",
+ "combis.hr (2 depls)",
+ "atradius.com (2 depls)",
+ "comp.com.pl (2 depls)",
+ "confluent.io (2 depls)",
+ "atpco.net (2 depls)",
+ "consorsbank.de (2 depls)",
+ "copergmps.it (2 depls)",
+ "covis.de (2 depls)",
+ "cra-arc.gc.ca (2 depls)",
+ "crediteurope.nl (2 depls)",
+ "crown.com (2 depls)",
+ "csaa.com (2 depls)",
+ "daa.ie (2 depls)",
+ "dbs.com (2 depls)",
+ "delijn.be (2 depls)",
+ "deloitte.com (2 depls)",
+ "dentisoft.com (2 depls)",
+ "det.nsw.edu.au (2 depls)",
+ "deutschepost.de (2 depls)",
+ "devoteam.com (2 depls)",
+ "diamanti.com (2 depls)",
+ "dontouch.ch (2 depls)",
+ "cloudwerkstatt.com (2 depls)",
+ "claro.com.ar (2 depls)",
+ "dxcas.com (2 depls)",
+ "chicos.com (2 depls)",
+ "bancamarch.es (2 depls)",
+ "bancocredicoop.coop (2 depls)",
+ "banval.sba.com.ar (2 depls)",
+ "barceloviajes.com (2 depls)",
+ "b1-systems.de (2 depls)",
+ "bcx.co.za (2 depls)",
+ "be.ibm.com (2 depls)",
+ "bechtle.com (2 depls)",
+ "axians.de (2 depls)",
+ "bldr.com (2 depls)",
+ "bls.ch (2 depls)",
+ "blum.com (2 depls)",
+ "boeing.com (2 depls)",
+ "bps-suisse.ch (2 depls)",
+ "brighthousefinancial.com (2 depls)",
+ "broadcom.com (2 depls)",
+ "bt.com (2 depls)",
+ "buenosaires.gob.ar (2 depls)",
+ "bv.com.br (2 depls)",
+ "c3.ai (2 depls)",
+ "avisbudget.com (2 depls)",
+ "casa-systems.com (2 depls)",
+ "catalysts.cc (2 depls)",
+ "cegeka.be (2 depls)",
+ "aurotechcorp.com (2 depls)",
+ "doosan.com (2 depls)",
+ "eaton.com (2 depls)",
+ "krash.be (2 depls)",
+ "aquasec.com (2 depls)",
+ "helvetia.ch (2 depls)",
+ "hk1.ibm.com (2 depls)",
+ "hma.honda.com (2 depls)",
+ "hopitalvs.ch (2 depls)",
+ "i-t-m.com (2 depls)",
+ "ibermutua.es (2 depls)",
+ "icbc.com.ar (2 depls)",
+ "ikea.com (2 depls)",
+ "illumio.com (2 depls)",
+ "infinkon.de (2 depls)",
+ "infosys.com (2 depls)",
+ "ing.com (2 depls)",
+ "inspur.com (2 depls)",
+ "intertech.com.tr (2 depls)",
+ "intervalintl.com (2 depls)",
+ "intesasanpaolo.com (2 depls)",
+ "aoins.com (2 depls)",
+ "its4u.lu (2 depls)",
+ "jri-america.com (2 depls)",
+ "kapsch.net (2 depls)",
+ "kela.fi (2 depls)",
+ "kohls.com (2 depls)",
+ "konsalt.com.tr (2 depls)",
+ "korian.fr (2 depls)",
+ "kr.ibm.com (2 depls)",
+ "healthpartners.com (2 depls)",
+ "h-da.de (2 depls)",
+ "egcp.com (2 depls)",
+ "gu.se (2 depls)",
+ "elostech.cz (2 depls)",
+ "employers.com (2 depls)",
+ "endpointclosing.com (2 depls)",
+ "ergo-life.cn (2 depls)",
+ "exidelife.in (2 depls)",
+ "express-scripts.com (2 depls)",
+ "extraordy.com (2 depls)",
+ "extremedata.com.tw (2 depls)",
+ "ashghal.gov.qa (2 depls)",
+ "fintechgroup.com (2 depls)",
+ "firstrepublic.com (2 depls)",
+ "fitit.be (2 depls)",
+ "fnb.co.za (2 depls)",
+ "ars.de (2 depls)",
+ "fostermoore.com (2 depls)",
+ "gazprom-neft.ru (2 depls)",
+ "arctiq.ca (2 depls)",
+ "gen-e.com (2 depls)",
+ "genusllc.com (2 depls)",
+ "arburg.com (2 depls)",
+ "pe.ibm.com (2 depls)",
+ "global.ntt (2 depls)",
+ "globalrelay.net (2 depls)",
+ "grainger.com (2 depls)",
+ "grupo-pinero.com (2 depls)",
+ "gire.com (2 depls)",
+ "anadolusigorta.com.tr (2 depls)",
+ "schneider.com (2 depls)",
+ "utk.edu (2 depls)",
+ "slb.com (2 depls)",
+ "aditinet.it (2 depls)",
+ "rohde-schwarz.com (2 depls)",
+ "us.imshealth.com (2 depls)",
+ "ro.ibm.com (2 depls)",
+ "tetrate.io (2 depls)",
+ "tep.com (2 depls)",
+ "usda.gov (2 depls)",
+ "rise-world.com (2 depls)",
+ "softec.sk (2 depls)",
+ "telus.com (2 depls)",
+ "adfinis-sygroup.ch (2 depls)",
+ "3-s.at (2 depls)",
+ "valensas.com (2 depls)",
+ "thehartford.com (2 depls)",
+ "teliacompany.com (2 depls)",
+ "telenetgroup.be (2 depls)",
+ "telekom.de (2 depls)",
+ "sos.eu (2 depls)",
+ "verizonmedia.com (2 depls)",
+ "spark.co.nz (2 depls)",
+ "spectrumhealth.org (2 depls)",
+ "vineti.com (2 depls)",
+ "visana.ch (2 depls)",
+ "purestorage.com (2 depls)",
+ "systex.com.hk (2 depls)",
+ "syspower.com.tw (2 depls)",
+ "sysage.com.tw (2 depls)",
+ "ups.com (2 depls)",
+ "rs.ibm.com (2 depls)",
+ "progressive.com (2 depls)",
+ "sbm.com.sa (2 depls)",
+ "trace3.com (2 depls)",
+ "sekom.com.tr (2 depls)",
+ "turbonomic.com (2 depls)",
+ "turkcell.com.tr (2 depls)",
+ "tohmatsu.co.jp (2 depls)",
+ "schufa.de (2 depls)",
+ "scholastic.com (2 depls)",
+ "senduvu.com (2 depls)",
+ "tw.ibm.com (2 depls)",
+ "scanplus.de (2 depls)",
+ "aareon.com (2 depls)",
+ "tmrnd.com.my (2 depls)",
+ "tmbbank.com (2 depls)",
+ "sanofi-aventis.com (2 depls)",
+ "rt.ru (2 depls)",
+ "uk.fujitsu.com (2 depls)",
+ "si.ibm.com (2 depls)",
+ "abanca.com (2 depls)",
+ "samsung.com (2 depls)",
+ "ulx.hu (2 depls)",
+ "advance-auto.com (2 depls)",
+ "umb.ch (2 depls)",
+ "safaricom.co.ke (2 depls)",
+ "sabancidx.com (2 depls)",
+ "tinubu.com (2 depls)",
+ "s-itsolutions.at (2 depls)",
+ "tiaa-cref.org (2 depls)",
+ "rtlabs.ru (2 depls)",
+ "vsp.com (2 depls)",
+ "reisebank.de (2 depls)",
+ "aexp.com (2 depls)",
+ "stoiximan.gr (2 depls)",
+ "startx.fr (2 depls)",
+ "stat.gouv.qc.ca (2 depls)",
+ "syntegrity.com.au (2 depls)",
+ "syncsort.com (2 depls)",
+ "swissmedical.com.ar (2 depls)",
+ "acp.at (2 depls)",
+ "pixar.com (2 depls)",
+ "piros.be (2 depls)",
+ "14west.us (2 depls)",
+ "starhub.com (2 depls)",
+ "yahoo.com (2 depls)",
+ "swedbank.se (2 depls)",
+ "pfandbriefbank.com (2 depls)",
+ "swdeca.com (2 depls)",
+ "pf.gov.br (2 depls)",
+ "yipintsoi.com (2 depls)",
+ "yoox.com (2 depls)",
+ "sv-informatik.de (2 depls)",
+ "webcomm.com.tw (2 depls)",
+ "ww-informatik.de (2 depls)",
+ "syr.edu (2 depls)",
+ "example.com (1 depls)",
+ "extrasys.it (1 depls)",
+ "gasnatural.com (1 depls)",
+ "taos.com (1 depls)",
+ "dhl.com (1 depls)",
+ "swifttrans.com (1 depls)",
+ "dhconsulting.ch (1 depls)",
+ "dha.gov.ae (1 depls)",
+ "dewa.gov.ae (1 depls)",
+ "tjce.jus.br (1 depls)",
+ "gblsys.com (1 depls)",
+ "t.ht.hr (1 depls)",
+ "gbmme.com (1 depls)",
+ "gd-ms.com (1 depls)",
+ "tjsys.co.jp (1 depls)",
+ "swisscom.com (1 depls)",
+ "dict.gov.ph (1 depls)",
+ "deutsche-factoring.de (1 depls)",
+ "ext.soprasteria.com (1 depls)",
+ "dipres.gob.cl (1 depls)",
+ "tiri.li (1 depls)",
+ "asset-metrix.com (1 depls)",
+ "gantek.com (1 depls)",
+ "dlt.com (1 depls)",
+ "tier2consulting.com (1 depls)",
+ "ext.ec.europa.eu (1 depls)",
+ "docupace.com (1 depls)",
+ "dollargeneral.com (1 depls)",
+ "thinksis.com (1 depls)",
+ "dpf.jp.nec.com (1 depls)",
+ "gaminginnovationgroup.com (1 depls)",
+ "gabrielli.info (1 depls)",
+ "deutschebahn.com (1 depls)",
+ "tkhinnovations.com (1 depls)",
+ "ewerk.com (1 depls)",
+ "tre.se (1 depls)",
+ "archmi.com (1 depls)",
+ "defacto.com.tr (1 depls)",
+ "decsoft.com.pl (1 depls)",
+ "tpg.ch (1 depls)",
+ "aceinfosolutions.com (1 depls)",
+ "supcom.tn (1 depls)",
+ "ddti.net (1 depls)",
+ "exxonmobil.com (1 depls)",
+ "triliodata.com (1 depls)",
+ "datto.com (1 depls)",
+ "daticloud.com (1 depls)",
+ "datatrend.com (1 depls)",
+ "datastar.com.ar (1 depls)",
+ "at.seg-social.es (1 depls)",
+ "geodis.com (1 depls)",
+ "a1.bg (1 depls)",
+ "sys.aok.de (1 depls)",
+ "fcagroup.com (1 depls)",
+ "fabasoft.com (1 depls)",
+ "dellead.com (1 depls)",
+ "dellteam.com (1 depls)",
+ "arcor.de (1 depls)",
+ "deloitte.co.nz (1 depls)",
+ "sysdig.com (1 depls)",
+ "tnb.com.my (1 depls)",
+ "generali.com (1 depls)",
+ "deloitte.com.au (1 depls)",
+ "asw.com.hk (1 depls)",
+ "sva.de (1 depls)",
+ "fi.ibm.com (1 depls)",
+ "asfinag.at (1 depls)",
+ "dspace.de (1 depls)",
+ "dsv.com (1 depls)",
+ "g-able.com (1 depls)",
+ "firstdata.com (1 depls)",
+ "telecomitalia.it (1 depls)",
+ "erieinsurance.com (1 depls)",
+ "fisglobal.com (1 depls)",
+ "tcmb.gov.tr (1 depls)",
+ "ereinsure.com (1 depls)",
+ "epiontis.com (1 depls)",
+ "daocloud.io (1 depls)",
+ "thinkahead.com (1 depls)",
+ "enonic.com (1 depls)",
+ "exisoft.com.ar (1 depls)",
+ "fixedmea.com (1 depls)",
+ "enfogroup.com (1 depls)",
+ "enea.com (1 depls)",
+ "flhealth.gov (1 depls)",
+ "academia-online.org (1 depls)",
+ "escenic.com (1 depls)",
+ "esri.com (1 depls)",
+ "exatetechnology.com (1 depls)",
+ "estafet.com (1 depls)",
+ "asl.com.hk (1 depls)",
+ "etechsystem.co.kr (1 depls)",
+ "etele.com.ua (1 depls)",
+ "techmahindra.com (1 depls)",
+ "fiserv.com (1 depls)",
+ "eurecom.fr (1 depls)",
+ "eurobank.gr (1 depls)",
+ "eurobet.it (1 depls)",
+ "firstmarblehead.com (1 depls)",
+ "everbank.com (1 depls)",
+ "acceleris.ch (1 depls)",
+ "syone.com (1 depls)",
+ "teliacygate.fi (1 depls)",
+ "telkomsel.co.id (1 depls)",
+ "flowfactor.be (1 depls)",
+ "fronius.com (1 depls)",
+ "abaxo.co.uk (1 depls)",
+ "asseco-see.rs (1 depls)",
+ "dvbern.ch (1 depls)",
+ "arrow.com (1 depls)",
+ "futuregen.co.kr (1 depls)",
+ "thalesgroup.com (1 depls)",
+ "fujitsu.com (1 depls)",
+ "abinitio.com (1 depls)",
+ "fedins.com (1 depls)",
+ "eagleinvsys.com (1 depls)",
+ "asseco-see.com (1 depls)",
+ "teuto.net (1 depls)",
+ "ebox.ca (1 depls)",
+ "ec.europa.eu (1 depls)",
+ "ec.ibm.com (1 depls)",
+ "synopsys.com (1 depls)",
+ "free.fr (1 depls)",
+ "edgeverve.com (1 depls)",
+ "efinance.com.eg (1 depls)",
+ "fr.scc.com (1 depls)",
+ "tasgroup.it (1 depls)",
+ "eigentech.com (1 depls)",
+ "aspenmesh.io (1 depls)",
+ "teranet.ca (1 depls)",
+ "swisstph.ch (1 depls)",
+ "sympany.ch (1 depls)",
+ "tempest.sk (1 depls)",
+ "email.unc.edu (1 depls)",
+ "syncrasy.io (1 depls)",
+ "tav.aero (1 depls)",
+ "darkmatter.ae (1 depls)",
+ "pecunpay.es (1 depls)",
+ "danskecommodities.com (1 depls)",
+ "varmeego.com (1 depls)",
+ "vlinkinfo.com (1 depls)",
+ "bu.edu (1 depls)",
+ "btrl.ro (1 depls)",
+ "vn.ibm.com (1 depls)",
+ "vodafoneziggo.com (1 depls)",
+ "btp.com.br (1 depls)",
+ "avl.com (1 depls)",
+ "volvocars.com (1 depls)",
+ "vp.dk (1 depls)",
+ "vps.no (1 depls)",
+ "vrtx.com (1 depls)",
+ "vshn.ch (1 depls)",
+ "vtb.ru (1 depls)",
+ "bps.gub.uy (1 depls)",
+ "vub.sk (1 depls)",
+ "bpba.com.ar (1 depls)",
+ "bpa.bund.de (1 depls)",
+ "vw.com (1 depls)",
+ "wanadoo.fr (1 depls)",
+ "vkb.de (1 depls)",
+ "visma.com (1 depls)",
+ "c3iot.com (1 depls)",
+ "vfunction.com (1 depls)",
+ "2nwsl.jp.nec.com (1 depls)",
+ "cepsa.com (1 depls)",
+ "verifone.com (1 depls)",
+ "cedrusco.com (1 depls)",
+ "ccc.jp.nec.com (1 depls)",
+ "cbc-companies.com (1 depls)",
+ "verizon.com (1 depls)",
+ "catalogicsoftware.com (1 depls)",
+ "vhi.ie (1 depls)",
+ "cablelabs.com (1 depls)",
+ "viessmann.com (1 depls)",
+ "avaloq.com (1 depls)",
+ "campbell.com (1 depls)",
+ "camelland.com (1 depls)",
+ "cam-sys.net (1 depls)",
+ "caleres.com (1 depls)",
+ "caffeine.tv (1 depls)",
+ "cablevision.com.ar (1 depls)",
+ "axcelinno.io (1 depls)",
+ "bokf.com (1 depls)",
+ "weave.works (1 depls)",
+ "bcbsma.com (1 depls)",
+ "berlin-creative.de (1 depls)",
+ "benefit-one.co.jp (1 depls)",
+ "bendigobank.com.au (1 depls)",
+ "bellintegrator.com (1 depls)",
+ "wx.jp.nec.com (1 depls)",
+ "beans.com.my (1 depls)",
+ "yandex.com (1 depls)",
+ "bcbssc.com (1 depls)",
+ "bcbsfl.com (1 depls)",
+ "bestbuy.com (1 depls)",
+ "yandex.ru (1 depls)",
+ "bca.co.id (1 depls)",
+ "baw.de (1 depls)",
+ "zero2ai.io (1 depls)",
+ "zerto.com (1 depls)",
+ "zettaset.com (1 depls)",
+ "zh.nes.jp.nec.com (1 depls)",
+ "zivra.com (1 depls)",
+ "bertelsmann.de (1 depls)",
+ "bet365.com (1 depls)",
+ "bnsf.com (1 depls)",
+ "wellcare.com (1 depls)",
+ "axians.com (1 depls)",
+ "bmw.de (1 depls)",
+ "bmo.com (1 depls)",
+ "bmc.com (1 depls)",
+ "websam.jp.nec.com (1 depls)",
+ "bluestembrands.com (1 depls)",
+ "blueair.aero (1 depls)",
+ "bls.gov (1 depls)",
+ "westmonroepartners.com (1 depls)",
+ "bevalex.by (1 depls)",
+ "bliex.com (1 depls)",
+ "wimionline.be (1 depls)",
+ "worldline.com (1 depls)",
+ "bl.ch (1 depls)",
+ "bkfs.com (1 depls)",
+ "bitbull.ch (1 depls)",
+ "birevim.com.tr (1 depls)",
+ "bhp.com (1 depls)",
+ "cetelem.com.br (1 depls)",
+ "cfh.sk (1 depls)",
+ "danskebank.lt (1 depls)",
+ "cgi.com (1 depls)",
+ "uftwf.org (1 depls)",
+ "ugent.be (1 depls)",
+ "7p-group.com (1 depls)",
+ "atix.de (1 depls)",
+ "uipath.com (1 depls)",
+ "creditone.com (1 depls)",
+ "uk.pgds.com (1 depls)",
+ "cpcc.edu (1 depls)",
+ "ulb.ac.be (1 depls)",
+ "couchbase.com (1 depls)",
+ "ultra.com.br (1 depls)",
+ "corning.com (1 depls)",
+ "copel.com (1 depls)",
+ "contracted.pmi.com (1 depls)",
+ "unam.mx (1 depls)",
+ "unbelievable-machine.com (1 depls)",
+ "conservador.cl (1 depls)",
+ "conocophillips.com (1 depls)",
+ "unisystems.gr (1 depls)",
+ "u-s-p.ch (1 depls)",
+ "croz.net (1 depls)",
+ "crunchydata.com (1 depls)",
+ "tunisietelecom.tn (1 depls)",
+ "tsisyk.com (1 depls)",
+ "tubitak.gov.tr (1 depls)",
+ "cyccustomshop.com (1 depls)",
+ "ativainvestimentos.com.br (1 depls)",
+ "tudelft.nl (1 depls)",
+ "tugo.com (1 depls)",
+ "cusa.canon.com (1 depls)",
+ "cumulus-systems.com (1 depls)",
+ "cu.co.th (1 depls)",
+ "crv4all.com (1 depls)",
+ "ctc-g.com.sg (1 depls)",
+ "ctc-g.com.my (1 depls)",
+ "cspq.gouv.qc.ca (1 depls)",
+ "cspire.com (1 depls)",
+ "tutanota.com (1 depls)",
+ "csiltd.co.uk (1 depls)",
+ "gizasystems.com (1 depls)",
+ "tuwien.ac.at (1 depls)",
+ "comtegra.pl (1 depls)",
+ "computaris.com (1 depls)",
+ "computacenter.com (1 depls)",
+ "usfalcon.com (1 depls)",
+ "cloudnesil.com (1 depls)",
+ "cloudgensys.com (1 depls)",
+ "cloudfitsoftware.com (1 depls)",
+ "usaa.com (1 depls)",
+ "cloud9ers.com (1 depls)",
+ "cloud-bigdata.net (1 depls)",
+ "clearstream.com (1 depls)",
+ "clearlake.ibm.com (1 depls)",
+ "clarite.pl (1 depls)",
+ "cmbchina.com (1 depls)",
+ "uspto.gov (1 depls)",
+ "citictel-cpc.com (1 depls)",
+ "citec.com.au (1 depls)",
+ "vandergiesen.eu (1 depls)",
+ "cibc.com (1 depls)",
+ "chrissandrini.ch (1 depls)",
+ "varegos.com (1 depls)",
+ "chem.byu.edu (1 depls)",
+ "us.logicalis.com (1 depls)",
+ "audemarspiguet.com (1 depls)",
+ "compro.com.tr (1 depls)",
+ "comas.co.kr (1 depls)",
+ "compatibl.com (1 depls)",
+ "united.com (1 depls)",
+ "univie.ac.at (1 depls)",
+ "upc.ch (1 depls)",
+ "commerzbank.com (1 depls)",
+ "upenn.edu (1 depls)",
+ "comcast.net (1 depls)",
+ "upmc.edu (1 depls)",
+ "comafi.com.ar (1 depls)",
+ "us.af.mil (1 depls)",
+ "coinscrap.com (1 depls)",
+ "cohesity.com (1 depls)",
+ "ural.rt.ru (1 depls)",
+ "cognitivescale.com (1 depls)",
+ "cognitionfoundry.com (1 depls)",
+ "urr.se (1 depls)",
+ "cnsys.bg (1 depls)",
+ "cnr.it (1 depls)",
+ "sumerge.com (1 depls)",
+ "gravis.bg (1 depls)",
+ "globacap.com (1 depls)",
+ "mprj.mp.br (1 depls)",
+ "moodys.com (1 depls)",
+ "advent.com (1 depls)",
+ "monex.com.mx (1 depls)",
+ "rku-it.de (1 depls)",
+ "rnp.br (1 depls)",
+ "mintic.gov.co (1 depls)",
+ "mindgate.in (1 depls)",
+ "robak.at (1 depls)",
+ "rockplace.co.kr (1 depls)",
+ "rogers.com (1 depls)",
+ "mhi.co.jp (1 depls)",
+ "mfec.co.th (1 depls)",
+ "rosbank.ru (1 depls)",
+ "metlife.com (1 depls)",
+ "royalcyber.com (1 depls)",
+ "rpa.gov.uk (1 depls)",
+ "metanet.co.kr (1 depls)",
+ "meridianit.co.uk (1 depls)",
+ "mendix.com (1 depls)",
+ "morganstanley.com (1 depls)",
+ "msg.group (1 depls)",
+ "alpha.gr (1 depls)",
+ "rhb.ch (1 depls)",
+ "ndb.bg (1 depls)",
+ "ncr.com (1 depls)",
+ "red8.com (1 depls)",
+ "nbs.sk (1 depls)",
+ "redbeemedia.com (1 depls)",
+ "reged.com (1 depls)",
+ "naver.com (1 depls)",
+ "regionh.dk (1 depls)",
+ "n11.com (1 depls)",
+ "mx1.ibm.com (1 depls)",
+ "mutua.es (1 depls)",
+ "musala.com (1 depls)",
+ "reply.it (1 depls)",
+ "amdocs.onmicrosoft.com (1 depls)",
+ "multapplied.net (1 depls)",
+ "muf.co.id (1 depls)",
+ "mtel.ba (1 depls)",
+ "resbank.co.za (1 depls)",
+ "msn.com (1 depls)",
+ "medsolv.com (1 depls)",
+ "mednet.ucla.edu (1 depls)",
+ "ampsight.com (1 depls)",
+ "medirect.com.mt (1 depls)",
+ "loblaw.ca (1 depls)",
+ "sancorsalud.com.ar (1 depls)",
+ "sanlam.co.za (1 depls)",
+ "sayers.com (1 depls)",
+ "sb.cl (1 depls)",
+ "list.soliton.co.jp (1 depls)",
+ "sberbank.hr (1 depls)",
+ "adp.com (1 depls)",
+ "scalefree.co.jp (1 depls)",
+ "anexia-it.com (1 depls)",
+ "lightning-it.de (1 depls)",
+ "libertyglobal.com (1 depls)",
+ "lgcns.com (1 depls)",
+ "lfst.bayern.de (1 depls)",
+ "admiralty.io (1 depls)",
+ "leep.app (1 depls)",
+ "learnconsult.com (1 depls)",
+ "sulamerica.com.br (1 depls)",
+ "lafargeholcim.com (1 depls)",
+ "lombardodier.com (1 depls)",
+ "losheroes.cl (1 depls)",
+ "samoscyber.com (1 depls)",
+ "mainstream.net (1 depls)",
+ "mduresources.com (1 depls)",
+ "mdhs.ms.gov (1 depls)",
+ "mayadata.io (1 depls)",
+ "marlow.com.cy (1 depls)",
+ "markiiisys.com (1 depls)",
+ "marcelbrouwers.nl (1 depls)",
+ "mantech.com (1 depls)",
+ "mandatumlife.fi (1 depls)",
+ "mail.schwarz (1 depls)",
+ "lowes.com (1 depls)",
+ "s-und-n.de (1 depls)",
+ "mail.mil (1 depls)",
+ "sa.ibm.com (1 depls)",
+ "mahkamahagung.go.id (1 depls)",
+ "maana.io (1 depls)",
+ "ma.ibm.com (1 depls)",
+ "lso.ca (1 depls)",
+ "baloise.ch (1 depls)",
+ "ndgit.com (1 depls)",
+ "realglobe.jp (1 depls)",
+ "labcorp.com (1 depls)",
+ "pivotal.io (1 depls)",
+ "plusserver.com (1 depls)",
+ "agenda.si (1 depls)",
+ "oraex.com.br (1 depls)",
+ "pmi.com (1 depls)",
+ "polyu.edu.hk (1 depls)",
+ "opitz-consulting.com (1 depls)",
+ "popso.it (1 depls)",
+ "portshift.io (1 depls)",
+ "posteitaliane.it (1 depls)",
+ "openadvice.de (1 depls)",
+ "ppb.com (1 depls)",
+ "pr.sebrae.com.br (1 depls)",
+ "agd.gov.au (1 depls)",
+ "principledtechnologies.com (1 depls)",
+ "ominsure.co.za (1 depls)",
+ "omantel.om (1 depls)",
+ "ol.ge (1 depls)",
+ "oksystem.cz (1 depls)",
+ "ok.is (1 depls)",
+ "planeta.es (1 depls)",
+ "osec.pl (1 depls)",
+ "raytheon.com (1 depls)",
+ "oss-group.co.nz (1 depls)",
+ "pccth.com (1 depls)",
+ "pc-daiwabo.co.jp (1 depls)",
+ "perceptilabs.com (1 depls)",
+ "percona.com (1 depls)",
+ "pb.com (1 depls)",
+ "paytrail.com (1 depls)",
+ "agirc-arrco.fr (1 depls)",
+ "paycore.com (1 depls)",
+ "pasam.com (1 depls)",
+ "paradigmadigital.com (1 depls)",
+ "par-tec.it (1 depls)",
+ "pagero.com (1 depls)",
+ "agiledigital.com.au (1 depls)",
+ "outlook.fr (1 depls)",
+ "physter.com (1 depls)",
+ "outlook.at (1 depls)",
+ "ahgora.com.br (1 depls)",
+ "otago.ac.nz (1 depls)",
+ "ot.olympus.co.jp (1 depls)",
+ "odsoftwarehouse.com (1 depls)",
+ "ocsnet.it (1 depls)",
+ "priorbank.by (1 depls)",
+ "ocbc.com (1 depls)",
+ "nisa.com (1 depls)",
+ "pvgroup.be (1 depls)",
+ "pwc.com (1 depls)",
+ "qss.ba (1 depls)",
+ "allbluesolutions.com (1 depls)",
+ "quantech.com.lb (1 depls)",
+ "rabobank.nl (1 depls)",
+ "networld.co.jp (1 depls)",
+ "ae.ibm.com (1 depls)",
+ "netscape.net (1 depls)",
+ "nets.eu (1 depls)",
+ "radware.com (1 depls)",
+ "raiffeisengroup.ba (1 depls)",
+ "netnumber.com (1 depls)",
+ "netdriven.de (1 depls)",
+ "rakuten.com (1 depls)",
+ "nestle.com (1 depls)",
+ "nesic.com (1 depls)",
+ "neoflex.ru (1 depls)",
+ "nissho-ele.co.jp (1 depls)",
+ "puma.com (1 depls)",
+ "psba.qld.gov.au (1 depls)",
+ "ntst.com (1 depls)",
+ "oa.mo.gov (1 depls)",
+ "proalpha.de (1 depls)",
+ "prodevans.com (1 depls)",
+ "proedge.hk (1 depls)",
+ "profi-ag.de (1 depls)",
+ "nuuptech.com (1 depls)",
+ "nuuday.dk (1 depls)",
+ "proficom.de (1 depls)",
+ "alerant.hu (1 depls)",
+ "nlmk.com (1 depls)",
+ "proholding.com.pl (1 depls)",
+ "novascotia.ca (1 depls)",
+ "novadoc.nl (1 depls)",
+ "northstar.co.kr (1 depls)",
+ "prosis.de (1 depls)",
+ "protonmail.com (1 depls)",
+ "nogui.org (1 depls)",
+ "nnit.com (1 depls)",
+ "lacaja.com.ar (1 depls)",
+ "schultz.net (1 depls)",
+ "labanquepostale.fr (1 depls)",
+ "spaceflightindustries.com (1 depls)",
+ "ibagroup.eu (1 depls)",
+ "i-s.com.pl (1 depls)",
+ "i-3.co.id (1 depls)",
+ "spi.de (1 depls)",
+ "husbanken.no (1 depls)",
+ "hughes.com (1 depls)",
+ "hu.nl (1 depls)",
+ "spirent.com (1 depls)",
+ "hr.ibm.com (1 depls)",
+ "sprint.com (1 depls)",
+ "hpcg.com.mx (1 depls)",
+ "hpbsc.ch (1 depls)",
+ "src.si (1 depls)",
+ "hotmail.de (1 depls)",
+ "sscinc.com (1 depls)",
+ "hoplasoftware.com (1 depls)",
+ "stackrox.com (1 depls)",
+ "stakater.com (1 depls)",
+ "homecenter.co (1 depls)",
+ "apptecinc.com (1 depls)",
+ "ibs.bg (1 depls)",
+ "inhouse.wko.at (1 depls)",
+ "ibtech.com.tr (1 depls)",
+ "informatika.si (1 depls)",
+ "kw.zain.com (1 depls)",
+ "softwareone.com (1 depls)",
+ "infineon.com (1 depls)",
+ "adeo.com (1 depls)",
+ "solem.cl (1 depls)",
+ "imba.oeaw.ac.at (1 depls)",
+ "solute.us (1 depls)",
+ "sopragroup.com (1 depls)",
+ "sorint.it (1 depls)",
+ "iisl.com (1 depls)",
+ "ihealthtechnologies.com (1 depls)",
+ "igt.com (1 depls)",
+ "sorintlab.com (1 depls)",
+ "id.ibm.com (1 depls)",
+ "icu-it.nl (1 depls)",
+ "icteam.it (1 depls)",
+ "icloud.com (1 depls)",
+ "south.rt.ru (1 depls)",
+ "holmes.nl (1 depls)",
+ "holcim.com (1 depls)",
+ "hna.honda.com (1 depls)",
+ "stantec.com (1 depls)",
+ "guavus.com (1 depls)",
+ "stm.info (1 depls)",
+ "gruppohera.it (1 depls)",
+ "grupodifare.com (1 depls)",
+ "groupeonepoint.com (1 depls)",
+ "greentube.com (1 depls)",
+ "pccw.com (1 depls)",
+ "graat.co.jp (1 depls)",
+ "gpa-group.it (1 depls)",
+ "gp.biglobe.co.jp (1 depls)",
+ "gov.rs (1 depls)",
+ "gov.nt.ca (1 depls)",
+ "aramco.com (1 depls)",
+ "google.com (1 depls)",
+ "goodmit.co.kr (1 depls)",
+ "goias.gov.br (1 depls)",
+ "gmv.com (1 depls)",
+ "stud.hslu.ch (1 depls)",
+ "student.kdg.be (1 depls)",
+ "adaclare.com (1 depls)",
+ "halkbank.com.tr (1 depls)",
+ "handelsbanken.se (1 depls)",
+ "state.ca.gov (1 depls)",
+ "aprr.fr (1 depls)",
+ "staples.ca (1 depls)",
+ "apx.fr (1 depls)",
+ "hizliyedek.com (1 depls)",
+ "hitachivantara.com (1 depls)",
+ "hetg.ie (1 depls)",
+ "here.com (1 depls)",
+ "hel.fi (1 depls)",
+ "healthnow.org (1 depls)",
+ "hashicorp.com (1 depls)",
+ "hds.com (1 depls)",
+ "hco.ntt.co.jp (1 depls)",
+ "stcpay.com.sa (1 depls)",
+ "steelbridgelabs.com (1 depls)",
+ "hbl.ch (1 depls)",
+ "hazelcast.com (1 depls)",
+ "havenhealthcare.com (1 depls)",
+ "ar.ibm.com (1 depls)",
+ "infracode.ru (1 depls)",
+ "infinkon.eu (1 depls)",
+ "injeinc.co.kr (1 depls)",
+ "siemens-healthineers.com (1 depls)",
+ "keytradebank.com (1 depls)",
+ "kennasecurity.com (1 depls)",
+ "zte.com.cn (1 depls)",
+ "seldon.io (1 depls)",
+ "kbtg.tech (1 depls)",
+ "kbc.be (1 depls)",
+ "semperti.com (1 depls)",
+ "kb.dk (1 depls)",
+ "sentryds.com (1 depls)",
+ "service-rz.de (1 depls)",
+ "kaloom.com (1 depls)",
+ "kaizentechpartners.com (1 depls)",
+ "service.com.br (1 depls)",
+ "juntadeandalucia.es (1 depls)",
+ "juniper.net (1 depls)",
+ "jsa-group.ru (1 depls)",
+ "ses.com (1 depls)",
+ "shi-g.com (1 depls)",
+ "sibintek.ru (1 depls)",
+ "keyvatech.com (1 depls)",
+ "kgi.com (1 depls)",
+ "kibs.com.mk (1 depls)",
+ "securustechnologies.com (1 depls)",
+ "kuehne-nagel.com (1 depls)",
+ "ktbcs.co.th (1 depls)",
+ "scigames.at (1 depls)",
+ "sct.gouv.qc.ca (1 depls)",
+ "seat.es (1 depls)",
+ "kp.org (1 depls)",
+ "kove.net (1 depls)",
+ "seccom.ch (1 depls)",
+ "komplex-it.dk (1 depls)",
+ "kiratech.it (1 depls)",
+ "sefin.fortaleza.ce.gov.br (1 depls)",
+ "kolodok.info (1 depls)",
+ "kolabsys.com (1 depls)",
+ "sefin.gob.hn (1 depls)",
+ "segrocers.com (1 depls)",
+ "kobelcosys.co.jp (1 depls)",
+ "ko2.it (1 depls)",
+ "knowis.de (1 depls)",
+ "jeskell.com (1 depls)",
+ "shlitz.com (1 depls)",
+ "silich.de (1 depls)",
+ "it-fabrik.at (1 depls)",
+ "iridium-russia.com (1 depls)",
+ "janwiebe.eu (1 depls)",
+ "apendo.se (1 depls)",
+ "slac.stanford.edu (1 depls)",
+ "invesco.com (1 depls)",
+ "intility.no (1 depls)",
+ "sll.se (1 depls)",
+ "interkassa.com (1 depls)",
+ "interior.es (1 depls)",
+ "intercom.com.eg (1 depls)",
+ "intellilink.co.jp (1 depls)",
+ "inteliquent.com (1 depls)",
+ "snt.ro (1 depls)",
+ "soaint.com (1 depls)",
+ "instana.com (1 depls)",
+ "socgen.com (1 depls)",
+ "inps.it (1 depls)",
+ "innogy.com (1 depls)",
+ "innogrid.com (1 depls)",
+ "isd.jp.nec.com (1 depls)",
+ "ipo.gov.uk (1 depls)",
+ "it.ecommpay.com (1 depls)",
+ "itcenter.com.pt (1 depls)",
+ "iworks.kr (1 depls)",
+ "simlogics.net (1 depls)",
+ "siriuscom.com (1 depls)",
+ "simtech.nl (1 depls)",
+ "itergo.com (1 depls)",
+ "itchannel.asia (1 depls)",
+ "itl.com.ar (1 depls)",
+ "baloise.lu (1 depls)",
+ "apap.com.do (1 depls)",
+ "singtel.com (1 depls)",
+ "italgas.it (1 depls)",
+ "sina.cn (1 depls)",
+ "apoio.fr (0 depls)",
+ "amazon.com (0 depls)",
+ "archinsurance.com (0 depls)",
+ "acertcon.com.br (0 depls)",
+ "appdynamics.com (0 depls)",
+ "aa.jp.fujitsu.com (0 depls)",
+ "afbnet.it (0 depls)",
+ "anaconda.com (0 depls)",
+ "audi.de (0 depls)",
+ "aselsan.com.tr (0 depls)",
+ "407etr.com (0 depls)",
+ "assentis.com (0 depls)",
+ "21vianet.com (0 depls)",
+ "ztech.io (0 depls)",
+ "basefarm.com (0 depls)",
+ "opentext.com (0 depls)",
+ "saic.com (0 depls)",
+ "riverbed.com (0 depls)",
+ "rackspace.com (0 depls)",
+ "puzzle.ch (0 depls)",
+ "programmer.net (0 depls)",
+ "profuturo.com.mx (0 depls)",
+ "prgx.com (0 depls)",
+ "pm.nttdata.co.jp (0 depls)",
+ "phe.gov.uk (0 depls)",
+ "paysafe.com (0 depls)",
+ "otpsrbija.rs (0 depls)",
+ "orpea.net (0 depls)",
+ "nxp.com (0 depls)",
+ "schindler.com (0 depls)",
+ "nttdocomo.com (0 depls)",
+ "ntsretail.com (0 depls)",
+ "nexign.com (0 depls)",
+ "newrelic.com (0 depls)",
+ "netscout.com (0 depls)",
+ "neareasttechnology.com (0 depls)",
+ "ncontr.com (0 depls)",
+ "ncl.com (0 depls)",
+ "multisoft.co.id (0 depls)",
+ "multiplan.com (0 depls)",
+ "metrodemedellin.gov.co (0 depls)",
+ "medius.si (0 depls)",
+ "scalait.com (0 depls)",
+ "shaun.io (0 depls)",
+ "matrix.co.il (0 depls)",
+ "thejay.net (0 depls)",
+ "xsyscemerlang.com (0 depls)",
+ "xc.jp.nec.com (0 depls)",
+ "websiteitalia.com (0 depls)",
+ "verizonwireless.com (0 depls)",
+ "vegas.com (0 depls)",
+ "ute.com.uy (0 depls)",
+ "unipoint.co.kr (0 depls)",
+ "uib.es (0 depls)",
+ "toyota.com.br (0 depls)",
+ "tn.gov (0 depls)",
+ "tmx.com (0 depls)",
+ "tjpa.jus.br (0 depls)",
+ "th.ibm.com (0 depls)",
+ "smanager.com.br (0 depls)",
+ "technet-asia.com (0 depls)",
+ "techlead.com.br (0 depls)",
+ "symbiont.io (0 depls)",
+ "suva.ch (0 depls)",
+ "supermicro.com (0 depls)",
+ "sttproductions.de (0 depls)",
+ "stonedoorgroup.com (0 depls)",
+ "stofa.dk (0 depls)",
+ "stena.com (0 depls)",
+ "ss.jrkyushu-g.co.jp (0 depls)",
+ "solace.com (0 depls)",
+ "softwareag.com (0 depls)",
+ "mazda.co.jp (0 depls)",
+ "loxon.eu (0 depls)",
+ "blackducksoftware.com (0 depls)",
+ "corp.sysco.com (0 depls)",
+ "evtcorp.com (0 depls)",
+ "et.mde.es (0 depls)",
+ "elastic.co (0 depls)",
+ "east.ntt.co.jp (0 depls)",
+ "duo.nl (0 depls)",
+ "dtcc.com (0 depls)",
+ "doc88.com.br (0 depls)",
+ "disney.com (0 depls)",
+ "delsud.com.ar (0 depls)",
+ "dataport.de (0 depls)",
+ "cybercom.com (0 depls)",
+ "cristie.se (0 depls)",
+ "conova.com (0 depls)",
+ "finat.pl (0 depls)",
+ "commscope.com (0 depls)",
+ "coming.rs (0 depls)",
+ "cnvrg.io (0 depls)",
+ "cms.hhs.gov (0 depls)",
+ "ciasc.sc.gov.br (0 depls)",
+ "cetin.cz (0 depls)",
+ "camptocamp.com (0 depls)",
+ "caditgroup.com (0 depls)",
+ "bthtech.com (0 depls)",
+ "br-petrobras.com.br (0 depls)",
+ "bolivariano.com (0 depls)",
+ "bnc.ca (0 depls)",
+ "fcc.es (0 depls)",
+ "fintek.com.tr (0 depls)",
+ "lme.com (0 depls)",
+ "hkairport.com (0 depls)",
+ "linquest.com (0 depls)",
+ "lemc.com.hk (0 depls)",
+ "kpmg.com (0 depls)",
+ "kangaroot.net (0 depls)",
+ "jbcc.co.jp (0 depls)",
+ "itgroupinc.asia (0 depls)",
+ "italtel.com (0 depls)",
+ "ipmgroup.be (0 depls)",
+ "integraltech.com.au (0 depls)",
+ "insightglobal.com (0 depls)",
+ "inet.co.th (0 depls)",
+ "ibermatica.com (0 depls)",
+ "hk.ncs-i.com (0 depls)",
+ "fmc-na.com (0 depls)",
+ "hcahealthcare.com (0 depls)",
+ "havelsan.com.tr (0 depls)",
+ "googlemail.com (0 depls)",
+ "gigaspaces.com (0 depls)",
+ "gic.com.sg (0 depls)",
+ "gfi.fr (0 depls)",
+ "gexterno.es (0 depls)",
+ "generali.com.hk (0 depls)",
+ "gemalto.com (0 depls)",
+ "gds.ey.com (0 depls)",
+ "fwd.com (0 depls)",
+ "fokus.fraunhofer.de (0 depls)",
+ "103mvl.net (0 depls)"
+ ],
+ "description": "Email Domain",
+ "index": 0,
+ "layout": "IPY_MODEL_5d7673cf3a104ef3b80456b7d9064424",
+ "style": "IPY_MODEL_9600d07e093e4f5da96ca880a34bed9c"
+ }
+ },
+ "4ca4b85e5a4743d8b6b839ef08136c90": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "4eb15db4d63944729bda02250b6d665f": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "VBoxModel",
+ "state": {
+ "_dom_classes": [
+ "widget-interact"
+ ],
+ "children": [
+ "IPY_MODEL_c0d633a1c21c46929e790335d5a683c7",
+ "IPY_MODEL_519d8979eacf42d9aa6cecf4793d2393"
+ ],
+ "layout": "IPY_MODEL_87ffbcafd0024ab29f6f832a93651349"
+ }
+ },
+ "4eda209b3fc3451088bad24592b97013": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "4f22969a64664e9aabda077965af960f": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "4f7fa96550524dc8aa95f32929a8a7c9": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "50741f99b224484a964448776dc2d94c": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DropdownModel",
+ "state": {
+ "_options_labels": [
+ "1",
+ "2",
+ "3",
+ "4",
+ "5",
+ "6",
+ "7",
+ "8",
+ "9",
+ "10",
+ "11",
+ "12"
+ ],
+ "description": "month",
+ "index": 1,
+ "layout": "IPY_MODEL_613f2f33df8a477982842240fe3621b5",
+ "style": "IPY_MODEL_8c3c7fc613ef4aae96026b9841a0770c"
+ }
+ },
+ "519d8979eacf42d9aa6cecf4793d2393": {
+ "model_module": "@jupyter-widgets/output",
+ "model_module_version": "1.0.0",
+ "model_name": "OutputModel",
+ "state": {
+ "layout": "IPY_MODEL_6b67d215d0434bd1b3fa62362b422689"
+ }
+ },
+ "51af6dc301444d3397bd2244591c3a11": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "5254775885434d2a8f2ad27eb2bafe4f": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "52761f3f29954f5a827538017da54d20": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "VBoxModel",
+ "state": {
+ "_dom_classes": [
+ "widget-interact"
+ ],
+ "children": [
+ "IPY_MODEL_36b259400bf8424fa2ba15a09547db50",
+ "IPY_MODEL_71acdace824f4f07b65419fe12b42762"
+ ],
+ "layout": "IPY_MODEL_20eac18aad9d4d788c33bf150c126ed6"
+ }
+ },
+ "52e3eb03517e49cb986123c7753ee324": {
+ "model_module": "@jupyter-widgets/output",
+ "model_module_version": "1.0.0",
+ "model_name": "OutputModel",
+ "state": {
+ "layout": "IPY_MODEL_a80a7a944131406fbb1247bfe2331780"
+ }
+ },
+ "54bf259fda584e60b1d867c1a976442e": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "55416ff6662f4621bca35aa463390d75": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "558010d07d914b5aa82ffafd36ca8350": {
+ "model_module": "@jupyter-widgets/output",
+ "model_module_version": "1.0.0",
+ "model_name": "OutputModel",
+ "state": {
+ "layout": "IPY_MODEL_09c6f042cf3446e6a1dcfab6c75683ef"
+ }
+ },
+ "56d7029d112f4f0db07e59fee35b2d78": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DropdownModel",
+ "state": {
+ "_options_labels": [
+ "2020",
+ "2019",
+ "2018",
+ "2017",
+ "2016",
+ "2015",
+ "2014",
+ "2013",
+ "2012",
+ "2011"
+ ],
+ "description": "year",
+ "index": 0,
+ "layout": "IPY_MODEL_79470df00f5343e284462a997ab2abd0",
+ "style": "IPY_MODEL_bf3fa02febe048ef992990995d7d4a16"
+ }
+ },
+ "577d3b8cc6c240fc9ac0d58120e87884": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "57ffcef54cc74b668630638dd048eb51": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "SelectModel",
+ "state": {
+ "_options_labels": [
+ "ALL (2318 depls)",
+ "4.2 (1382 depls)",
+ "4.3 ( 895 depls)",
+ "4.4 ( 20 depls)",
+ "nan ( 15 depls)",
+ "4.1 ( 6 depls)"
+ ],
+ "description": "Major.Minor",
+ "index": 1,
+ "layout": "IPY_MODEL_a19cbc7f1f6c4eb2bf416f60fe935420",
+ "style": "IPY_MODEL_c1a3b359ec14434ab5396341bee6c113"
+ }
+ },
+ "58ad1ba369d24df29a562a05ddadc80a": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "5c3ee643d90041c2a794e77e903c0128": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "VBoxModel",
+ "state": {
+ "_dom_classes": [
+ "widget-interact"
+ ],
+ "children": [
+ "IPY_MODEL_7436bb5586784b3485e69ac9715fbc8a",
+ "IPY_MODEL_c808e898c71540188379814824eb5a40"
+ ],
+ "layout": "IPY_MODEL_c02ec27b73774540abf679c305fddd22"
+ }
+ },
+ "5d409f20e37c44ef98448c35ecb801b9": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DropdownModel",
+ "state": {
+ "_options_labels": [
+ "0",
+ "1",
+ "2",
+ "3",
+ "4",
+ "5",
+ "6",
+ "7",
+ "8",
+ "9",
+ "10",
+ "11",
+ "12",
+ "13",
+ "14",
+ "15",
+ "16",
+ "17",
+ "18",
+ "19",
+ "20",
+ "21",
+ "22",
+ "23",
+ "24",
+ "25",
+ "26",
+ "27",
+ "28",
+ "29",
+ "30",
+ "31",
+ "32",
+ "33",
+ "34",
+ "35",
+ "36",
+ "37",
+ "38",
+ "39",
+ "40",
+ "41",
+ "42",
+ "43",
+ "44",
+ "45",
+ "46",
+ "47",
+ "48",
+ "49",
+ "50",
+ "51",
+ "52",
+ "53",
+ "54",
+ "55",
+ "56",
+ "57",
+ "58",
+ "59"
+ ],
+ "description": "minute",
+ "index": 0,
+ "layout": "IPY_MODEL_c887cabc21fd4909bab5e178fb3c2645",
+ "style": "IPY_MODEL_13044b506f444d82a737a6605005bc9c"
+ }
+ },
+ "5d7673cf3a104ef3b80456b7d9064424": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "613f2f33df8a477982842240fe3621b5": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "61fe6cf101554747a0146b0dff9b29f7": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "623e8b2d4a2244bebebcb7215fca3f27": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DropdownModel",
+ "state": {
+ "_options_labels": [
+ "ALL"
+ ],
+ "description": "email",
+ "index": 0,
+ "layout": "IPY_MODEL_d7141cb6d13944c2a9eded9c1c3274d5",
+ "style": "IPY_MODEL_0a93954217e24ce39f01052dc44ede09"
+ }
+ },
+ "62cf41cd64ce4c21a042f05258b91b74": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DropdownModel",
+ "state": {
+ "_options_labels": [
+ "version_4.3.0 (1470 depls)",
+ "version_4.2.0 (1005 depls)",
+ "version_4.2.16 (520 depls)",
+ "version_4.3.1 (216 depls)",
+ "version_4.2.13 (208 depls)",
+ "version_4.2.12 (205 depls)",
+ "version_4.2.14 (174 depls)",
+ "version_4.2.7 (153 depls)",
+ "version_4.4.0 (138 depls)",
+ "version_4.2.10 (105 depls)",
+ "version_4.2.8 (70 depls)",
+ "version_4.2.9 (69 depls)",
+ "version_4.1.18 (58 depls)",
+ "version_4.2.2 (55 depls)",
+ "version_4.2.4 (53 depls)",
+ "version_4.2.18 (38 depls)",
+ "version_4.1.20 (32 depls)",
+ "version_4.3.2 (27 depls)",
+ "version_4.1.0 (20 depls)",
+ "version_4.1.9 (18 depls)",
+ "version_4.2.19 (18 depls)",
+ "version_4.1.8 (14 depls)",
+ "version_4.1.16 (11 depls)",
+ "version_4.1.22 (11 depls)",
+ "version_4.1.13 (10 depls)",
+ "version_4.1.29 (8 depls)",
+ "version_4.1.28 (7 depls)",
+ "version_4.1.4 (7 depls)",
+ "version_4.1.14 (6 depls)",
+ "version_4.1.21 (6 depls)",
+ "version_4.1.2 (5 depls)",
+ "version_4.1.30 (5 depls)",
+ "version_4.1.11 (5 depls)",
+ "version_4.1.6 (5 depls)",
+ "version_4.1.31 (4 depls)",
+ "version_4.2.1 (4 depls)",
+ "version_4.1.15 (3 depls)",
+ "version_4.1.3 (3 depls)",
+ "version_4.1.26 (3 depls)",
+ "version_4.1.25 (3 depls)",
+ "version_4.1.34 (2 depls)",
+ "version_4.1.23 (2 depls)",
+ "version_4.1.27 (2 depls)",
+ "version_4.2.5 (1 depls)",
+ "version_4.1.7 (1 depls)",
+ "version_4.1.10 (1 depls)"
+ ],
+ "description": "version",
+ "index": 0,
+ "layout": "IPY_MODEL_ca61e1105ae5426d8a761db8a23fbd96",
+ "style": "IPY_MODEL_4ca4b85e5a4743d8b6b839ef08136c90"
+ }
+ },
+ "66d48b18e2404b18b7e3f294da4342d4": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "VBoxModel",
+ "state": {
+ "_dom_classes": [
+ "widget-interact"
+ ],
+ "children": [
+ "IPY_MODEL_23b8a43a307a43b094d80180106aadfa",
+ "IPY_MODEL_97a719b053c2459b82f1188588215f62"
+ ],
+ "layout": "IPY_MODEL_3e89545f0fdc41e09fb007daef0fe088"
+ }
+ },
+ "69c8cc2860f8490089769841f62cd95f": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "69d6a25b21f040b59f84648d44b32825": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DropdownModel",
+ "state": {
+ "_options_labels": [
+ "type_IPI",
+ "type_UPI",
+ "type_other"
+ ],
+ "description": "infra",
+ "index": 0,
+ "layout": "IPY_MODEL_dad8a49e772c4d30a135a257d4dbef6f",
+ "style": "IPY_MODEL_15adc8fc6af544438619d942c4da8065"
+ }
+ },
+ "6a52f648ffb14eb9968986850607ba75": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DropdownModel",
+ "state": {
+ "_options_labels": [
+ "0",
+ "1",
+ "2",
+ "3",
+ "4",
+ "5",
+ "6",
+ "7",
+ "8",
+ "9",
+ "10",
+ "11",
+ "12",
+ "13",
+ "14",
+ "15",
+ "16",
+ "17",
+ "18",
+ "19",
+ "20",
+ "21",
+ "22",
+ "23",
+ "24",
+ "25",
+ "26",
+ "27",
+ "28",
+ "29",
+ "30",
+ "31",
+ "32",
+ "33",
+ "34",
+ "35",
+ "36",
+ "37",
+ "38",
+ "39",
+ "40",
+ "41",
+ "42",
+ "43",
+ "44",
+ "45",
+ "46",
+ "47",
+ "48",
+ "49",
+ "50",
+ "51",
+ "52",
+ "53",
+ "54",
+ "55",
+ "56",
+ "57",
+ "58",
+ "59"
+ ],
+ "description": "second",
+ "index": 0,
+ "layout": "IPY_MODEL_e8527e57f8104e6aabca48c68173d82b",
+ "style": "IPY_MODEL_fcbb5c7b5c02442c92f929c921c27b72"
+ }
+ },
+ "6b67d215d0434bd1b3fa62362b422689": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "6bce4e1fd95141b0b9b09c09e0ee7c92": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "SelectModel",
+ "state": {
+ "_options_labels": [
+ "ALL (5481 depls)",
+ "4.3 (3398 depls)",
+ "4.4 (1209 depls)",
+ "4.2 ( 818 depls)",
+ "nan ( 51 depls)",
+ "4.5 ( 4 depls)",
+ "4.1 ( 1 depls)"
+ ],
+ "description": "Major.Minor",
+ "index": 1,
+ "layout": "IPY_MODEL_7b760e3579f2405c8bf6bea792ab1b3f",
+ "style": "IPY_MODEL_c375ee0c5d2848928ec8fbb4ed3e25b2"
+ }
+ },
+ "6caea2fab7cd49129c759efbe081eba1": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "SelectModel",
+ "state": {
+ "_options_labels": [
+ "4.2 (1382 depls)",
+ "4.3 ( 895 depls)",
+ "4.4 ( 20 depls)",
+ "nan ( 15 depls)",
+ "4.1 ( 6 depls)"
+ ],
+ "description": "Major.Minor",
+ "index": 0,
+ "layout": "IPY_MODEL_0ccd6ba36a6549c486333609661aa6ab",
+ "style": "IPY_MODEL_705390add50c47fcba1207e89d4d1bb5"
+ }
+ },
+ "6eca99d81e104736af6b35c1cbc40b4b": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "ButtonStyleModel",
+ "state": {}
+ },
+ "705390add50c47fcba1207e89d4d1bb5": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "709bc4e9644741feaee466e95d636dae": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "70f526958ba9481ca272672460fc998e": {
+ "model_module": "@jupyter-widgets/output",
+ "model_module_version": "1.0.0",
+ "model_name": "OutputModel",
+ "state": {
+ "layout": "IPY_MODEL_cc4291f8495141af8c047ff5cef6d91d"
+ }
+ },
+ "71acdace824f4f07b65419fe12b42762": {
+ "model_module": "@jupyter-widgets/output",
+ "model_module_version": "1.0.0",
+ "model_name": "OutputModel",
+ "state": {
+ "layout": "IPY_MODEL_3093b652e58e452da514052942e46636",
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": "b7bca4a6-8f0a-4bdb-92dc-3ffe5f7defa5\ndcd86ab8-7b91-47e7-bc54-bf448a65b7e2\ne82d026e-b418-4e7f-8e58-615f368b9492\n"
+ }
+ ]
+ }
+ },
+ "72d8ed04f58d43e49107efd7d03de238": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "VBoxModel",
+ "state": {
+ "_dom_classes": [
+ "widget-interact"
+ ],
+ "children": [
+ "IPY_MODEL_69d6a25b21f040b59f84648d44b32825",
+ "IPY_MODEL_4932a91d45504079ba0dc55d574f53dd"
+ ],
+ "layout": "IPY_MODEL_2aea9e200b444934886846c727dbabf3"
+ }
+ },
+ "7436bb5586784b3485e69ac9715fbc8a": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DropdownModel",
+ "state": {
+ "_options_labels": [
+ "ALL (2318)",
+ "us.ibm.com (1199 depls)",
+ "gmail.com (44 depls)",
+ "ibm.com (41 depls)",
+ "de.ibm.com (16 depls)",
+ "hpe.com (16 depls)",
+ "cn.ibm.com (16 depls)",
+ "in.ibm.com (13 depls)",
+ "ie.ibm.com (12 depls)",
+ "dell.com (11 depls)",
+ "accenture.com (11 depls)",
+ "intel.com (8 depls)",
+ "dl.jp.fujitsu.com (8 depls)",
+ "secureworks.com (8 depls)",
+ "infosys.com (7 depls)",
+ "bell.ca (7 depls)",
+ "jp.ibm.com (7 depls)",
+ "bkfs.com (7 depls)",
+ "delta.com (7 depls)",
+ "o2its.cz (6 depls)",
+ "rohde-schwarz.com (6 depls)",
+ "uk.ibm.com (6 depls)",
+ "kocsistem.com.tr (6 depls)",
+ "nec.com (6 depls)",
+ "jp.fujitsu.com (5 depls)",
+ "hcl.com (5 depls)",
+ "de.bosch.com (5 depls)",
+ "landregistry.gov.uk (5 depls)",
+ "capgroup.com (5 depls)",
+ "orange.com (5 depls)",
+ "computacenter.com (4 depls)",
+ "sparebank1.no (4 depls)",
+ "t-systems.com (4 depls)",
+ "sap.com (4 depls)",
+ "fr.ibm.com (4 depls)",
+ "nttdata.com (4 depls)",
+ "ukcloud.com (4 depls)",
+ "il.ibm.com (4 depls)",
+ "ca.ibm.com (4 depls)",
+ "crif.com (4 depls)",
+ "bankmandiri.co.id (4 depls)",
+ "tigera.io (4 depls)",
+ "atos.net (4 depls)",
+ "debeka.de (4 depls)",
+ "vmware.com (4 depls)",
+ "linux.vnet.ibm.com (4 depls)",
+ "qq.com (4 depls)",
+ "worldpay.com (4 depls)",
+ "anz.com (4 depls)",
+ "etisalat.ae (4 depls)",
+ "experian.com (4 depls)",
+ "microsoft.com (3 depls)",
+ "axa.com (3 depls)",
+ "intervalintl.com (3 depls)",
+ "bbva.com (3 depls)",
+ "dynatrace.com (3 depls)",
+ "bitmarck.de (3 depls)",
+ "blood.ca (3 depls)",
+ "yahoo.com (3 depls)",
+ "cigna.com (3 depls)",
+ "cirb.brussels (3 depls)",
+ "trustmarkbenefits.com (3 depls)",
+ "nike.com (3 depls)",
+ "bom.gov.au (3 depls)",
+ "hitachi.com (3 depls)",
+ "cern.ch (3 depls)",
+ "honeywell.com (3 depls)",
+ "list.orange.com (3 depls)",
+ "bt.com (3 depls)",
+ "ncontr.com (3 depls)",
+ "pl.ibm.com (3 depls)",
+ "es.ibm.com (3 depls)",
+ "tractorsupply.com (3 depls)",
+ "netapp.com (3 depls)",
+ "aquasec.com (3 depls)",
+ "faa.gov (3 depls)",
+ "vegas.com (3 depls)",
+ "juniper.net (3 depls)",
+ "redislabs.com (3 depls)",
+ "sas.com (3 depls)",
+ "vhi.ie (3 depls)",
+ "rbc.com (3 depls)",
+ "ford.com (3 depls)",
+ "ascendcorp.com (3 depls)",
+ "fostermoore.com (2 depls)",
+ "posteitaliane.it (2 depls)",
+ "pvgroup.be (2 depls)",
+ "sorint.it (2 depls)",
+ "exidelife.in (2 depls)",
+ "elcorteingles.es (2 depls)",
+ "ra.rockwell.com (2 depls)",
+ "spf.jp.nec.com (2 depls)",
+ "deloitte.com (2 depls)",
+ "rtlabs.ru (2 depls)",
+ "ornl.gov (2 depls)",
+ "cloudera.com (2 depls)",
+ "rechtspraak.nl (2 depls)",
+ "rise-world.com (2 depls)",
+ "reply.it (2 depls)",
+ "catalysts.cc (2 depls)",
+ "cargo-partner.com (2 depls)",
+ "popso.it (2 depls)",
+ "capgemini.com (2 depls)",
+ "emirates.com (2 depls)",
+ "npo.nl (2 depls)",
+ "perficient.com (2 depls)",
+ "sekom.com.tr (2 depls)",
+ "dentisoft.com (2 depls)",
+ "crossvale.com (2 depls)",
+ "criticaltechworks.com (2 depls)",
+ "sensiaglobal.com (2 depls)",
+ "f9c.com.br (2 depls)",
+ "onespan.com (2 depls)",
+ "ol.ge (2 depls)",
+ "gen-e.com (2 depls)",
+ "csaa.com (2 depls)",
+ "ocbcnisp.com (2 depls)",
+ "gig.com (2 depls)",
+ "dhl.com (2 depls)",
+ "corp.vodafone.es (2 depls)",
+ "reisebank.de (2 depls)",
+ "global.ntt (2 depls)",
+ "extremedata.com.tw (2 depls)",
+ "globalrelay.net (2 depls)",
+ "dxcas.com (2 depls)",
+ "garantibbva.com.tr (2 depls)",
+ "cucbc.com (2 depls)",
+ "provinzial.de (2 depls)",
+ "nuodb.com (2 depls)",
+ "eaton.com (2 depls)",
+ "sbb.ch (2 depls)",
+ "pegadaian.co.id (2 depls)",
+ "grupo-pinero.com (2 depls)",
+ "f5.com (2 depls)",
+ "ericsson.com (2 depls)",
+ "bandwidth.com (2 depls)",
+ "tw.ibm.com (2 depls)",
+ "tipsport.cz (2 depls)",
+ "mii.co.id (2 depls)",
+ "agility.com (2 depls)",
+ "verifone.com (2 depls)",
+ "tmrnd.com.my (2 depls)",
+ "bancocredicoop.coop (2 depls)",
+ "axians.de (2 depls)",
+ "transport.nsw.gov.au (2 depls)",
+ "kolon.com (2 depls)",
+ "michigan.gov (2 depls)",
+ "amadeus.com (2 depls)",
+ "vps.no (2 depls)",
+ "turbonomic.com (2 depls)",
+ "metlife.com (2 depls)",
+ "vodafone.com (2 depls)",
+ "lsd.co.za (2 depls)",
+ "au.ibm.com (2 depls)",
+ "swissmedical.com.ar (2 depls)",
+ "kela.fi (2 depls)",
+ "kasten.io (2 depls)",
+ "unimoni.com (2 depls)",
+ "unisystems.gr (2 depls)",
+ "united.com (2 depls)",
+ "arburg.com (2 depls)",
+ "ups.com (2 depls)",
+ "verizonwireless.com (2 depls)",
+ "arbetsformedlingen.se (2 depls)",
+ "k8s.jp.nec.com (2 depls)",
+ "jndata.dk (2 depls)",
+ "ar.ibm.com (2 depls)",
+ "tinubu.com (2 depls)",
+ "uspto.gov (2 depls)",
+ "krash.be (2 depls)",
+ "hydro.qc.ca (2 depls)",
+ "iecisa.com (2 depls)",
+ "accenturefederal.com (2 depls)",
+ "technet-asia.com (2 depls)",
+ "teco.com.ar (2 depls)",
+ "telefonica.com (2 depls)",
+ "mwam.com (2 depls)",
+ "tcs.com (2 depls)",
+ "bouyguestelecom.fr (2 depls)",
+ "icbc.com.ar (2 depls)",
+ "msn.com (2 depls)",
+ "kuivanto.fi (2 depls)",
+ "wipro.com (2 depls)",
+ "hughes.com (2 depls)",
+ "adlere.fr (2 depls)",
+ "systex.com.hk (2 depls)",
+ "163.com (2 depls)",
+ "msccruises.com (2 depls)",
+ "lansforsakringar.se (1 depls)",
+ "karauctionservices.com (1 depls)",
+ "fi.ibm.com (1 depls)",
+ "leep.app (1 depls)",
+ "everbank.com (1 depls)",
+ "kbtg.tech (1 depls)",
+ "evtcorp.com (1 depls)",
+ "lcwaikiki.com (1 depls)",
+ "kemkes.go.id (1 depls)",
+ "zsdis.sk (1 depls)",
+ "feratel.at (1 depls)",
+ "labanquepostale.fr (1 depls)",
+ "kubus-it.de (1 depls)",
+ "extraordy.com (1 depls)",
+ "ext.adeo.com (1 depls)",
+ "kr.ibm.com (1 depls)",
+ "korian.fr (1 depls)",
+ "exisoft.com.ar (1 depls)",
+ "lacaja.com.ar (1 depls)",
+ "keybank.com (1 depls)",
+ "kolabsys.com (1 depls)",
+ "kohls.com (1 depls)",
+ "fedins.com (1 depls)",
+ "lacework.net (1 depls)",
+ "extrasys.it (1 depls)",
+ "exatetechnology.com (1 depls)",
+ "hr.ibm.com (1 depls)",
+ "its4u.lu (1 depls)",
+ "fintechgroup.com (1 depls)",
+ "hfbank.com.cn (1 depls)",
+ "googlemail.com (1 depls)",
+ "insightglobal.com (1 depls)",
+ "insiel.it (1 depls)",
+ "inndata.in (1 depls)",
+ "h-da.de (1 depls)",
+ "harness.io (1 depls)",
+ "hcahealthcare.com (1 depls)",
+ "infineon.com (1 depls)",
+ "ikea.com (1 depls)",
+ "intellilink.co.jp (1 depls)",
+ "hitachi-systems.com (1 depls)",
+ "hitrust.com.tw (1 depls)",
+ "hma.honda.com (1 depls)",
+ "hna.honda.com (1 depls)",
+ "homecenter.co (1 depls)",
+ "i-t-m.com (1 depls)",
+ "hotmail.com (1 depls)",
+ "hts.ge (1 depls)",
+ "google.com (1 depls)",
+ "gmx.net (1 depls)",
+ "fixedmea.com (1 depls)",
+ "gd-ms.com (1 depls)",
+ "flex.com (1 depls)",
+ "jazz.com.pk (1 depls)",
+ "fujitsu.com (1 depls)",
+ "ivteknologi.com (1 depls)",
+ "g3solutions.com.br (1 depls)",
+ "ivirma.com (1 depls)",
+ "itgroupinc.asia (1 depls)",
+ "gazprom-neft.ru (1 depls)",
+ "gds.ey.com (1 depls)",
+ "intesasanpaolo.com (1 depls)",
+ "itc.li (1 depls)",
+ "italgas.it (1 depls)",
+ "it.mos.ru (1 depls)",
+ "geodis.com (1 depls)",
+ "it.ibm.com (1 depls)",
+ "getskillednow.com (1 depls)",
+ "intility.no (1 depls)",
+ "gire.com (1 depls)",
+ "hu.ibm.com (1 depls)",
+ "cyccustomshop.com (1 depls)",
+ "enhance-it.dk (1 depls)",
+ "axa-tech.com (1 depls)",
+ "bcbssc.com (1 depls)",
+ "bcbsfl.com (1 depls)",
+ "bca.co.id (1 depls)",
+ "barqsystems.com (1 depls)",
+ "barceloviajes.com (1 depls)",
+ "bankofthewest.com (1 depls)",
+ "avisbudget.com (1 depls)",
+ "bertelsmann.de (1 depls)",
+ "avinetworks.com (1 depls)",
+ "aviary.tech (1 depls)",
+ "avaloq.com (1 depls)",
+ "aval.ua (1 depls)",
+ "autozone.com (1 depls)",
+ "au1.ibm.com (1 depls)",
+ "bcx.co.za (1 depls)",
+ "bk.ru (1 depls)",
+ "bynet.co.il (1 depls)",
+ "boschrexroth.de (1 depls)",
+ "btpnsyariah.com (1 depls)",
+ "bthtech.com (1 depls)",
+ "br.ibm.com (1 depls)",
+ "bpsconsultores.com (1 depls)",
+ "bps-suisse.ch (1 depls)",
+ "bpba.com.ar (1 depls)",
+ "bofa.com (1 depls)",
+ "blackdiamondreporting.com (1 depls)",
+ "boehringer-ingelheim.com (1 depls)",
+ "bnz.co.nz (1 depls)",
+ "bnc.ca (1 depls)",
+ "bluestembrands.com (1 depls)",
+ "bls.gov (1 depls)",
+ "blackducksoftware.com (1 depls)",
+ "att.com (1 depls)",
+ "atea.se (1 depls)",
+ "asset-metrix.com (1 depls)",
+ "adcubum.com (1 depls)",
+ "agirc-arrco.fr (1 depls)",
+ "agiledigital.com.au (1 depls)",
+ "advatys.com (1 depls)",
+ "advance-auto.com (1 depls)",
+ "adfinis-sygroup.ch (1 depls)",
+ "adeoservices.com (1 depls)",
+ "achmea.nl (1 depls)",
+ "asia.ccb.com (1 depls)",
+ "acdigital.com.br (1 depls)",
+ "acceleris.ch (1 depls)",
+ "abanca.com (1 depls)",
+ "a1.at (1 depls)",
+ "4data.ch (1 depls)",
+ "126.com (1 depls)",
+ "aliyun.com (1 depls)",
+ "alliander.com (1 depls)",
+ "alltechsolucoes.com.br (1 depls)",
+ "altroninc.com (1 depls)",
+ "amazon.com (1 depls)",
+ "anadoluefes.com (1 depls)",
+ "anchore.com (1 depls)",
+ "ao.uscourts.gov (1 depls)",
+ "aoins.com (1 depls)",
+ "ap-com.co.jp (1 depls)",
+ "apg.at (1 depls)",
+ "apis-it.hr (1 depls)",
+ "apptecinc.com (1 depls)",
+ "appvalue.ro (1 depls)",
+ "apx.fr (1 depls)",
+ "aramco.com (1 depls)",
+ "aricent.com (1 depls)",
+ "buenosaires.gob.ar (1 depls)",
+ "c3.ai (1 depls)",
+ "emc.com (1 depls)",
+ "daa.ie (1 depls)",
+ "dct-cloud.com (1 depls)",
+ "datagumbo.com (1 depls)",
+ "datacom.co.nz (1 depls)",
+ "darkwolfsolutions.com (1 depls)",
+ "daocloud.io (1 depls)",
+ "danskecommodities.com (1 depls)",
+ "cz.ibm.com (1 depls)",
+ "deloitte.de (1 depls)",
+ "lhind.dlh.de (1 depls)",
+ "cyberark.com (1 depls)",
+ "ctc-g.com.sg (1 depls)",
+ "cspq.gouv.qc.ca (1 depls)",
+ "cspire.com (1 depls)",
+ "csiweb.com (1 depls)",
+ "decsoft.com.pl (1 depls)",
+ "det.nsw.edu.au (1 depls)",
+ "cablevision.com.ar (1 depls)",
+ "edgebound.com (1 depls)",
+ "email.unc.edu (1 depls)",
+ "emag.ro (1 depls)",
+ "elotl.co (1 depls)",
+ "elkarlan.onmicrosoft.com (1 depls)",
+ "eginnovations.com (1 depls)",
+ "egcp.com (1 depls)",
+ "econocom.com (1 depls)",
+ "deutsche-boerse.com (1 depls)",
+ "ece.cmu.edu (1 depls)",
+ "ec.europa.eu (1 depls)",
+ "duo.nl (1 depls)",
+ "doosan.com (1 depls)",
+ "dict.gov.ph (1 depls)",
+ "devoteam.com (1 depls)",
+ "croz.net (1 depls)",
+ "crown.com (1 depls)",
+ "cronos.be (1 depls)",
+ "ch.ibm.com (1 depls)",
+ "clearlake.ibm.com (1 depls)",
+ "citizensbank.com (1 depls)",
+ "cisco.com (1 depls)",
+ "cielo.com.br (1 depls)",
+ "chicos.com (1 depls)",
+ "charter.net (1 depls)",
+ "cfh.sk (1 depls)",
+ "cristie.se (1 depls)",
+ "cetelem.com.br (1 depls)",
+ "cepsa.com (1 depls)",
+ "centec.at (1 depls)",
+ "capitalonline.net (1 depls)",
+ "canada.ca (1 depls)",
+ "cambio.se (1 depls)",
+ "clearstream.com (1 depls)",
+ "cloudgensys.com (1 depls)",
+ "cmbchina.com (1 depls)",
+ "cn.fujitsu.com (1 depls)",
+ "cnr.it (1 depls)",
+ "cnsys.bg (1 depls)",
+ "cognitivescale.com (1 depls)",
+ "comafi.com.ar (1 depls)",
+ "comas.co.kr (1 depls)",
+ "commvault.com (1 depls)",
+ "comparex.com.tr (1 depls)",
+ "consol.de (1 depls)",
+ "couchbase.com (1 depls)",
+ "cpcc.edu (1 depls)",
+ "cra-arc.gc.ca (1 depls)",
+ "crediteurope.nl (1 depls)",
+ "creditone.com (1 depls)",
+ "lfst.bayern.de (1 depls)",
+ "ztech.io (1 depls)",
+ "0x233.cn (1 depls)",
+ "tcbs.com.vn (1 depls)",
+ "tier2consulting.com (1 depls)",
+ "tiaa.org (1 depls)",
+ "plusserver.com (1 depls)",
+ "tiaa-cref.org (1 depls)",
+ "thy.com (1 depls)",
+ "portworx.com (1 depls)",
+ "priorbank.by (1 depls)",
+ "prodevans.com (1 depls)",
+ "produban.com (1 depls)",
+ "proedge.hk (1 depls)",
+ "thinkahead.com (1 depls)",
+ "th.ibm.com (1 depls)",
+ "teranet.ca (1 depls)",
+ "tera-sky.com (1 depls)",
+ "pronaca.com (1 depls)",
+ "tep.com (1 depls)",
+ "telus.com (1 depls)",
+ "prosis.de (1 depls)",
+ "prosol.com (1 depls)",
+ "proteon.com (1 depls)",
+ "proxy.nl (1 depls)",
+ "teliacygate.fi (1 depls)",
+ "psba.qld.gov.au (1 depls)",
+ "techlead.com.br (1 depls)",
+ "ptt.gov.tr (1 depls)",
+ "techdata.com (1 depls)",
+ "team.telstra.com (1 depls)",
+ "planeta.es (1 depls)",
+ "tieto.com (1 depls)",
+ "pixar.com (1 depls)",
+ "otago.ac.nz (1 depls)",
+ "omnitracs.com (1 depls)",
+ "uib.es (1 depls)",
+ "twistlock.com (1 depls)",
+ "openline.nl (1 depls)",
+ "opennaru.com (1 depls)",
+ "opsta.co.th (1 depls)",
+ "oraex.com.br (1 depls)",
+ "orange.fr (1 depls)",
+ "origo.is (1 depls)",
+ "tre.se (1 depls)",
+ "tr.ibm.com (1 depls)",
+ "tpg.ch (1 depls)",
+ "outlook.com (1 depls)",
+ "tigbit.co.uk (1 depls)",
+ "outlook.fr (1 depls)",
+ "ozguryazilim.com.tr (1 depls)",
+ "packet-systems.com (1 depls)",
+ "tmx.com (1 depls)",
+ "payback.net (1 depls)",
+ "tmbbank.com (1 depls)",
+ "pbtech.net.br (1 depls)",
+ "penguincomputing.com (1 depls)",
+ "perceptilabs.com (1 depls)",
+ "physter.com (1 depls)",
+ "pinkroccade.nl (1 depls)",
+ "piros.be (1 depls)",
+ "tds.fujitsu.com (1 depls)",
+ "tbcbank.com.ge (1 depls)",
+ "ocbc.com (1 depls)",
+ "puzzle.ch (1 depls)",
+ "service-rz.de (1 depls)",
+ "sg.ibm.com (1 depls)",
+ "sg.smbc.co.jp (1 depls)",
+ "shaun.io (1 depls)",
+ "shi-g.com (1 depls)",
+ "sicredi.com.br (1 depls)",
+ "sigma.fr (1 depls)",
+ "startx.fr (1 depls)",
+ "starhub.com (1 depls)",
+ "standardbank.co.za (1 depls)",
+ "stackrox.com (1 depls)",
+ "ss.jrkyushu-g.co.jp (1 depls)",
+ "sita.aero (1 depls)",
+ "src.si (1 depls)",
+ "sprint.com (1 depls)",
+ "six-group.com (1 depls)",
+ "spirent.com (1 depls)",
+ "slac.stanford.edu (1 depls)",
+ "sll.se (1 depls)",
+ "snt.ro (1 depls)",
+ "softec.sk (1 depls)",
+ "spi.de (1 depls)",
+ "softwaymedical.fr (1 depls)",
+ "sogei.it (1 depls)",
+ "spectrumhealth.org (1 depls)",
+ "spark.co.nz (1 depls)",
+ "soprasteria.com (1 depls)",
+ "semprautilities.com (1 depls)",
+ "seldon.io (1 depls)",
+ "steelbridgelabs.com (1 depls)",
+ "roseltorg.tech (1 depls)",
+ "tav.aero (1 depls)",
+ "r-it.at (1 depls)",
+ "rabobank.nl (1 depls)",
+ "syspower.com.tw (1 depls)",
+ "libertyglobal.com (1 depls)",
+ "rccl.com (1 depls)",
+ "syncsort.com (1 depls)",
+ "regionh.dk (1 depls)",
+ "syncrasy.io (1 depls)",
+ "rku-it.de (1 depls)",
+ "robak.at (1 depls)",
+ "sympany.ch (1 depls)",
+ "swisscom.com (1 depls)",
+ "scholzj.com (1 depls)",
+ "rs.ibm.com (1 depls)",
+ "swift.com (1 depls)",
+ "sa.ibm.com (1 depls)",
+ "saic.com (1 depls)",
+ "samsung.com (1 depls)",
+ "swedbank.se (1 depls)",
+ "saq.qc.ca (1 depls)",
+ "sberbank.hr (1 depls)",
+ "stena.com (1 depls)",
+ "schindler.com (1 depls)",
+ "schiphol.nl (1 depls)",
+ "scholastic.com (1 depls)",
+ "omantel.om (1 depls)",
+ "os3infotech.com (1 depls)",
+ "oa.mo.gov (1 depls)",
+ "mediapro.tv (1 depls)",
+ "mendix.com (1 depls)",
+ "wimionline.be (1 depls)",
+ "mfec.co.th (1 depls)",
+ "whitehedge.com (1 depls)",
+ "microland.com (1 depls)",
+ "microstrat.com (1 depls)",
+ "mindgate.in (1 depls)",
+ "wh.jp.nec.com (1 depls)",
+ "minsait.com (1 depls)",
+ "westmonroepartners.com (1 depls)",
+ "mitre.org (1 depls)",
+ "mobiltel.bg (1 depls)",
+ "mongodb.com (1 depls)",
+ "morganstanley.com (1 depls)",
+ "vw.com (1 depls)",
+ "mtb.com (1 depls)",
+ "vub.sk (1 depls)",
+ "musala.com (1 depls)",
+ "vrtx.com (1 depls)",
+ "myriad.com (1 depls)",
+ "nationwide.co.uk (1 depls)",
+ "vkb.de (1 depls)",
+ "natixis.com (1 depls)",
+ "vismayacorp.com (1 depls)",
+ "vineti.com (1 depls)",
+ "videotron.com (1 depls)",
+ "navitus.com (1 depls)",
+ "medirect.com.mt (1 depls)",
+ "mduresources.com (1 depls)",
+ "nc.rr.com (1 depls)",
+ "wuerth-it.com (1 depls)",
+ "zpiz.si (1 depls)",
+ "liquidit.nz (1 depls)",
+ "lists.psi.ch (1 depls)",
+ "zettaset.com (1 depls)",
+ "lmco.com (1 depls)",
+ "lme.com (1 depls)",
+ "zenuity.com (1 depls)",
+ "loodse.com (1 depls)",
+ "loto-quebec.com (1 depls)",
+ "lowes.com (1 depls)",
+ "lso.ca (1 depls)",
+ "zap.co.ao (1 depls)",
+ "za.ibm.com (1 depls)",
+ "mahkamahagung.go.id (1 depls)",
+ "ymail.com (1 depls)",
+ "mail.schwarz (1 depls)",
+ "yahoo.co.in (1 depls)",
+ "mandatumlife.fi (1 depls)",
+ "mantech.com (1 depls)",
+ "marcusschiesser.de (1 depls)",
+ "xmann-online.de (1 depls)",
+ "marlow.com.cy (1 depls)",
+ "materna.de (1 depls)",
+ "matrix.co.il (1 depls)",
+ "mayadata.io (1 depls)",
+ "mcmaster.ca (1 depls)",
+ "mdhs.ms.gov (1 depls)",
+ "nbs.sk (1 depls)",
+ "multiplan.com (1 depls)",
+ "solarflare.com (1 depls)",
+ "verizonmedia.com (1 depls)",
+ "neuvector.com (1 depls)",
+ "umb.ch (1 depls)",
+ "unicredit.eu (1 depls)",
+ "vdl.lu (1 depls)",
+ "ngerntidlor.com (1 depls)",
+ "nice.com (1 depls)",
+ "ntt-tx.co.jp (1 depls)",
+ "nl.ibm.com (1 depls)",
+ "norsk-tipping.no (1 depls)",
+ "unipoint.co.kr (1 depls)",
+ "varmeego.com (1 depls)",
+ "ndb.bg (1 depls)",
+ "utc.com (1 depls)",
+ "usaa.com (1 depls)",
+ "us.logicalis.com (1 depls)",
+ "ntst.com (1 depls)",
+ "ntsretail.com (1 depls)",
+ "netzlink.com (1 depls)",
+ "urr.se (1 depls)",
+ "uk.fujitsu.com (1 depls)",
+ "viada.de (1 depls)",
+ "uk.mizuho-sc.com (1 depls)",
+ "nets.eu (1 depls)",
+ "nutanix.com (1 depls)",
+ "netcloud.ch (1 depls)",
+ "netone.co.jp (1 depls)",
+ "nxp.com (1 depls)",
+ "nyu.edu (1 depls)",
+ "nectechnologies.in (1 depls)",
+ "zf.com (0 depls)",
+ "upc.ch (0 depls)",
+ "architecht.com (0 depls)",
+ "21vianet.com (0 depls)",
+ "wwt.com (0 depls)",
+ "adeo.com (0 depls)",
+ "aditinet.it (0 depls)",
+ "atpco.net (0 depls)",
+ "sopragroup.com (0 depls)",
+ "wuliangye.com.cn (0 depls)",
+ "autopass.com.br (0 depls)",
+ "trace3.com (0 depls)",
+ "turkcell.com.tr (0 depls)",
+ "tudelft.nl (0 depls)",
+ "uk.pgds.com (0 depls)",
+ "tubitak.gov.tr (0 depls)",
+ "audemarspiguet.com (0 depls)",
+ "assentis.com (0 depls)",
+ "ciasc.sc.gov.br (0 depls)",
+ "yipintsoi.com (0 depls)",
+ "stofa.dk (0 depls)",
+ "turksat.com.tr (0 depls)",
+ "cedrusco.com (0 depls)",
+ "ccic-net.com.cn (0 depls)",
+ "aceinfosolutions.com (0 depls)",
+ "yahoo-corp.jp (0 depls)",
+ "ccc.jp.nec.com (0 depls)",
+ "cic.gc.ca (0 depls)",
+ "trilio.io (0 depls)",
+ "bionicpulse.mobi (0 depls)",
+ "stoiximan.gr (0 depls)",
+ "blum.com (0 depls)",
+ "timberchronicles.com (0 depls)",
+ "websam.jp.nec.com (0 depls)",
+ "teb.com.tr (0 depls)",
+ "appdynamics.com (0 depls)",
+ "atradius.com (0 depls)",
+ "telenetgroup.be (0 depls)",
+ "vsp.com (0 depls)",
+ "teliacompany.com (0 depls)",
+ "verso.hr (0 depls)",
+ "sulamerica.com.br (0 depls)",
+ "volkswagen.de (0 depls)",
+ "bluestem.com (0 depls)",
+ "beast-code.com (0 depls)",
+ "apendo.se (0 depls)",
+ "bendigobank.com.au (0 depls)",
+ "visma.com (0 depls)",
+ "teuto.net (0 depls)",
+ "bestbuy.com (0 depls)",
+ "baw.de (0 depls)",
+ "tine.no (0 depls)",
+ "taos.com (0 depls)",
+ "brighthousefinancial.com (0 depls)",
+ "sva.de (0 depls)",
+ "toyota.com.br (0 depls)",
+ "ayoy.se (0 depls)",
+ "caffeine.tv (0 depls)",
+ "adnovum.ch (0 depls)",
+ "worldline.com (0 depls)",
+ "tkhinnovations.com (0 depls)",
+ "afbnet.it (0 depls)",
+ "byu.edu (0 depls)",
+ "tk.de (0 depls)",
+ "tiri.li (0 depls)",
+ "bv.com.br (0 depls)",
+ "sysdig.com (0 depls)",
+ "ahgora.com.br (0 depls)",
+ "tamedia.ch (0 depls)",
+ "airbus.com (0 depls)",
+ "ais.co.th (0 depls)",
+ "ute.com.uy (0 depls)",
+ "lgim.com (0 depls)",
+ "solace.com (0 depls)",
+ "here.com (0 depls)",
+ "grupomatrix.co (0 depls)",
+ "gruppohera.it (0 depls)",
+ "gtb.gov.tr (0 depls)",
+ "hazelcast.com (0 depls)",
+ "novascotia.ca (0 depls)",
+ "novadoc.nl (0 depls)",
+ "helsinki.fi (0 depls)",
+ "hetg.ie (0 depls)",
+ "firstrepublic.com (0 depls)",
+ "hk1.ibm.com (0 depls)",
+ "holcim.com (0 depls)",
+ "netscout.com (0 depls)",
+ "hopitalvs.ch (0 depls)",
+ "hotpotatoes.nl (0 depls)",
+ "neoflex.ru (0 depls)",
+ "ibermatica.com (0 depls)",
+ "groupeonepoint.com (0 depls)",
+ "gravis.bg (0 depls)",
+ "grainger.com (0 depls)",
+ "nttdocomo.com (0 depls)",
+ "orpea.net (0 depls)",
+ "fokus.fraunhofer.de (0 depls)",
+ "forgerock.com (0 depls)",
+ "fr.scc.com (0 depls)",
+ "optus.com.au (0 depls)",
+ "futuregen.co.kr (0 depls)",
+ "optimoz.com (0 depls)",
+ "gasnatural.com (0 depls)",
+ "opsmx.io (0 depls)",
+ "ontario.ca (0 depls)",
+ "genusllc.com (0 depls)",
+ "gic.com.sg (0 depls)",
+ "nvidia.com (0 depls)",
+ "goias.gov.br (0 depls)",
+ "nuhs.edu.sg (0 depls)",
+ "ibermutua.es (0 depls)",
+ "navarra.es (0 depls)",
+ "ibs.bg (0 depls)",
+ "jri-america.com (0 depls)",
+ "kb.dk (0 depls)",
+ "kb.vlaanderen.be (0 depls)",
+ "mariadb.com (0 depls)",
+ "keylane.com (0 depls)",
+ "kiratech.it (0 depls)",
+ "knowis.de (0 depls)",
+ "mail.mil (0 depls)",
+ "maif.fr (0 depls)",
+ "komplex-it.dk (0 depls)",
+ "macif.fr (0 depls)",
+ "loc.gov (0 depls)",
+ "lafargeholcim.com (0 depls)",
+ "list.soliton.co.jp (0 depls)",
+ "laposte.fr (0 depls)",
+ "linquest.com (0 depls)",
+ "marriott.com (0 depls)",
+ "jit.team (0 depls)",
+ "idh.ch (0 depls)",
+ "meteoswiss.ch (0 depls)",
+ "ih.jp.nec.cm (0 depls)",
+ "mycom-osi.com (0 depls)",
+ "illumio.com (0 depls)",
+ "inditex.com (0 depls)",
+ "infinkon.de (0 depls)",
+ "infinkon.eu (0 depls)",
+ "integraltech.com.au (0 depls)",
+ "integration.works (0 depls)",
+ "minsegpres.gob.cl (0 depls)",
+ "intela.ai (0 depls)",
+ "intertech.com.tr (0 depls)",
+ "michelin.com (0 depls)",
+ "mhi.co.jp (0 depls)",
+ "itau.com.ar (0 depls)",
+ "metrodemedellin.gov.co (0 depls)",
+ "fiserv.com (0 depls)",
+ "fcc.es (0 depls)",
+ "cloud9ers.com (0 depls)",
+ "daum.net (0 depls)",
+ "ctc-g.co.jp (0 depls)",
+ "sberbank.ru (0 depls)",
+ "cybercom.com (0 depls)",
+ "saagie.com (0 depls)",
+ "s-und-n.de (0 depls)",
+ "rpa.gov.uk (0 depls)",
+ "datastar.com.ar (0 depls)",
+ "regions.com (0 depls)",
+ "p0f.net (0 depls)",
+ "redbridge.se (0 depls)",
+ "delijn.be (0 depls)",
+ "dellead.com (0 depls)",
+ "deloitte.com.au (0 depls)",
+ "raiffeisengroup.ba (0 depls)",
+ "quadras.co.id (0 depls)",
+ "qct.io (0 depls)",
+ "csx.com (0 depls)",
+ "sc.nesic.com (0 depls)",
+ "scanplus.de (0 depls)",
+ "scigames.at (0 depls)",
+ "cloudbees.com (0 depls)",
+ "softwareag.com (0 depls)",
+ "socgen.com (0 depls)",
+ "cnvrg.io (0 depls)",
+ "skatteetaten.no (0 depls)",
+ "combis.hr (0 depls)",
+ "commscope.com (0 depls)",
+ "siriuscom.com (0 depls)",
+ "singtel.com (0 depls)",
+ "comtrade.com (0 depls)",
+ "conova.com (0 depls)",
+ "sina.cn (0 depls)",
+ "contracted.pmi.com (0 depls)",
+ "corp.sysco.com (0 depls)",
+ "si.ibm.com (0 depls)",
+ "deutschepost.de (0 depls)",
+ "puma.com (0 depls)",
+ "publix.com (0 depls)",
+ "embl.de (0 depls)",
+ "employers.com (0 depls)",
+ "endpointclosing.com (0 depls)",
+ "enterprisedb.com (0 depls)",
+ "epam.com (0 depls)",
+ "epiontis.com (0 depls)",
+ "erieinsurance.com (0 depls)",
+ "escenic.com (0 depls)",
+ "etes.de (0 depls)",
+ "pivotal.io (0 depls)",
+ "eurecom.fr (0 depls)",
+ "pheaa.org (0 depls)",
+ "pe.ibm.com (0 depls)",
+ "ext.soprasteria.com (0 depls)",
+ "paysafe.com (0 depls)",
+ "paradigmadigital.com (0 depls)",
+ "pm.nttdata.co.jp (0 depls)",
+ "elostech.cz (0 depls)",
+ "dictu.nl (0 depls)",
+ "proficom.de (0 depls)",
+ "dimensiondata.com (0 depls)",
+ "dir.co.jp (0 depls)",
+ "disney.com (0 depls)",
+ "dnrd.ae (0 depls)",
+ "doc88.com.br (0 depls)",
+ "dorasnaturals.com (0 depls)",
+ "prudential.co.id (0 depls)",
+ "dxc.com (0 depls)",
+ "eagleinvsys.com (0 depls)",
+ "ec.ibm.com (0 depls)",
+ "prophetstor.com (0 depls)",
+ "progressive.com (0 depls)",
+ "programmer.net (0 depls)",
+ "profuturo.com.mx (0 depls)",
+ "elastic.co (0 depls)",
+ "rbi.co.uk (0 depls)"
+ ],
+ "description": "Email Domain",
+ "index": 0,
+ "layout": "IPY_MODEL_09157d99750b4bafb66bd0798147977b",
+ "style": "IPY_MODEL_709bc4e9644741feaee466e95d636dae"
+ }
+ },
+ "765d602b07ed4ed1b07943a34a7f3377": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "768a884a67de4a38907b2da1b1c04204": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "ButtonStyleModel",
+ "state": {}
+ },
+ "778beb97d14945908b32029409e800f1": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "ButtonModel",
+ "state": {
+ "description": "Run Interact",
+ "layout": "IPY_MODEL_92e5009e655d4900bedd95c9f1c96044",
+ "style": "IPY_MODEL_6eca99d81e104736af6b35c1cbc40b4b"
+ }
+ },
+ "783f835a09b649a3887e918f615fb059": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "79470df00f5343e284462a997ab2abd0": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "7b760e3579f2405c8bf6bea792ab1b3f": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "7d4193232f4e4f33a2bd8a872cff8b8c": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DropdownModel",
+ "state": {
+ "_options_labels": [
+ "0",
+ "1",
+ "2",
+ "3",
+ "4",
+ "5",
+ "6",
+ "7",
+ "8",
+ "9",
+ "10",
+ "11",
+ "12",
+ "13",
+ "14",
+ "15",
+ "16",
+ "17",
+ "18",
+ "19",
+ "20",
+ "21",
+ "22",
+ "23"
+ ],
+ "description": "hour",
+ "index": 13,
+ "layout": "IPY_MODEL_85c04177397c402f8d72fb956cf47eb7",
+ "style": "IPY_MODEL_0ea0318e74564234ae0ea1487bf32321"
+ }
+ },
+ "7d5bab431dc74165bdc15f3d87f5c39d": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "800f54e897934fa5836687b93a7eeaa3": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "VBoxModel",
+ "state": {
+ "_dom_classes": [
+ "widget-interact"
+ ],
+ "children": [
+ "IPY_MODEL_4b38b24d64ea42baa7e956c6425aed48",
+ "IPY_MODEL_33ad57d5f8084db6aae6b8e41e041c6c"
+ ],
+ "layout": "IPY_MODEL_e9fab5f63d5b40f998ac866ffd46585a"
+ }
+ },
+ "810d22ad83004279bb239543aab17344": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "ButtonStyleModel",
+ "state": {}
+ },
+ "815719b492d74536b950f146cf238b14": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "SelectMultipleModel",
+ "state": {
+ "_options_labels": [
+ "4.2.0",
+ "4.2.0-0.nightly-2019-08-29-062233",
+ "4.2.0-0.nightly-2019-09-18-114152",
+ "4.2.0-0.nightly-2019-09-23-154647",
+ "4.2.0-0.nightly-2019-09-24-194016",
+ "4.2.0-0.nightly-2019-09-25-233506",
+ "4.2.0-0.nightly-2019-09-26-192831",
+ "4.2.0-0.nightly-2019-10-07-203748",
+ "4.2.0-0.nightly-s390x-2019-12-05-223224",
+ "4.2.0-rc.3",
+ "4.2.1",
+ "4.2.10",
+ "4.2.10-s390x",
+ "4.2.12",
+ "4.2.12-s390x",
+ "4.2.13",
+ "4.2.13-s390x",
+ "4.2.14",
+ "4.2.16",
+ "4.2.18",
+ "4.2.19",
+ "4.2.2",
+ "4.2.4",
+ "4.2.5",
+ "4.2.7",
+ "4.2.8",
+ "4.2.9"
+ ],
+ "description": "Patches",
+ "index": [
+ 0,
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26
+ ],
+ "layout": "IPY_MODEL_09bbd0b44b354d6492c897cce257f506",
+ "rows": 5,
+ "style": "IPY_MODEL_e25cd51d19144481a974d4bc5fe103f4"
+ }
+ },
+ "823cc6a2b4394018b5cd4aefa6898ad9": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "82cf3f7658e9401bb625b1995f95104a": {
+ "model_module": "@jupyter-widgets/output",
+ "model_module_version": "1.0.0",
+ "model_name": "OutputModel",
+ "state": {
+ "layout": "IPY_MODEL_ea2ad544a3084cc7a2285fd6ce16aec4"
+ }
+ },
+ "835755c0f972446a8701492b4c0b1e27": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "VBoxModel",
+ "state": {
+ "_dom_classes": [
+ "widget-interact"
+ ],
+ "children": [
+ "IPY_MODEL_6caea2fab7cd49129c759efbe081eba1",
+ "IPY_MODEL_558010d07d914b5aa82ffafd36ca8350"
+ ],
+ "layout": "IPY_MODEL_4a3eb8e856844f78beb43c0f6b1539b9"
+ }
+ },
+ "843e1778ae984d70906529844e810968": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "85c04177397c402f8d72fb956cf47eb7": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "86d52c205a5844c3a4aef8af38b5148b": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "87ffbcafd0024ab29f6f832a93651349": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "88b75b8be6734912b7bda3750750f6b9": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DropdownModel",
+ "state": {
+ "_options_labels": [
+ "0",
+ "1",
+ "2",
+ "3",
+ "4",
+ "5",
+ "6",
+ "7",
+ "8",
+ "9",
+ "10",
+ "11",
+ "12",
+ "13",
+ "14",
+ "15",
+ "16",
+ "17",
+ "18",
+ "19",
+ "20",
+ "21",
+ "22",
+ "23",
+ "24",
+ "25",
+ "26",
+ "27",
+ "28",
+ "29",
+ "30",
+ "31",
+ "32",
+ "33",
+ "34",
+ "35",
+ "36",
+ "37",
+ "38",
+ "39",
+ "40",
+ "41",
+ "42",
+ "43",
+ "44",
+ "45",
+ "46",
+ "47",
+ "48",
+ "49",
+ "50",
+ "51",
+ "52",
+ "53",
+ "54",
+ "55",
+ "56",
+ "57",
+ "58",
+ "59"
+ ],
+ "description": "second",
+ "index": 0,
+ "layout": "IPY_MODEL_be985ee1e03a43f4a2e52ff4a015baf6",
+ "style": "IPY_MODEL_894d069515cf4c7e9271dafd9e5afb1a"
+ }
+ },
+ "890ebeb79f474ab48011e721d06b93a6": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "894d069515cf4c7e9271dafd9e5afb1a": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "8951fbb8828c461a87ccec8bd2c34c6c": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "897bc201def445cba73fff63d6d5a8f4": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "8ad07def4412411da98eaaefa2cb30ad": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "8b260fc3f2cb4f709147449baff03e14": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DropdownModel",
+ "state": {
+ "_options_labels": [
+ "ALL (5481)",
+ "us.ibm.com (2527 depls)",
+ "ibm.com (120 depls)",
+ "gmail.com (113 depls)",
+ "redhat.com (68 depls)",
+ "cn.ibm.com (50 depls)",
+ "hpe.com (48 depls)",
+ "uk.ibm.com (42 depls)",
+ "in.ibm.com (39 depls)",
+ "fr.ibm.com (30 depls)",
+ "ie.ibm.com (30 depls)",
+ "de.ibm.com (23 depls)",
+ "jp.ibm.com (20 depls)",
+ "hcl.com (17 depls)",
+ "ca.ibm.com (16 depls)",
+ "secureworks.com (16 depls)",
+ "accenture.com (15 depls)",
+ "capgroup.com (13 depls)",
+ "intel.com (13 depls)",
+ "dell.com (13 depls)",
+ "prophetstor.com (13 depls)",
+ "nokia.com (12 depls)",
+ "cloudera.com (12 depls)",
+ "twistlock.com (12 depls)",
+ "cisco.com (11 depls)",
+ "hotmail.com (11 depls)",
+ "br.ibm.com (11 depls)",
+ "o2its.cz (11 depls)",
+ "bell.ca (10 depls)",
+ "qq.com (10 depls)",
+ "atos.net (10 depls)",
+ "brreg.no (9 depls)",
+ "tractorsupply.com (9 depls)",
+ "delta.com (9 depls)",
+ "landregistry.gov.uk (9 depls)",
+ "anthem.com (9 depls)",
+ "pl.ibm.com (9 depls)",
+ "il.ibm.com (9 depls)",
+ "dl.jp.fujitsu.com (9 depls)",
+ "worldpay.com (8 depls)",
+ "santander.com.ar (8 depls)",
+ "sas.com (8 depls)",
+ "cern.ch (8 depls)",
+ "ford.com (8 depls)",
+ "sparebank1.no (8 depls)",
+ "ukcloud.com (8 depls)",
+ "t-systems.com (8 depls)",
+ "ticket.noris.net (8 depls)",
+ "f5.com (8 depls)",
+ "discover.com (8 depls)",
+ "tr.ibm.com (7 depls)",
+ "crossvale.com (7 depls)",
+ "mon-tier.com (7 depls)",
+ "rbc.com (7 depls)",
+ "jndata.dk (7 depls)",
+ "microsoft.com (7 depls)",
+ "netone.co.jp (7 depls)",
+ "regions.com (7 depls)",
+ "telefonica.com (7 depls)",
+ "citizensbank.com (7 depls)",
+ "soprasteria.com (6 depls)",
+ "nec.com (6 depls)",
+ "elkarlan.onmicrosoft.com (6 depls)",
+ "linux.vnet.ibm.com (6 depls)",
+ "tigera.io (6 depls)",
+ "trustmarkbenefits.com (6 depls)",
+ "cscinfo.com (6 depls)",
+ "deutsche-boerse.com (6 depls)",
+ "capgemini.com (6 depls)",
+ "cz.ibm.com (6 depls)",
+ "es.ibm.com (6 depls)",
+ "hitachi.com (6 depls)",
+ "keylane.com (6 depls)",
+ "axa.com (6 depls)",
+ "orange.com (6 depls)",
+ "etisalat.ae (5 depls)",
+ "qct.io (5 depls)",
+ "microfocus.com (5 depls)",
+ "tk.de (5 depls)",
+ "debeka.de (5 depls)",
+ "consol.de (5 depls)",
+ "dynatrace.com (5 depls)",
+ "dxc.com (5 depls)",
+ "nl.ibm.com (5 depls)",
+ "nectechnologies.in (5 depls)",
+ "ctc-g.co.jp (5 depls)",
+ "arbetsformedlingen.se (5 depls)",
+ "ascendcorp.com (5 depls)",
+ "rct.co.il (5 depls)",
+ "ais.co.th (5 depls)",
+ "cigna.com (5 depls)",
+ "f-i.de (5 depls)",
+ "plus.pl (5 depls)",
+ "k8s.jp.nec.com (5 depls)",
+ "wipro.com (5 depls)",
+ "it.ibm.com (5 depls)",
+ "vmware.com (5 depls)",
+ "sbb.ch (5 depls)",
+ "alaskaair.com (5 depls)",
+ "lmco.com (5 depls)",
+ "lenovo.com (5 depls)",
+ "au1.ibm.com (5 depls)",
+ "tipsport.cz (4 depls)",
+ "volkswagen.de (4 depls)",
+ "ao.uscourts.gov (4 depls)",
+ "laposte.fr (4 depls)",
+ "bom.gov.au (4 depls)",
+ "elcorteingles.es (4 depls)",
+ "sg.ibm.com (4 depls)",
+ "ericsson.com (4 depls)",
+ "anz.com (4 depls)",
+ "blood.ca (4 depls)",
+ "meteorcomm.com (4 depls)",
+ "za.ibm.com (4 depls)",
+ "amdocs.com (4 depls)",
+ "enterprisedb.com (4 depls)",
+ "wuerth-it.com (4 depls)",
+ "bitmarck.de (4 depls)",
+ "kocsistem.com.tr (4 depls)",
+ "thy.com (4 depls)",
+ "achmea.nl (4 depls)",
+ "bankmandiri.co.id (4 depls)",
+ "asseco.pl (4 depls)",
+ "kolon.com (4 depls)",
+ "nationwide.co.uk (4 depls)",
+ "vodafone.com (4 depls)",
+ "solarflare.com (4 depls)",
+ "ltkalmar.se (4 depls)",
+ "mskcc.org (4 depls)",
+ "lsd.co.za (4 depls)",
+ "att.com (4 depls)",
+ "corp.vodafone.es (4 depls)",
+ "techdata.com (4 depls)",
+ "msccruises.com (4 depls)",
+ "crif.com (4 depls)",
+ "sap.com (4 depls)",
+ "cirb.brussels (4 depls)",
+ "omnitracs.com (4 depls)",
+ "nike.com (4 depls)",
+ "hydro.qc.ca (4 depls)",
+ "skatteetaten.no (4 depls)",
+ "opennaru.com (4 depls)",
+ "cslbehring.com (4 depls)",
+ "cucbc.com (4 depls)",
+ "experian.com (4 depls)",
+ "saq.qc.ca (4 depls)",
+ "transport.nsw.gov.au (4 depls)",
+ "standardbank.co.za (4 depls)",
+ "honeywell.com (4 depls)",
+ "garantibbva.com.tr (4 depls)",
+ "adcubum.com (4 depls)",
+ "canada.ca (4 depls)",
+ "teco.com.ar (4 depls)",
+ "videotron.com (4 depls)",
+ "cyberark.com (4 depls)",
+ "mitre.org (3 depls)",
+ "aricent.com (3 depls)",
+ "minsait.com (3 depls)",
+ "mtb.com (3 depls)",
+ "mii.co.id (3 depls)",
+ "accenturefederal.com (3 depls)",
+ "pentalink.co.kr (3 depls)",
+ "gm.com (3 depls)",
+ "sk.com (3 depls)",
+ "sdx.com (3 depls)",
+ "seb.se (3 depls)",
+ "linuxpolska.pl (3 depls)",
+ "list.orange.com (3 depls)",
+ "kb.vlaanderen.be (3 depls)",
+ "kasten.io (3 depls)",
+ "adlere.fr (3 depls)",
+ "jp.fujitsu.com (3 depls)",
+ "jet.su (3 depls)",
+ "siemens.com (3 depls)",
+ "jazz.com.pk (3 depls)",
+ "itau.com.ar (3 depls)",
+ "it.mos.ru (3 depls)",
+ "ipi.ch (3 depls)",
+ "michigan.gov (3 depls)",
+ "apis-it.hr (3 depls)",
+ "inaservice.com.cn (3 depls)",
+ "iecisa.com (3 depls)",
+ "mwam.com (3 depls)",
+ "southernco.com (3 depls)",
+ "mail.ru (3 depls)",
+ "hu.ibm.com (3 depls)",
+ "hotpotatoes.nl (3 depls)",
+ "ru.ibm.com (3 depls)",
+ "helsinki.fi (3 depls)",
+ "mcb.mu (3 depls)",
+ "stjude.org (3 depls)",
+ "americansystems.com (3 depls)",
+ "macif.fr (3 depls)",
+ "netapp.com (3 depls)",
+ "regionorebrolan.se (3 depls)",
+ "optus.com.au (3 depls)",
+ "btpnsyariah.com (3 depls)",
+ "portoseguro.com.br (3 depls)",
+ "virginia.edu (3 depls)",
+ "portworx.com (3 depls)",
+ "cargo-partner.com (3 depls)",
+ "onespan.com (3 depls)",
+ "va.gov (3 depls)",
+ "cl.ibm.com (3 depls)",
+ "ocbcnisp.com (3 depls)",
+ "produban.com (3 depls)",
+ "nttdata.com (3 depls)",
+ "feratel.at (3 depls)",
+ "nri.co.jp (3 depls)",
+ "unicredit.eu (3 depls)",
+ "norsk-tipping.no (3 depls)",
+ "uk.mizuho-sc.com (3 depls)",
+ "criticaltechworks.com (3 depls)",
+ "btpn.com (3 depls)",
+ "brb.com.br (3 depls)",
+ "ua.ibm.com (3 depls)",
+ "bouyguestelecom.fr (3 depls)",
+ "pbz.hr (3 depls)",
+ "bandwidth.com (3 depls)",
+ "payback.net (3 depls)",
+ "zenuity.com (3 depls)",
+ "paloaltonetworks.com (3 depls)",
+ "outtherelabs.com (3 depls)",
+ "bcb.gov.br (3 depls)",
+ "pheaa.org (3 depls)",
+ "126.com (3 depls)",
+ "airbus.com (3 depls)",
+ "wwt.com (3 depls)",
+ "wwpdl.vnet.ibm.com (3 depls)",
+ "ornl.gov (3 depls)",
+ "origo.is (3 depls)",
+ "wellmark.com (3 depls)",
+ "163.com (3 depls)",
+ "bnz.co.nz (3 depls)",
+ "cronos.be (3 depls)",
+ "commvault.com (3 depls)",
+ "aetna.com (3 depls)",
+ "es.logicalis.com (3 depls)",
+ "dnrd.ae (3 depls)",
+ "tibco.com (3 depls)",
+ "schiphol.nl (3 depls)",
+ "dti.ulaval.ca (3 depls)",
+ "rbs-services.com (3 depls)",
+ "emirates.com (3 depls)",
+ "rechtspraak.nl (3 depls)",
+ "asia.ccb.com (3 depls)",
+ "deloitte.de (3 depls)",
+ "teb.com.tr (3 depls)",
+ "team.telstra.com (3 depls)",
+ "tds.fujitsu.com (3 depls)",
+ "tbc.sa (3 depls)",
+ "redbridge.se (3 depls)",
+ "redislabs.com (3 depls)",
+ "faa.gov (3 depls)",
+ "tine.no (3 depls)",
+ "netorek.fi (3 depls)",
+ "anfccorp.com (3 depls)",
+ "transfond.ro (3 depls)",
+ "de.bosch.com (3 depls)",
+ "csx.com (3 depls)",
+ "customs.bg (3 depls)",
+ "niandc.co.jp (3 depls)",
+ "trilio.io (3 depls)",
+ "travelers.com (3 depls)",
+ "amadeus.com (2 depls)",
+ "mainz.ibm.com (2 depls)",
+ "nrb.be (2 depls)",
+ "npo.nl (2 depls)",
+ "outlook.com (2 depls)",
+ "mont.com (2 depls)",
+ "liquidit.nz (2 depls)",
+ "ngerntidlor.com (2 depls)",
+ "nbch.com.ar (2 depls)",
+ "nist.gov (2 depls)",
+ "li9.com (2 depls)",
+ "pbtech.net.br (2 depls)",
+ "navitus.com (2 depls)",
+ "lists.psi.ch (2 depls)",
+ "materna.de (2 depls)",
+ "llnl.gov (2 depls)",
+ "alliander.com (2 depls)",
+ "nyu.edu (2 depls)",
+ "anadoluefes.com (2 depls)",
+ "oncor.com (2 depls)",
+ "aliyun.com (2 depls)",
+ "ontario.ca (2 depls)",
+ "openline.nl (2 depls)",
+ "neuvector.com (2 depls)",
+ "netzlink.com (2 depls)",
+ "meteoswiss.ch (2 depls)",
+ "live.com (2 depls)",
+ "maif.fr (2 depls)",
+ "opsta.co.th (2 depls)",
+ "andesdigital.com (2 depls)",
+ "lordabbett.com (2 depls)",
+ "orange.fr (2 depls)",
+ "loto-quebec.com (2 depls)",
+ "nvidia.com (2 depls)",
+ "original.com.br (2 depls)",
+ "alcatel-lucent.com (2 depls)",
+ "kemkes.go.id (2 depls)",
+ "lansforsakringar.se (2 depls)",
+ "cloudbees.com (2 depls)",
+ "cn.fujitsu.com (2 depls)",
+ "cognizant.com (2 depls)",
+ "comarch.pl (2 depls)",
+ "combis.hr (2 depls)",
+ "atradius.com (2 depls)",
+ "comp.com.pl (2 depls)",
+ "confluent.io (2 depls)",
+ "atpco.net (2 depls)",
+ "consorsbank.de (2 depls)",
+ "copergmps.it (2 depls)",
+ "covis.de (2 depls)",
+ "cra-arc.gc.ca (2 depls)",
+ "crediteurope.nl (2 depls)",
+ "crown.com (2 depls)",
+ "csaa.com (2 depls)",
+ "daa.ie (2 depls)",
+ "dbs.com (2 depls)",
+ "delijn.be (2 depls)",
+ "deloitte.com (2 depls)",
+ "dentisoft.com (2 depls)",
+ "det.nsw.edu.au (2 depls)",
+ "deutschepost.de (2 depls)",
+ "devoteam.com (2 depls)",
+ "diamanti.com (2 depls)",
+ "dontouch.ch (2 depls)",
+ "cloudwerkstatt.com (2 depls)",
+ "claro.com.ar (2 depls)",
+ "dxcas.com (2 depls)",
+ "chicos.com (2 depls)",
+ "bancamarch.es (2 depls)",
+ "bancocredicoop.coop (2 depls)",
+ "banval.sba.com.ar (2 depls)",
+ "barceloviajes.com (2 depls)",
+ "b1-systems.de (2 depls)",
+ "bcx.co.za (2 depls)",
+ "be.ibm.com (2 depls)",
+ "bechtle.com (2 depls)",
+ "axians.de (2 depls)",
+ "bldr.com (2 depls)",
+ "bls.ch (2 depls)",
+ "blum.com (2 depls)",
+ "boeing.com (2 depls)",
+ "bps-suisse.ch (2 depls)",
+ "brighthousefinancial.com (2 depls)",
+ "broadcom.com (2 depls)",
+ "bt.com (2 depls)",
+ "buenosaires.gob.ar (2 depls)",
+ "bv.com.br (2 depls)",
+ "c3.ai (2 depls)",
+ "avisbudget.com (2 depls)",
+ "casa-systems.com (2 depls)",
+ "catalysts.cc (2 depls)",
+ "cegeka.be (2 depls)",
+ "aurotechcorp.com (2 depls)",
+ "doosan.com (2 depls)",
+ "eaton.com (2 depls)",
+ "krash.be (2 depls)",
+ "aquasec.com (2 depls)",
+ "helvetia.ch (2 depls)",
+ "hk1.ibm.com (2 depls)",
+ "hma.honda.com (2 depls)",
+ "hopitalvs.ch (2 depls)",
+ "i-t-m.com (2 depls)",
+ "ibermutua.es (2 depls)",
+ "icbc.com.ar (2 depls)",
+ "ikea.com (2 depls)",
+ "illumio.com (2 depls)",
+ "infinkon.de (2 depls)",
+ "infosys.com (2 depls)",
+ "ing.com (2 depls)",
+ "inspur.com (2 depls)",
+ "intertech.com.tr (2 depls)",
+ "intervalintl.com (2 depls)",
+ "intesasanpaolo.com (2 depls)",
+ "aoins.com (2 depls)",
+ "its4u.lu (2 depls)",
+ "jri-america.com (2 depls)",
+ "kapsch.net (2 depls)",
+ "kela.fi (2 depls)",
+ "kohls.com (2 depls)",
+ "konsalt.com.tr (2 depls)",
+ "korian.fr (2 depls)",
+ "kr.ibm.com (2 depls)",
+ "healthpartners.com (2 depls)",
+ "h-da.de (2 depls)",
+ "egcp.com (2 depls)",
+ "gu.se (2 depls)",
+ "elostech.cz (2 depls)",
+ "employers.com (2 depls)",
+ "endpointclosing.com (2 depls)",
+ "ergo-life.cn (2 depls)",
+ "exidelife.in (2 depls)",
+ "express-scripts.com (2 depls)",
+ "extraordy.com (2 depls)",
+ "extremedata.com.tw (2 depls)",
+ "ashghal.gov.qa (2 depls)",
+ "fintechgroup.com (2 depls)",
+ "firstrepublic.com (2 depls)",
+ "fitit.be (2 depls)",
+ "fnb.co.za (2 depls)",
+ "ars.de (2 depls)",
+ "fostermoore.com (2 depls)",
+ "gazprom-neft.ru (2 depls)",
+ "arctiq.ca (2 depls)",
+ "gen-e.com (2 depls)",
+ "genusllc.com (2 depls)",
+ "arburg.com (2 depls)",
+ "pe.ibm.com (2 depls)",
+ "global.ntt (2 depls)",
+ "globalrelay.net (2 depls)",
+ "grainger.com (2 depls)",
+ "grupo-pinero.com (2 depls)",
+ "gire.com (2 depls)",
+ "anadolusigorta.com.tr (2 depls)",
+ "schneider.com (2 depls)",
+ "utk.edu (2 depls)",
+ "slb.com (2 depls)",
+ "aditinet.it (2 depls)",
+ "rohde-schwarz.com (2 depls)",
+ "us.imshealth.com (2 depls)",
+ "ro.ibm.com (2 depls)",
+ "tetrate.io (2 depls)",
+ "tep.com (2 depls)",
+ "usda.gov (2 depls)",
+ "rise-world.com (2 depls)",
+ "softec.sk (2 depls)",
+ "telus.com (2 depls)",
+ "adfinis-sygroup.ch (2 depls)",
+ "3-s.at (2 depls)",
+ "valensas.com (2 depls)",
+ "thehartford.com (2 depls)",
+ "teliacompany.com (2 depls)",
+ "telenetgroup.be (2 depls)",
+ "telekom.de (2 depls)",
+ "sos.eu (2 depls)",
+ "verizonmedia.com (2 depls)",
+ "spark.co.nz (2 depls)",
+ "spectrumhealth.org (2 depls)",
+ "vineti.com (2 depls)",
+ "visana.ch (2 depls)",
+ "purestorage.com (2 depls)",
+ "systex.com.hk (2 depls)",
+ "syspower.com.tw (2 depls)",
+ "sysage.com.tw (2 depls)",
+ "ups.com (2 depls)",
+ "rs.ibm.com (2 depls)",
+ "progressive.com (2 depls)",
+ "sbm.com.sa (2 depls)",
+ "trace3.com (2 depls)",
+ "sekom.com.tr (2 depls)",
+ "turbonomic.com (2 depls)",
+ "turkcell.com.tr (2 depls)",
+ "tohmatsu.co.jp (2 depls)",
+ "schufa.de (2 depls)",
+ "scholastic.com (2 depls)",
+ "senduvu.com (2 depls)",
+ "tw.ibm.com (2 depls)",
+ "scanplus.de (2 depls)",
+ "aareon.com (2 depls)",
+ "tmrnd.com.my (2 depls)",
+ "tmbbank.com (2 depls)",
+ "sanofi-aventis.com (2 depls)",
+ "rt.ru (2 depls)",
+ "uk.fujitsu.com (2 depls)",
+ "si.ibm.com (2 depls)",
+ "abanca.com (2 depls)",
+ "samsung.com (2 depls)",
+ "ulx.hu (2 depls)",
+ "advance-auto.com (2 depls)",
+ "umb.ch (2 depls)",
+ "safaricom.co.ke (2 depls)",
+ "sabancidx.com (2 depls)",
+ "tinubu.com (2 depls)",
+ "s-itsolutions.at (2 depls)",
+ "tiaa-cref.org (2 depls)",
+ "rtlabs.ru (2 depls)",
+ "vsp.com (2 depls)",
+ "reisebank.de (2 depls)",
+ "aexp.com (2 depls)",
+ "stoiximan.gr (2 depls)",
+ "startx.fr (2 depls)",
+ "stat.gouv.qc.ca (2 depls)",
+ "syntegrity.com.au (2 depls)",
+ "syncsort.com (2 depls)",
+ "swissmedical.com.ar (2 depls)",
+ "acp.at (2 depls)",
+ "pixar.com (2 depls)",
+ "piros.be (2 depls)",
+ "14west.us (2 depls)",
+ "starhub.com (2 depls)",
+ "yahoo.com (2 depls)",
+ "swedbank.se (2 depls)",
+ "pfandbriefbank.com (2 depls)",
+ "swdeca.com (2 depls)",
+ "pf.gov.br (2 depls)",
+ "yipintsoi.com (2 depls)",
+ "yoox.com (2 depls)",
+ "sv-informatik.de (2 depls)",
+ "webcomm.com.tw (2 depls)",
+ "ww-informatik.de (2 depls)",
+ "syr.edu (2 depls)",
+ "example.com (1 depls)",
+ "extrasys.it (1 depls)",
+ "gasnatural.com (1 depls)",
+ "taos.com (1 depls)",
+ "dhl.com (1 depls)",
+ "swifttrans.com (1 depls)",
+ "dhconsulting.ch (1 depls)",
+ "dha.gov.ae (1 depls)",
+ "dewa.gov.ae (1 depls)",
+ "tjce.jus.br (1 depls)",
+ "gblsys.com (1 depls)",
+ "t.ht.hr (1 depls)",
+ "gbmme.com (1 depls)",
+ "gd-ms.com (1 depls)",
+ "tjsys.co.jp (1 depls)",
+ "swisscom.com (1 depls)",
+ "dict.gov.ph (1 depls)",
+ "deutsche-factoring.de (1 depls)",
+ "ext.soprasteria.com (1 depls)",
+ "dipres.gob.cl (1 depls)",
+ "tiri.li (1 depls)",
+ "asset-metrix.com (1 depls)",
+ "gantek.com (1 depls)",
+ "dlt.com (1 depls)",
+ "tier2consulting.com (1 depls)",
+ "ext.ec.europa.eu (1 depls)",
+ "docupace.com (1 depls)",
+ "dollargeneral.com (1 depls)",
+ "thinksis.com (1 depls)",
+ "dpf.jp.nec.com (1 depls)",
+ "gaminginnovationgroup.com (1 depls)",
+ "gabrielli.info (1 depls)",
+ "deutschebahn.com (1 depls)",
+ "tkhinnovations.com (1 depls)",
+ "ewerk.com (1 depls)",
+ "tre.se (1 depls)",
+ "archmi.com (1 depls)",
+ "defacto.com.tr (1 depls)",
+ "decsoft.com.pl (1 depls)",
+ "tpg.ch (1 depls)",
+ "aceinfosolutions.com (1 depls)",
+ "supcom.tn (1 depls)",
+ "ddti.net (1 depls)",
+ "exxonmobil.com (1 depls)",
+ "triliodata.com (1 depls)",
+ "datto.com (1 depls)",
+ "daticloud.com (1 depls)",
+ "datatrend.com (1 depls)",
+ "datastar.com.ar (1 depls)",
+ "at.seg-social.es (1 depls)",
+ "geodis.com (1 depls)",
+ "a1.bg (1 depls)",
+ "sys.aok.de (1 depls)",
+ "fcagroup.com (1 depls)",
+ "fabasoft.com (1 depls)",
+ "dellead.com (1 depls)",
+ "dellteam.com (1 depls)",
+ "arcor.de (1 depls)",
+ "deloitte.co.nz (1 depls)",
+ "sysdig.com (1 depls)",
+ "tnb.com.my (1 depls)",
+ "generali.com (1 depls)",
+ "deloitte.com.au (1 depls)",
+ "asw.com.hk (1 depls)",
+ "sva.de (1 depls)",
+ "fi.ibm.com (1 depls)",
+ "asfinag.at (1 depls)",
+ "dspace.de (1 depls)",
+ "dsv.com (1 depls)",
+ "g-able.com (1 depls)",
+ "firstdata.com (1 depls)",
+ "telecomitalia.it (1 depls)",
+ "erieinsurance.com (1 depls)",
+ "fisglobal.com (1 depls)",
+ "tcmb.gov.tr (1 depls)",
+ "ereinsure.com (1 depls)",
+ "epiontis.com (1 depls)",
+ "daocloud.io (1 depls)",
+ "thinkahead.com (1 depls)",
+ "enonic.com (1 depls)",
+ "exisoft.com.ar (1 depls)",
+ "fixedmea.com (1 depls)",
+ "enfogroup.com (1 depls)",
+ "enea.com (1 depls)",
+ "flhealth.gov (1 depls)",
+ "academia-online.org (1 depls)",
+ "escenic.com (1 depls)",
+ "esri.com (1 depls)",
+ "exatetechnology.com (1 depls)",
+ "estafet.com (1 depls)",
+ "asl.com.hk (1 depls)",
+ "etechsystem.co.kr (1 depls)",
+ "etele.com.ua (1 depls)",
+ "techmahindra.com (1 depls)",
+ "fiserv.com (1 depls)",
+ "eurecom.fr (1 depls)",
+ "eurobank.gr (1 depls)",
+ "eurobet.it (1 depls)",
+ "firstmarblehead.com (1 depls)",
+ "everbank.com (1 depls)",
+ "acceleris.ch (1 depls)",
+ "syone.com (1 depls)",
+ "teliacygate.fi (1 depls)",
+ "telkomsel.co.id (1 depls)",
+ "flowfactor.be (1 depls)",
+ "fronius.com (1 depls)",
+ "abaxo.co.uk (1 depls)",
+ "asseco-see.rs (1 depls)",
+ "dvbern.ch (1 depls)",
+ "arrow.com (1 depls)",
+ "futuregen.co.kr (1 depls)",
+ "thalesgroup.com (1 depls)",
+ "fujitsu.com (1 depls)",
+ "abinitio.com (1 depls)",
+ "fedins.com (1 depls)",
+ "eagleinvsys.com (1 depls)",
+ "asseco-see.com (1 depls)",
+ "teuto.net (1 depls)",
+ "ebox.ca (1 depls)",
+ "ec.europa.eu (1 depls)",
+ "ec.ibm.com (1 depls)",
+ "synopsys.com (1 depls)",
+ "free.fr (1 depls)",
+ "edgeverve.com (1 depls)",
+ "efinance.com.eg (1 depls)",
+ "fr.scc.com (1 depls)",
+ "tasgroup.it (1 depls)",
+ "eigentech.com (1 depls)",
+ "aspenmesh.io (1 depls)",
+ "teranet.ca (1 depls)",
+ "swisstph.ch (1 depls)",
+ "sympany.ch (1 depls)",
+ "tempest.sk (1 depls)",
+ "email.unc.edu (1 depls)",
+ "syncrasy.io (1 depls)",
+ "tav.aero (1 depls)",
+ "darkmatter.ae (1 depls)",
+ "pecunpay.es (1 depls)",
+ "danskecommodities.com (1 depls)",
+ "varmeego.com (1 depls)",
+ "vlinkinfo.com (1 depls)",
+ "bu.edu (1 depls)",
+ "btrl.ro (1 depls)",
+ "vn.ibm.com (1 depls)",
+ "vodafoneziggo.com (1 depls)",
+ "btp.com.br (1 depls)",
+ "avl.com (1 depls)",
+ "volvocars.com (1 depls)",
+ "vp.dk (1 depls)",
+ "vps.no (1 depls)",
+ "vrtx.com (1 depls)",
+ "vshn.ch (1 depls)",
+ "vtb.ru (1 depls)",
+ "bps.gub.uy (1 depls)",
+ "vub.sk (1 depls)",
+ "bpba.com.ar (1 depls)",
+ "bpa.bund.de (1 depls)",
+ "vw.com (1 depls)",
+ "wanadoo.fr (1 depls)",
+ "vkb.de (1 depls)",
+ "visma.com (1 depls)",
+ "c3iot.com (1 depls)",
+ "vfunction.com (1 depls)",
+ "2nwsl.jp.nec.com (1 depls)",
+ "cepsa.com (1 depls)",
+ "verifone.com (1 depls)",
+ "cedrusco.com (1 depls)",
+ "ccc.jp.nec.com (1 depls)",
+ "cbc-companies.com (1 depls)",
+ "verizon.com (1 depls)",
+ "catalogicsoftware.com (1 depls)",
+ "vhi.ie (1 depls)",
+ "cablelabs.com (1 depls)",
+ "viessmann.com (1 depls)",
+ "avaloq.com (1 depls)",
+ "campbell.com (1 depls)",
+ "camelland.com (1 depls)",
+ "cam-sys.net (1 depls)",
+ "caleres.com (1 depls)",
+ "caffeine.tv (1 depls)",
+ "cablevision.com.ar (1 depls)",
+ "axcelinno.io (1 depls)",
+ "bokf.com (1 depls)",
+ "weave.works (1 depls)",
+ "bcbsma.com (1 depls)",
+ "berlin-creative.de (1 depls)",
+ "benefit-one.co.jp (1 depls)",
+ "bendigobank.com.au (1 depls)",
+ "bellintegrator.com (1 depls)",
+ "wx.jp.nec.com (1 depls)",
+ "beans.com.my (1 depls)",
+ "yandex.com (1 depls)",
+ "bcbssc.com (1 depls)",
+ "bcbsfl.com (1 depls)",
+ "bestbuy.com (1 depls)",
+ "yandex.ru (1 depls)",
+ "bca.co.id (1 depls)",
+ "baw.de (1 depls)",
+ "zero2ai.io (1 depls)",
+ "zerto.com (1 depls)",
+ "zettaset.com (1 depls)",
+ "zh.nes.jp.nec.com (1 depls)",
+ "zivra.com (1 depls)",
+ "bertelsmann.de (1 depls)",
+ "bet365.com (1 depls)",
+ "bnsf.com (1 depls)",
+ "wellcare.com (1 depls)",
+ "axians.com (1 depls)",
+ "bmw.de (1 depls)",
+ "bmo.com (1 depls)",
+ "bmc.com (1 depls)",
+ "websam.jp.nec.com (1 depls)",
+ "bluestembrands.com (1 depls)",
+ "blueair.aero (1 depls)",
+ "bls.gov (1 depls)",
+ "westmonroepartners.com (1 depls)",
+ "bevalex.by (1 depls)",
+ "bliex.com (1 depls)",
+ "wimionline.be (1 depls)",
+ "worldline.com (1 depls)",
+ "bl.ch (1 depls)",
+ "bkfs.com (1 depls)",
+ "bitbull.ch (1 depls)",
+ "birevim.com.tr (1 depls)",
+ "bhp.com (1 depls)",
+ "cetelem.com.br (1 depls)",
+ "cfh.sk (1 depls)",
+ "danskebank.lt (1 depls)",
+ "cgi.com (1 depls)",
+ "uftwf.org (1 depls)",
+ "ugent.be (1 depls)",
+ "7p-group.com (1 depls)",
+ "atix.de (1 depls)",
+ "uipath.com (1 depls)",
+ "creditone.com (1 depls)",
+ "uk.pgds.com (1 depls)",
+ "cpcc.edu (1 depls)",
+ "ulb.ac.be (1 depls)",
+ "couchbase.com (1 depls)",
+ "ultra.com.br (1 depls)",
+ "corning.com (1 depls)",
+ "copel.com (1 depls)",
+ "contracted.pmi.com (1 depls)",
+ "unam.mx (1 depls)",
+ "unbelievable-machine.com (1 depls)",
+ "conservador.cl (1 depls)",
+ "conocophillips.com (1 depls)",
+ "unisystems.gr (1 depls)",
+ "u-s-p.ch (1 depls)",
+ "croz.net (1 depls)",
+ "crunchydata.com (1 depls)",
+ "tunisietelecom.tn (1 depls)",
+ "tsisyk.com (1 depls)",
+ "tubitak.gov.tr (1 depls)",
+ "cyccustomshop.com (1 depls)",
+ "ativainvestimentos.com.br (1 depls)",
+ "tudelft.nl (1 depls)",
+ "tugo.com (1 depls)",
+ "cusa.canon.com (1 depls)",
+ "cumulus-systems.com (1 depls)",
+ "cu.co.th (1 depls)",
+ "crv4all.com (1 depls)",
+ "ctc-g.com.sg (1 depls)",
+ "ctc-g.com.my (1 depls)",
+ "cspq.gouv.qc.ca (1 depls)",
+ "cspire.com (1 depls)",
+ "tutanota.com (1 depls)",
+ "csiltd.co.uk (1 depls)",
+ "gizasystems.com (1 depls)",
+ "tuwien.ac.at (1 depls)",
+ "comtegra.pl (1 depls)",
+ "computaris.com (1 depls)",
+ "computacenter.com (1 depls)",
+ "usfalcon.com (1 depls)",
+ "cloudnesil.com (1 depls)",
+ "cloudgensys.com (1 depls)",
+ "cloudfitsoftware.com (1 depls)",
+ "usaa.com (1 depls)",
+ "cloud9ers.com (1 depls)",
+ "cloud-bigdata.net (1 depls)",
+ "clearstream.com (1 depls)",
+ "clearlake.ibm.com (1 depls)",
+ "clarite.pl (1 depls)",
+ "cmbchina.com (1 depls)",
+ "uspto.gov (1 depls)",
+ "citictel-cpc.com (1 depls)",
+ "citec.com.au (1 depls)",
+ "vandergiesen.eu (1 depls)",
+ "cibc.com (1 depls)",
+ "chrissandrini.ch (1 depls)",
+ "varegos.com (1 depls)",
+ "chem.byu.edu (1 depls)",
+ "us.logicalis.com (1 depls)",
+ "audemarspiguet.com (1 depls)",
+ "compro.com.tr (1 depls)",
+ "comas.co.kr (1 depls)",
+ "compatibl.com (1 depls)",
+ "united.com (1 depls)",
+ "univie.ac.at (1 depls)",
+ "upc.ch (1 depls)",
+ "commerzbank.com (1 depls)",
+ "upenn.edu (1 depls)",
+ "comcast.net (1 depls)",
+ "upmc.edu (1 depls)",
+ "comafi.com.ar (1 depls)",
+ "us.af.mil (1 depls)",
+ "coinscrap.com (1 depls)",
+ "cohesity.com (1 depls)",
+ "ural.rt.ru (1 depls)",
+ "cognitivescale.com (1 depls)",
+ "cognitionfoundry.com (1 depls)",
+ "urr.se (1 depls)",
+ "cnsys.bg (1 depls)",
+ "cnr.it (1 depls)",
+ "sumerge.com (1 depls)",
+ "gravis.bg (1 depls)",
+ "globacap.com (1 depls)",
+ "mprj.mp.br (1 depls)",
+ "moodys.com (1 depls)",
+ "advent.com (1 depls)",
+ "monex.com.mx (1 depls)",
+ "rku-it.de (1 depls)",
+ "rnp.br (1 depls)",
+ "mintic.gov.co (1 depls)",
+ "mindgate.in (1 depls)",
+ "robak.at (1 depls)",
+ "rockplace.co.kr (1 depls)",
+ "rogers.com (1 depls)",
+ "mhi.co.jp (1 depls)",
+ "mfec.co.th (1 depls)",
+ "rosbank.ru (1 depls)",
+ "metlife.com (1 depls)",
+ "royalcyber.com (1 depls)",
+ "rpa.gov.uk (1 depls)",
+ "metanet.co.kr (1 depls)",
+ "meridianit.co.uk (1 depls)",
+ "mendix.com (1 depls)",
+ "morganstanley.com (1 depls)",
+ "msg.group (1 depls)",
+ "alpha.gr (1 depls)",
+ "rhb.ch (1 depls)",
+ "ndb.bg (1 depls)",
+ "ncr.com (1 depls)",
+ "red8.com (1 depls)",
+ "nbs.sk (1 depls)",
+ "redbeemedia.com (1 depls)",
+ "reged.com (1 depls)",
+ "naver.com (1 depls)",
+ "regionh.dk (1 depls)",
+ "n11.com (1 depls)",
+ "mx1.ibm.com (1 depls)",
+ "mutua.es (1 depls)",
+ "musala.com (1 depls)",
+ "reply.it (1 depls)",
+ "amdocs.onmicrosoft.com (1 depls)",
+ "multapplied.net (1 depls)",
+ "muf.co.id (1 depls)",
+ "mtel.ba (1 depls)",
+ "resbank.co.za (1 depls)",
+ "msn.com (1 depls)",
+ "medsolv.com (1 depls)",
+ "mednet.ucla.edu (1 depls)",
+ "ampsight.com (1 depls)",
+ "medirect.com.mt (1 depls)",
+ "loblaw.ca (1 depls)",
+ "sancorsalud.com.ar (1 depls)",
+ "sanlam.co.za (1 depls)",
+ "sayers.com (1 depls)",
+ "sb.cl (1 depls)",
+ "list.soliton.co.jp (1 depls)",
+ "sberbank.hr (1 depls)",
+ "adp.com (1 depls)",
+ "scalefree.co.jp (1 depls)",
+ "anexia-it.com (1 depls)",
+ "lightning-it.de (1 depls)",
+ "libertyglobal.com (1 depls)",
+ "lgcns.com (1 depls)",
+ "lfst.bayern.de (1 depls)",
+ "admiralty.io (1 depls)",
+ "leep.app (1 depls)",
+ "learnconsult.com (1 depls)",
+ "sulamerica.com.br (1 depls)",
+ "lafargeholcim.com (1 depls)",
+ "lombardodier.com (1 depls)",
+ "losheroes.cl (1 depls)",
+ "samoscyber.com (1 depls)",
+ "mainstream.net (1 depls)",
+ "mduresources.com (1 depls)",
+ "mdhs.ms.gov (1 depls)",
+ "mayadata.io (1 depls)",
+ "marlow.com.cy (1 depls)",
+ "markiiisys.com (1 depls)",
+ "marcelbrouwers.nl (1 depls)",
+ "mantech.com (1 depls)",
+ "mandatumlife.fi (1 depls)",
+ "mail.schwarz (1 depls)",
+ "lowes.com (1 depls)",
+ "s-und-n.de (1 depls)",
+ "mail.mil (1 depls)",
+ "sa.ibm.com (1 depls)",
+ "mahkamahagung.go.id (1 depls)",
+ "maana.io (1 depls)",
+ "ma.ibm.com (1 depls)",
+ "lso.ca (1 depls)",
+ "baloise.ch (1 depls)",
+ "ndgit.com (1 depls)",
+ "realglobe.jp (1 depls)",
+ "labcorp.com (1 depls)",
+ "pivotal.io (1 depls)",
+ "plusserver.com (1 depls)",
+ "agenda.si (1 depls)",
+ "oraex.com.br (1 depls)",
+ "pmi.com (1 depls)",
+ "polyu.edu.hk (1 depls)",
+ "opitz-consulting.com (1 depls)",
+ "popso.it (1 depls)",
+ "portshift.io (1 depls)",
+ "posteitaliane.it (1 depls)",
+ "openadvice.de (1 depls)",
+ "ppb.com (1 depls)",
+ "pr.sebrae.com.br (1 depls)",
+ "agd.gov.au (1 depls)",
+ "principledtechnologies.com (1 depls)",
+ "ominsure.co.za (1 depls)",
+ "omantel.om (1 depls)",
+ "ol.ge (1 depls)",
+ "oksystem.cz (1 depls)",
+ "ok.is (1 depls)",
+ "planeta.es (1 depls)",
+ "osec.pl (1 depls)",
+ "raytheon.com (1 depls)",
+ "oss-group.co.nz (1 depls)",
+ "pccth.com (1 depls)",
+ "pc-daiwabo.co.jp (1 depls)",
+ "perceptilabs.com (1 depls)",
+ "percona.com (1 depls)",
+ "pb.com (1 depls)",
+ "paytrail.com (1 depls)",
+ "agirc-arrco.fr (1 depls)",
+ "paycore.com (1 depls)",
+ "pasam.com (1 depls)",
+ "paradigmadigital.com (1 depls)",
+ "par-tec.it (1 depls)",
+ "pagero.com (1 depls)",
+ "agiledigital.com.au (1 depls)",
+ "outlook.fr (1 depls)",
+ "physter.com (1 depls)",
+ "outlook.at (1 depls)",
+ "ahgora.com.br (1 depls)",
+ "otago.ac.nz (1 depls)",
+ "ot.olympus.co.jp (1 depls)",
+ "odsoftwarehouse.com (1 depls)",
+ "ocsnet.it (1 depls)",
+ "priorbank.by (1 depls)",
+ "ocbc.com (1 depls)",
+ "nisa.com (1 depls)",
+ "pvgroup.be (1 depls)",
+ "pwc.com (1 depls)",
+ "qss.ba (1 depls)",
+ "allbluesolutions.com (1 depls)",
+ "quantech.com.lb (1 depls)",
+ "rabobank.nl (1 depls)",
+ "networld.co.jp (1 depls)",
+ "ae.ibm.com (1 depls)",
+ "netscape.net (1 depls)",
+ "nets.eu (1 depls)",
+ "radware.com (1 depls)",
+ "raiffeisengroup.ba (1 depls)",
+ "netnumber.com (1 depls)",
+ "netdriven.de (1 depls)",
+ "rakuten.com (1 depls)",
+ "nestle.com (1 depls)",
+ "nesic.com (1 depls)",
+ "neoflex.ru (1 depls)",
+ "nissho-ele.co.jp (1 depls)",
+ "puma.com (1 depls)",
+ "psba.qld.gov.au (1 depls)",
+ "ntst.com (1 depls)",
+ "oa.mo.gov (1 depls)",
+ "proalpha.de (1 depls)",
+ "prodevans.com (1 depls)",
+ "proedge.hk (1 depls)",
+ "profi-ag.de (1 depls)",
+ "nuuptech.com (1 depls)",
+ "nuuday.dk (1 depls)",
+ "proficom.de (1 depls)",
+ "alerant.hu (1 depls)",
+ "nlmk.com (1 depls)",
+ "proholding.com.pl (1 depls)",
+ "novascotia.ca (1 depls)",
+ "novadoc.nl (1 depls)",
+ "northstar.co.kr (1 depls)",
+ "prosis.de (1 depls)",
+ "protonmail.com (1 depls)",
+ "nogui.org (1 depls)",
+ "nnit.com (1 depls)",
+ "lacaja.com.ar (1 depls)",
+ "schultz.net (1 depls)",
+ "labanquepostale.fr (1 depls)",
+ "spaceflightindustries.com (1 depls)",
+ "ibagroup.eu (1 depls)",
+ "i-s.com.pl (1 depls)",
+ "i-3.co.id (1 depls)",
+ "spi.de (1 depls)",
+ "husbanken.no (1 depls)",
+ "hughes.com (1 depls)",
+ "hu.nl (1 depls)",
+ "spirent.com (1 depls)",
+ "hr.ibm.com (1 depls)",
+ "sprint.com (1 depls)",
+ "hpcg.com.mx (1 depls)",
+ "hpbsc.ch (1 depls)",
+ "src.si (1 depls)",
+ "hotmail.de (1 depls)",
+ "sscinc.com (1 depls)",
+ "hoplasoftware.com (1 depls)",
+ "stackrox.com (1 depls)",
+ "stakater.com (1 depls)",
+ "homecenter.co (1 depls)",
+ "apptecinc.com (1 depls)",
+ "ibs.bg (1 depls)",
+ "inhouse.wko.at (1 depls)",
+ "ibtech.com.tr (1 depls)",
+ "informatika.si (1 depls)",
+ "kw.zain.com (1 depls)",
+ "softwareone.com (1 depls)",
+ "infineon.com (1 depls)",
+ "adeo.com (1 depls)",
+ "solem.cl (1 depls)",
+ "imba.oeaw.ac.at (1 depls)",
+ "solute.us (1 depls)",
+ "sopragroup.com (1 depls)",
+ "sorint.it (1 depls)",
+ "iisl.com (1 depls)",
+ "ihealthtechnologies.com (1 depls)",
+ "igt.com (1 depls)",
+ "sorintlab.com (1 depls)",
+ "id.ibm.com (1 depls)",
+ "icu-it.nl (1 depls)",
+ "icteam.it (1 depls)",
+ "icloud.com (1 depls)",
+ "south.rt.ru (1 depls)",
+ "holmes.nl (1 depls)",
+ "holcim.com (1 depls)",
+ "hna.honda.com (1 depls)",
+ "stantec.com (1 depls)",
+ "guavus.com (1 depls)",
+ "stm.info (1 depls)",
+ "gruppohera.it (1 depls)",
+ "grupodifare.com (1 depls)",
+ "groupeonepoint.com (1 depls)",
+ "greentube.com (1 depls)",
+ "pccw.com (1 depls)",
+ "graat.co.jp (1 depls)",
+ "gpa-group.it (1 depls)",
+ "gp.biglobe.co.jp (1 depls)",
+ "gov.rs (1 depls)",
+ "gov.nt.ca (1 depls)",
+ "aramco.com (1 depls)",
+ "google.com (1 depls)",
+ "goodmit.co.kr (1 depls)",
+ "goias.gov.br (1 depls)",
+ "gmv.com (1 depls)",
+ "stud.hslu.ch (1 depls)",
+ "student.kdg.be (1 depls)",
+ "adaclare.com (1 depls)",
+ "halkbank.com.tr (1 depls)",
+ "handelsbanken.se (1 depls)",
+ "state.ca.gov (1 depls)",
+ "aprr.fr (1 depls)",
+ "staples.ca (1 depls)",
+ "apx.fr (1 depls)",
+ "hizliyedek.com (1 depls)",
+ "hitachivantara.com (1 depls)",
+ "hetg.ie (1 depls)",
+ "here.com (1 depls)",
+ "hel.fi (1 depls)",
+ "healthnow.org (1 depls)",
+ "hashicorp.com (1 depls)",
+ "hds.com (1 depls)",
+ "hco.ntt.co.jp (1 depls)",
+ "stcpay.com.sa (1 depls)",
+ "steelbridgelabs.com (1 depls)",
+ "hbl.ch (1 depls)",
+ "hazelcast.com (1 depls)",
+ "havenhealthcare.com (1 depls)",
+ "ar.ibm.com (1 depls)",
+ "infracode.ru (1 depls)",
+ "infinkon.eu (1 depls)",
+ "injeinc.co.kr (1 depls)",
+ "siemens-healthineers.com (1 depls)",
+ "keytradebank.com (1 depls)",
+ "kennasecurity.com (1 depls)",
+ "zte.com.cn (1 depls)",
+ "seldon.io (1 depls)",
+ "kbtg.tech (1 depls)",
+ "kbc.be (1 depls)",
+ "semperti.com (1 depls)",
+ "kb.dk (1 depls)",
+ "sentryds.com (1 depls)",
+ "service-rz.de (1 depls)",
+ "kaloom.com (1 depls)",
+ "kaizentechpartners.com (1 depls)",
+ "service.com.br (1 depls)",
+ "juntadeandalucia.es (1 depls)",
+ "juniper.net (1 depls)",
+ "jsa-group.ru (1 depls)",
+ "ses.com (1 depls)",
+ "shi-g.com (1 depls)",
+ "sibintek.ru (1 depls)",
+ "keyvatech.com (1 depls)",
+ "kgi.com (1 depls)",
+ "kibs.com.mk (1 depls)",
+ "securustechnologies.com (1 depls)",
+ "kuehne-nagel.com (1 depls)",
+ "ktbcs.co.th (1 depls)",
+ "scigames.at (1 depls)",
+ "sct.gouv.qc.ca (1 depls)",
+ "seat.es (1 depls)",
+ "kp.org (1 depls)",
+ "kove.net (1 depls)",
+ "seccom.ch (1 depls)",
+ "komplex-it.dk (1 depls)",
+ "kiratech.it (1 depls)",
+ "sefin.fortaleza.ce.gov.br (1 depls)",
+ "kolodok.info (1 depls)",
+ "kolabsys.com (1 depls)",
+ "sefin.gob.hn (1 depls)",
+ "segrocers.com (1 depls)",
+ "kobelcosys.co.jp (1 depls)",
+ "ko2.it (1 depls)",
+ "knowis.de (1 depls)",
+ "jeskell.com (1 depls)",
+ "shlitz.com (1 depls)",
+ "silich.de (1 depls)",
+ "it-fabrik.at (1 depls)",
+ "iridium-russia.com (1 depls)",
+ "janwiebe.eu (1 depls)",
+ "apendo.se (1 depls)",
+ "slac.stanford.edu (1 depls)",
+ "invesco.com (1 depls)",
+ "intility.no (1 depls)",
+ "sll.se (1 depls)",
+ "interkassa.com (1 depls)",
+ "interior.es (1 depls)",
+ "intercom.com.eg (1 depls)",
+ "intellilink.co.jp (1 depls)",
+ "inteliquent.com (1 depls)",
+ "snt.ro (1 depls)",
+ "soaint.com (1 depls)",
+ "instana.com (1 depls)",
+ "socgen.com (1 depls)",
+ "inps.it (1 depls)",
+ "innogy.com (1 depls)",
+ "innogrid.com (1 depls)",
+ "isd.jp.nec.com (1 depls)",
+ "ipo.gov.uk (1 depls)",
+ "it.ecommpay.com (1 depls)",
+ "itcenter.com.pt (1 depls)",
+ "iworks.kr (1 depls)",
+ "simlogics.net (1 depls)",
+ "siriuscom.com (1 depls)",
+ "simtech.nl (1 depls)",
+ "itergo.com (1 depls)",
+ "itchannel.asia (1 depls)",
+ "itl.com.ar (1 depls)",
+ "baloise.lu (1 depls)",
+ "apap.com.do (1 depls)",
+ "singtel.com (1 depls)",
+ "italgas.it (1 depls)",
+ "sina.cn (1 depls)",
+ "apoio.fr (0 depls)",
+ "amazon.com (0 depls)",
+ "archinsurance.com (0 depls)",
+ "acertcon.com.br (0 depls)",
+ "appdynamics.com (0 depls)",
+ "aa.jp.fujitsu.com (0 depls)",
+ "afbnet.it (0 depls)",
+ "anaconda.com (0 depls)",
+ "audi.de (0 depls)",
+ "aselsan.com.tr (0 depls)",
+ "407etr.com (0 depls)",
+ "assentis.com (0 depls)",
+ "21vianet.com (0 depls)",
+ "ztech.io (0 depls)",
+ "basefarm.com (0 depls)",
+ "opentext.com (0 depls)",
+ "saic.com (0 depls)",
+ "riverbed.com (0 depls)",
+ "rackspace.com (0 depls)",
+ "puzzle.ch (0 depls)",
+ "programmer.net (0 depls)",
+ "profuturo.com.mx (0 depls)",
+ "prgx.com (0 depls)",
+ "pm.nttdata.co.jp (0 depls)",
+ "phe.gov.uk (0 depls)",
+ "paysafe.com (0 depls)",
+ "otpsrbija.rs (0 depls)",
+ "orpea.net (0 depls)",
+ "nxp.com (0 depls)",
+ "schindler.com (0 depls)",
+ "nttdocomo.com (0 depls)",
+ "ntsretail.com (0 depls)",
+ "nexign.com (0 depls)",
+ "newrelic.com (0 depls)",
+ "netscout.com (0 depls)",
+ "neareasttechnology.com (0 depls)",
+ "ncontr.com (0 depls)",
+ "ncl.com (0 depls)",
+ "multisoft.co.id (0 depls)",
+ "multiplan.com (0 depls)",
+ "metrodemedellin.gov.co (0 depls)",
+ "medius.si (0 depls)",
+ "scalait.com (0 depls)",
+ "shaun.io (0 depls)",
+ "matrix.co.il (0 depls)",
+ "thejay.net (0 depls)",
+ "xsyscemerlang.com (0 depls)",
+ "xc.jp.nec.com (0 depls)",
+ "websiteitalia.com (0 depls)",
+ "verizonwireless.com (0 depls)",
+ "vegas.com (0 depls)",
+ "ute.com.uy (0 depls)",
+ "unipoint.co.kr (0 depls)",
+ "uib.es (0 depls)",
+ "toyota.com.br (0 depls)",
+ "tn.gov (0 depls)",
+ "tmx.com (0 depls)",
+ "tjpa.jus.br (0 depls)",
+ "th.ibm.com (0 depls)",
+ "smanager.com.br (0 depls)",
+ "technet-asia.com (0 depls)",
+ "techlead.com.br (0 depls)",
+ "symbiont.io (0 depls)",
+ "suva.ch (0 depls)",
+ "supermicro.com (0 depls)",
+ "sttproductions.de (0 depls)",
+ "stonedoorgroup.com (0 depls)",
+ "stofa.dk (0 depls)",
+ "stena.com (0 depls)",
+ "ss.jrkyushu-g.co.jp (0 depls)",
+ "solace.com (0 depls)",
+ "softwareag.com (0 depls)",
+ "mazda.co.jp (0 depls)",
+ "loxon.eu (0 depls)",
+ "blackducksoftware.com (0 depls)",
+ "corp.sysco.com (0 depls)",
+ "evtcorp.com (0 depls)",
+ "et.mde.es (0 depls)",
+ "elastic.co (0 depls)",
+ "east.ntt.co.jp (0 depls)",
+ "duo.nl (0 depls)",
+ "dtcc.com (0 depls)",
+ "doc88.com.br (0 depls)",
+ "disney.com (0 depls)",
+ "delsud.com.ar (0 depls)",
+ "dataport.de (0 depls)",
+ "cybercom.com (0 depls)",
+ "cristie.se (0 depls)",
+ "conova.com (0 depls)",
+ "finat.pl (0 depls)",
+ "commscope.com (0 depls)",
+ "coming.rs (0 depls)",
+ "cnvrg.io (0 depls)",
+ "cms.hhs.gov (0 depls)",
+ "ciasc.sc.gov.br (0 depls)",
+ "cetin.cz (0 depls)",
+ "camptocamp.com (0 depls)",
+ "caditgroup.com (0 depls)",
+ "bthtech.com (0 depls)",
+ "br-petrobras.com.br (0 depls)",
+ "bolivariano.com (0 depls)",
+ "bnc.ca (0 depls)",
+ "fcc.es (0 depls)",
+ "fintek.com.tr (0 depls)",
+ "lme.com (0 depls)",
+ "hkairport.com (0 depls)",
+ "linquest.com (0 depls)",
+ "lemc.com.hk (0 depls)",
+ "kpmg.com (0 depls)",
+ "kangaroot.net (0 depls)",
+ "jbcc.co.jp (0 depls)",
+ "itgroupinc.asia (0 depls)",
+ "italtel.com (0 depls)",
+ "ipmgroup.be (0 depls)",
+ "integraltech.com.au (0 depls)",
+ "insightglobal.com (0 depls)",
+ "inet.co.th (0 depls)",
+ "ibermatica.com (0 depls)",
+ "hk.ncs-i.com (0 depls)",
+ "fmc-na.com (0 depls)",
+ "hcahealthcare.com (0 depls)",
+ "havelsan.com.tr (0 depls)",
+ "googlemail.com (0 depls)",
+ "gigaspaces.com (0 depls)",
+ "gic.com.sg (0 depls)",
+ "gfi.fr (0 depls)",
+ "gexterno.es (0 depls)",
+ "generali.com.hk (0 depls)",
+ "gemalto.com (0 depls)",
+ "gds.ey.com (0 depls)",
+ "fwd.com (0 depls)",
+ "fokus.fraunhofer.de (0 depls)",
+ "103mvl.net (0 depls)"
+ ],
+ "description": "Email Domain",
+ "index": 0,
+ "layout": "IPY_MODEL_44f50b5e96674b5996f6f74e51865d39",
+ "style": "IPY_MODEL_e411802bf7d54a60b7c07bf071d887dc"
+ }
+ },
+ "8c3c7fc613ef4aae96026b9841a0770c": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "8c4a13a70e0149ddab3a8227905875b7": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "90634dc50c834af3a188cf0ece5ccb33": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DropdownModel",
+ "state": {
+ "_options_labels": [
+ "ALL (5481)",
+ "us.ibm.com (2527 depls)",
+ "ibm.com (120 depls)",
+ "gmail.com (113 depls)",
+ "redhat.com (68 depls)",
+ "cn.ibm.com (50 depls)",
+ "hpe.com (48 depls)",
+ "uk.ibm.com (42 depls)",
+ "in.ibm.com (39 depls)",
+ "fr.ibm.com (30 depls)",
+ "ie.ibm.com (30 depls)",
+ "de.ibm.com (23 depls)",
+ "jp.ibm.com (20 depls)",
+ "hcl.com (17 depls)",
+ "ca.ibm.com (16 depls)",
+ "secureworks.com (16 depls)",
+ "accenture.com (15 depls)",
+ "capgroup.com (13 depls)",
+ "intel.com (13 depls)",
+ "dell.com (13 depls)",
+ "prophetstor.com (13 depls)",
+ "nokia.com (12 depls)",
+ "cloudera.com (12 depls)",
+ "twistlock.com (12 depls)",
+ "cisco.com (11 depls)",
+ "hotmail.com (11 depls)",
+ "br.ibm.com (11 depls)",
+ "o2its.cz (11 depls)",
+ "bell.ca (10 depls)",
+ "qq.com (10 depls)",
+ "atos.net (10 depls)",
+ "brreg.no (9 depls)",
+ "tractorsupply.com (9 depls)",
+ "delta.com (9 depls)",
+ "landregistry.gov.uk (9 depls)",
+ "anthem.com (9 depls)",
+ "pl.ibm.com (9 depls)",
+ "il.ibm.com (9 depls)",
+ "dl.jp.fujitsu.com (9 depls)",
+ "worldpay.com (8 depls)",
+ "santander.com.ar (8 depls)",
+ "sas.com (8 depls)",
+ "cern.ch (8 depls)",
+ "ford.com (8 depls)",
+ "sparebank1.no (8 depls)",
+ "ukcloud.com (8 depls)",
+ "t-systems.com (8 depls)",
+ "ticket.noris.net (8 depls)",
+ "f5.com (8 depls)",
+ "discover.com (8 depls)",
+ "tr.ibm.com (7 depls)",
+ "crossvale.com (7 depls)",
+ "mon-tier.com (7 depls)",
+ "rbc.com (7 depls)",
+ "jndata.dk (7 depls)",
+ "microsoft.com (7 depls)",
+ "netone.co.jp (7 depls)",
+ "regions.com (7 depls)",
+ "telefonica.com (7 depls)",
+ "citizensbank.com (7 depls)",
+ "soprasteria.com (6 depls)",
+ "nec.com (6 depls)",
+ "elkarlan.onmicrosoft.com (6 depls)",
+ "linux.vnet.ibm.com (6 depls)",
+ "tigera.io (6 depls)",
+ "trustmarkbenefits.com (6 depls)",
+ "cscinfo.com (6 depls)",
+ "deutsche-boerse.com (6 depls)",
+ "capgemini.com (6 depls)",
+ "cz.ibm.com (6 depls)",
+ "es.ibm.com (6 depls)",
+ "hitachi.com (6 depls)",
+ "keylane.com (6 depls)",
+ "axa.com (6 depls)",
+ "orange.com (6 depls)",
+ "etisalat.ae (5 depls)",
+ "qct.io (5 depls)",
+ "microfocus.com (5 depls)",
+ "tk.de (5 depls)",
+ "debeka.de (5 depls)",
+ "consol.de (5 depls)",
+ "dynatrace.com (5 depls)",
+ "dxc.com (5 depls)",
+ "nl.ibm.com (5 depls)",
+ "nectechnologies.in (5 depls)",
+ "ctc-g.co.jp (5 depls)",
+ "arbetsformedlingen.se (5 depls)",
+ "ascendcorp.com (5 depls)",
+ "rct.co.il (5 depls)",
+ "ais.co.th (5 depls)",
+ "cigna.com (5 depls)",
+ "f-i.de (5 depls)",
+ "plus.pl (5 depls)",
+ "k8s.jp.nec.com (5 depls)",
+ "wipro.com (5 depls)",
+ "it.ibm.com (5 depls)",
+ "vmware.com (5 depls)",
+ "sbb.ch (5 depls)",
+ "alaskaair.com (5 depls)",
+ "lmco.com (5 depls)",
+ "lenovo.com (5 depls)",
+ "au1.ibm.com (5 depls)",
+ "tipsport.cz (4 depls)",
+ "volkswagen.de (4 depls)",
+ "ao.uscourts.gov (4 depls)",
+ "laposte.fr (4 depls)",
+ "bom.gov.au (4 depls)",
+ "elcorteingles.es (4 depls)",
+ "sg.ibm.com (4 depls)",
+ "ericsson.com (4 depls)",
+ "anz.com (4 depls)",
+ "blood.ca (4 depls)",
+ "meteorcomm.com (4 depls)",
+ "za.ibm.com (4 depls)",
+ "amdocs.com (4 depls)",
+ "enterprisedb.com (4 depls)",
+ "wuerth-it.com (4 depls)",
+ "bitmarck.de (4 depls)",
+ "kocsistem.com.tr (4 depls)",
+ "thy.com (4 depls)",
+ "achmea.nl (4 depls)",
+ "bankmandiri.co.id (4 depls)",
+ "asseco.pl (4 depls)",
+ "kolon.com (4 depls)",
+ "nationwide.co.uk (4 depls)",
+ "vodafone.com (4 depls)",
+ "solarflare.com (4 depls)",
+ "ltkalmar.se (4 depls)",
+ "mskcc.org (4 depls)",
+ "lsd.co.za (4 depls)",
+ "att.com (4 depls)",
+ "corp.vodafone.es (4 depls)",
+ "techdata.com (4 depls)",
+ "msccruises.com (4 depls)",
+ "crif.com (4 depls)",
+ "sap.com (4 depls)",
+ "cirb.brussels (4 depls)",
+ "omnitracs.com (4 depls)",
+ "nike.com (4 depls)",
+ "hydro.qc.ca (4 depls)",
+ "skatteetaten.no (4 depls)",
+ "opennaru.com (4 depls)",
+ "cslbehring.com (4 depls)",
+ "cucbc.com (4 depls)",
+ "experian.com (4 depls)",
+ "saq.qc.ca (4 depls)",
+ "transport.nsw.gov.au (4 depls)",
+ "standardbank.co.za (4 depls)",
+ "honeywell.com (4 depls)",
+ "garantibbva.com.tr (4 depls)",
+ "adcubum.com (4 depls)",
+ "canada.ca (4 depls)",
+ "teco.com.ar (4 depls)",
+ "videotron.com (4 depls)",
+ "cyberark.com (4 depls)",
+ "mitre.org (3 depls)",
+ "aricent.com (3 depls)",
+ "minsait.com (3 depls)",
+ "mtb.com (3 depls)",
+ "mii.co.id (3 depls)",
+ "accenturefederal.com (3 depls)",
+ "pentalink.co.kr (3 depls)",
+ "gm.com (3 depls)",
+ "sk.com (3 depls)",
+ "sdx.com (3 depls)",
+ "seb.se (3 depls)",
+ "linuxpolska.pl (3 depls)",
+ "list.orange.com (3 depls)",
+ "kb.vlaanderen.be (3 depls)",
+ "kasten.io (3 depls)",
+ "adlere.fr (3 depls)",
+ "jp.fujitsu.com (3 depls)",
+ "jet.su (3 depls)",
+ "siemens.com (3 depls)",
+ "jazz.com.pk (3 depls)",
+ "itau.com.ar (3 depls)",
+ "it.mos.ru (3 depls)",
+ "ipi.ch (3 depls)",
+ "michigan.gov (3 depls)",
+ "apis-it.hr (3 depls)",
+ "inaservice.com.cn (3 depls)",
+ "iecisa.com (3 depls)",
+ "mwam.com (3 depls)",
+ "southernco.com (3 depls)",
+ "mail.ru (3 depls)",
+ "hu.ibm.com (3 depls)",
+ "hotpotatoes.nl (3 depls)",
+ "ru.ibm.com (3 depls)",
+ "helsinki.fi (3 depls)",
+ "mcb.mu (3 depls)",
+ "stjude.org (3 depls)",
+ "americansystems.com (3 depls)",
+ "macif.fr (3 depls)",
+ "netapp.com (3 depls)",
+ "regionorebrolan.se (3 depls)",
+ "optus.com.au (3 depls)",
+ "btpnsyariah.com (3 depls)",
+ "portoseguro.com.br (3 depls)",
+ "virginia.edu (3 depls)",
+ "portworx.com (3 depls)",
+ "cargo-partner.com (3 depls)",
+ "onespan.com (3 depls)",
+ "va.gov (3 depls)",
+ "cl.ibm.com (3 depls)",
+ "ocbcnisp.com (3 depls)",
+ "produban.com (3 depls)",
+ "nttdata.com (3 depls)",
+ "feratel.at (3 depls)",
+ "nri.co.jp (3 depls)",
+ "unicredit.eu (3 depls)",
+ "norsk-tipping.no (3 depls)",
+ "uk.mizuho-sc.com (3 depls)",
+ "criticaltechworks.com (3 depls)",
+ "btpn.com (3 depls)",
+ "brb.com.br (3 depls)",
+ "ua.ibm.com (3 depls)",
+ "bouyguestelecom.fr (3 depls)",
+ "pbz.hr (3 depls)",
+ "bandwidth.com (3 depls)",
+ "payback.net (3 depls)",
+ "zenuity.com (3 depls)",
+ "paloaltonetworks.com (3 depls)",
+ "outtherelabs.com (3 depls)",
+ "bcb.gov.br (3 depls)",
+ "pheaa.org (3 depls)",
+ "126.com (3 depls)",
+ "airbus.com (3 depls)",
+ "wwt.com (3 depls)",
+ "wwpdl.vnet.ibm.com (3 depls)",
+ "ornl.gov (3 depls)",
+ "origo.is (3 depls)",
+ "wellmark.com (3 depls)",
+ "163.com (3 depls)",
+ "bnz.co.nz (3 depls)",
+ "cronos.be (3 depls)",
+ "commvault.com (3 depls)",
+ "aetna.com (3 depls)",
+ "es.logicalis.com (3 depls)",
+ "dnrd.ae (3 depls)",
+ "tibco.com (3 depls)",
+ "schiphol.nl (3 depls)",
+ "dti.ulaval.ca (3 depls)",
+ "rbs-services.com (3 depls)",
+ "emirates.com (3 depls)",
+ "rechtspraak.nl (3 depls)",
+ "asia.ccb.com (3 depls)",
+ "deloitte.de (3 depls)",
+ "teb.com.tr (3 depls)",
+ "team.telstra.com (3 depls)",
+ "tds.fujitsu.com (3 depls)",
+ "tbc.sa (3 depls)",
+ "redbridge.se (3 depls)",
+ "redislabs.com (3 depls)",
+ "faa.gov (3 depls)",
+ "tine.no (3 depls)",
+ "netorek.fi (3 depls)",
+ "anfccorp.com (3 depls)",
+ "transfond.ro (3 depls)",
+ "de.bosch.com (3 depls)",
+ "csx.com (3 depls)",
+ "customs.bg (3 depls)",
+ "niandc.co.jp (3 depls)",
+ "trilio.io (3 depls)",
+ "travelers.com (3 depls)",
+ "amadeus.com (2 depls)",
+ "mainz.ibm.com (2 depls)",
+ "nrb.be (2 depls)",
+ "npo.nl (2 depls)",
+ "outlook.com (2 depls)",
+ "mont.com (2 depls)",
+ "liquidit.nz (2 depls)",
+ "ngerntidlor.com (2 depls)",
+ "nbch.com.ar (2 depls)",
+ "nist.gov (2 depls)",
+ "li9.com (2 depls)",
+ "pbtech.net.br (2 depls)",
+ "navitus.com (2 depls)",
+ "lists.psi.ch (2 depls)",
+ "materna.de (2 depls)",
+ "llnl.gov (2 depls)",
+ "alliander.com (2 depls)",
+ "nyu.edu (2 depls)",
+ "anadoluefes.com (2 depls)",
+ "oncor.com (2 depls)",
+ "aliyun.com (2 depls)",
+ "ontario.ca (2 depls)",
+ "openline.nl (2 depls)",
+ "neuvector.com (2 depls)",
+ "netzlink.com (2 depls)",
+ "meteoswiss.ch (2 depls)",
+ "live.com (2 depls)",
+ "maif.fr (2 depls)",
+ "opsta.co.th (2 depls)",
+ "andesdigital.com (2 depls)",
+ "lordabbett.com (2 depls)",
+ "orange.fr (2 depls)",
+ "loto-quebec.com (2 depls)",
+ "nvidia.com (2 depls)",
+ "original.com.br (2 depls)",
+ "alcatel-lucent.com (2 depls)",
+ "kemkes.go.id (2 depls)",
+ "lansforsakringar.se (2 depls)",
+ "cloudbees.com (2 depls)",
+ "cn.fujitsu.com (2 depls)",
+ "cognizant.com (2 depls)",
+ "comarch.pl (2 depls)",
+ "combis.hr (2 depls)",
+ "atradius.com (2 depls)",
+ "comp.com.pl (2 depls)",
+ "confluent.io (2 depls)",
+ "atpco.net (2 depls)",
+ "consorsbank.de (2 depls)",
+ "copergmps.it (2 depls)",
+ "covis.de (2 depls)",
+ "cra-arc.gc.ca (2 depls)",
+ "crediteurope.nl (2 depls)",
+ "crown.com (2 depls)",
+ "csaa.com (2 depls)",
+ "daa.ie (2 depls)",
+ "dbs.com (2 depls)",
+ "delijn.be (2 depls)",
+ "deloitte.com (2 depls)",
+ "dentisoft.com (2 depls)",
+ "det.nsw.edu.au (2 depls)",
+ "deutschepost.de (2 depls)",
+ "devoteam.com (2 depls)",
+ "diamanti.com (2 depls)",
+ "dontouch.ch (2 depls)",
+ "cloudwerkstatt.com (2 depls)",
+ "claro.com.ar (2 depls)",
+ "dxcas.com (2 depls)",
+ "chicos.com (2 depls)",
+ "bancamarch.es (2 depls)",
+ "bancocredicoop.coop (2 depls)",
+ "banval.sba.com.ar (2 depls)",
+ "barceloviajes.com (2 depls)",
+ "b1-systems.de (2 depls)",
+ "bcx.co.za (2 depls)",
+ "be.ibm.com (2 depls)",
+ "bechtle.com (2 depls)",
+ "axians.de (2 depls)",
+ "bldr.com (2 depls)",
+ "bls.ch (2 depls)",
+ "blum.com (2 depls)",
+ "boeing.com (2 depls)",
+ "bps-suisse.ch (2 depls)",
+ "brighthousefinancial.com (2 depls)",
+ "broadcom.com (2 depls)",
+ "bt.com (2 depls)",
+ "buenosaires.gob.ar (2 depls)",
+ "bv.com.br (2 depls)",
+ "c3.ai (2 depls)",
+ "avisbudget.com (2 depls)",
+ "casa-systems.com (2 depls)",
+ "catalysts.cc (2 depls)",
+ "cegeka.be (2 depls)",
+ "aurotechcorp.com (2 depls)",
+ "doosan.com (2 depls)",
+ "eaton.com (2 depls)",
+ "krash.be (2 depls)",
+ "aquasec.com (2 depls)",
+ "helvetia.ch (2 depls)",
+ "hk1.ibm.com (2 depls)",
+ "hma.honda.com (2 depls)",
+ "hopitalvs.ch (2 depls)",
+ "i-t-m.com (2 depls)",
+ "ibermutua.es (2 depls)",
+ "icbc.com.ar (2 depls)",
+ "ikea.com (2 depls)",
+ "illumio.com (2 depls)",
+ "infinkon.de (2 depls)",
+ "infosys.com (2 depls)",
+ "ing.com (2 depls)",
+ "inspur.com (2 depls)",
+ "intertech.com.tr (2 depls)",
+ "intervalintl.com (2 depls)",
+ "intesasanpaolo.com (2 depls)",
+ "aoins.com (2 depls)",
+ "its4u.lu (2 depls)",
+ "jri-america.com (2 depls)",
+ "kapsch.net (2 depls)",
+ "kela.fi (2 depls)",
+ "kohls.com (2 depls)",
+ "konsalt.com.tr (2 depls)",
+ "korian.fr (2 depls)",
+ "kr.ibm.com (2 depls)",
+ "healthpartners.com (2 depls)",
+ "h-da.de (2 depls)",
+ "egcp.com (2 depls)",
+ "gu.se (2 depls)",
+ "elostech.cz (2 depls)",
+ "employers.com (2 depls)",
+ "endpointclosing.com (2 depls)",
+ "ergo-life.cn (2 depls)",
+ "exidelife.in (2 depls)",
+ "express-scripts.com (2 depls)",
+ "extraordy.com (2 depls)",
+ "extremedata.com.tw (2 depls)",
+ "ashghal.gov.qa (2 depls)",
+ "fintechgroup.com (2 depls)",
+ "firstrepublic.com (2 depls)",
+ "fitit.be (2 depls)",
+ "fnb.co.za (2 depls)",
+ "ars.de (2 depls)",
+ "fostermoore.com (2 depls)",
+ "gazprom-neft.ru (2 depls)",
+ "arctiq.ca (2 depls)",
+ "gen-e.com (2 depls)",
+ "genusllc.com (2 depls)",
+ "arburg.com (2 depls)",
+ "pe.ibm.com (2 depls)",
+ "global.ntt (2 depls)",
+ "globalrelay.net (2 depls)",
+ "grainger.com (2 depls)",
+ "grupo-pinero.com (2 depls)",
+ "gire.com (2 depls)",
+ "anadolusigorta.com.tr (2 depls)",
+ "schneider.com (2 depls)",
+ "utk.edu (2 depls)",
+ "slb.com (2 depls)",
+ "aditinet.it (2 depls)",
+ "rohde-schwarz.com (2 depls)",
+ "us.imshealth.com (2 depls)",
+ "ro.ibm.com (2 depls)",
+ "tetrate.io (2 depls)",
+ "tep.com (2 depls)",
+ "usda.gov (2 depls)",
+ "rise-world.com (2 depls)",
+ "softec.sk (2 depls)",
+ "telus.com (2 depls)",
+ "adfinis-sygroup.ch (2 depls)",
+ "3-s.at (2 depls)",
+ "valensas.com (2 depls)",
+ "thehartford.com (2 depls)",
+ "teliacompany.com (2 depls)",
+ "telenetgroup.be (2 depls)",
+ "telekom.de (2 depls)",
+ "sos.eu (2 depls)",
+ "verizonmedia.com (2 depls)",
+ "spark.co.nz (2 depls)",
+ "spectrumhealth.org (2 depls)",
+ "vineti.com (2 depls)",
+ "visana.ch (2 depls)",
+ "purestorage.com (2 depls)",
+ "systex.com.hk (2 depls)",
+ "syspower.com.tw (2 depls)",
+ "sysage.com.tw (2 depls)",
+ "ups.com (2 depls)",
+ "rs.ibm.com (2 depls)",
+ "progressive.com (2 depls)",
+ "sbm.com.sa (2 depls)",
+ "trace3.com (2 depls)",
+ "sekom.com.tr (2 depls)",
+ "turbonomic.com (2 depls)",
+ "turkcell.com.tr (2 depls)",
+ "tohmatsu.co.jp (2 depls)",
+ "schufa.de (2 depls)",
+ "scholastic.com (2 depls)",
+ "senduvu.com (2 depls)",
+ "tw.ibm.com (2 depls)",
+ "scanplus.de (2 depls)",
+ "aareon.com (2 depls)",
+ "tmrnd.com.my (2 depls)",
+ "tmbbank.com (2 depls)",
+ "sanofi-aventis.com (2 depls)",
+ "rt.ru (2 depls)",
+ "uk.fujitsu.com (2 depls)",
+ "si.ibm.com (2 depls)",
+ "abanca.com (2 depls)",
+ "samsung.com (2 depls)",
+ "ulx.hu (2 depls)",
+ "advance-auto.com (2 depls)",
+ "umb.ch (2 depls)",
+ "safaricom.co.ke (2 depls)",
+ "sabancidx.com (2 depls)",
+ "tinubu.com (2 depls)",
+ "s-itsolutions.at (2 depls)",
+ "tiaa-cref.org (2 depls)",
+ "rtlabs.ru (2 depls)",
+ "vsp.com (2 depls)",
+ "reisebank.de (2 depls)",
+ "aexp.com (2 depls)",
+ "stoiximan.gr (2 depls)",
+ "startx.fr (2 depls)",
+ "stat.gouv.qc.ca (2 depls)",
+ "syntegrity.com.au (2 depls)",
+ "syncsort.com (2 depls)",
+ "swissmedical.com.ar (2 depls)",
+ "acp.at (2 depls)",
+ "pixar.com (2 depls)",
+ "piros.be (2 depls)",
+ "14west.us (2 depls)",
+ "starhub.com (2 depls)",
+ "yahoo.com (2 depls)",
+ "swedbank.se (2 depls)",
+ "pfandbriefbank.com (2 depls)",
+ "swdeca.com (2 depls)",
+ "pf.gov.br (2 depls)",
+ "yipintsoi.com (2 depls)",
+ "yoox.com (2 depls)",
+ "sv-informatik.de (2 depls)",
+ "webcomm.com.tw (2 depls)",
+ "ww-informatik.de (2 depls)",
+ "syr.edu (2 depls)",
+ "example.com (1 depls)",
+ "extrasys.it (1 depls)",
+ "gasnatural.com (1 depls)",
+ "taos.com (1 depls)",
+ "dhl.com (1 depls)",
+ "swifttrans.com (1 depls)",
+ "dhconsulting.ch (1 depls)",
+ "dha.gov.ae (1 depls)",
+ "dewa.gov.ae (1 depls)",
+ "tjce.jus.br (1 depls)",
+ "gblsys.com (1 depls)",
+ "t.ht.hr (1 depls)",
+ "gbmme.com (1 depls)",
+ "gd-ms.com (1 depls)",
+ "tjsys.co.jp (1 depls)",
+ "swisscom.com (1 depls)",
+ "dict.gov.ph (1 depls)",
+ "deutsche-factoring.de (1 depls)",
+ "ext.soprasteria.com (1 depls)",
+ "dipres.gob.cl (1 depls)",
+ "tiri.li (1 depls)",
+ "asset-metrix.com (1 depls)",
+ "gantek.com (1 depls)",
+ "dlt.com (1 depls)",
+ "tier2consulting.com (1 depls)",
+ "ext.ec.europa.eu (1 depls)",
+ "docupace.com (1 depls)",
+ "dollargeneral.com (1 depls)",
+ "thinksis.com (1 depls)",
+ "dpf.jp.nec.com (1 depls)",
+ "gaminginnovationgroup.com (1 depls)",
+ "gabrielli.info (1 depls)",
+ "deutschebahn.com (1 depls)",
+ "tkhinnovations.com (1 depls)",
+ "ewerk.com (1 depls)",
+ "tre.se (1 depls)",
+ "archmi.com (1 depls)",
+ "defacto.com.tr (1 depls)",
+ "decsoft.com.pl (1 depls)",
+ "tpg.ch (1 depls)",
+ "aceinfosolutions.com (1 depls)",
+ "supcom.tn (1 depls)",
+ "ddti.net (1 depls)",
+ "exxonmobil.com (1 depls)",
+ "triliodata.com (1 depls)",
+ "datto.com (1 depls)",
+ "daticloud.com (1 depls)",
+ "datatrend.com (1 depls)",
+ "datastar.com.ar (1 depls)",
+ "at.seg-social.es (1 depls)",
+ "geodis.com (1 depls)",
+ "a1.bg (1 depls)",
+ "sys.aok.de (1 depls)",
+ "fcagroup.com (1 depls)",
+ "fabasoft.com (1 depls)",
+ "dellead.com (1 depls)",
+ "dellteam.com (1 depls)",
+ "arcor.de (1 depls)",
+ "deloitte.co.nz (1 depls)",
+ "sysdig.com (1 depls)",
+ "tnb.com.my (1 depls)",
+ "generali.com (1 depls)",
+ "deloitte.com.au (1 depls)",
+ "asw.com.hk (1 depls)",
+ "sva.de (1 depls)",
+ "fi.ibm.com (1 depls)",
+ "asfinag.at (1 depls)",
+ "dspace.de (1 depls)",
+ "dsv.com (1 depls)",
+ "g-able.com (1 depls)",
+ "firstdata.com (1 depls)",
+ "telecomitalia.it (1 depls)",
+ "erieinsurance.com (1 depls)",
+ "fisglobal.com (1 depls)",
+ "tcmb.gov.tr (1 depls)",
+ "ereinsure.com (1 depls)",
+ "epiontis.com (1 depls)",
+ "daocloud.io (1 depls)",
+ "thinkahead.com (1 depls)",
+ "enonic.com (1 depls)",
+ "exisoft.com.ar (1 depls)",
+ "fixedmea.com (1 depls)",
+ "enfogroup.com (1 depls)",
+ "enea.com (1 depls)",
+ "flhealth.gov (1 depls)",
+ "academia-online.org (1 depls)",
+ "escenic.com (1 depls)",
+ "esri.com (1 depls)",
+ "exatetechnology.com (1 depls)",
+ "estafet.com (1 depls)",
+ "asl.com.hk (1 depls)",
+ "etechsystem.co.kr (1 depls)",
+ "etele.com.ua (1 depls)",
+ "techmahindra.com (1 depls)",
+ "fiserv.com (1 depls)",
+ "eurecom.fr (1 depls)",
+ "eurobank.gr (1 depls)",
+ "eurobet.it (1 depls)",
+ "firstmarblehead.com (1 depls)",
+ "everbank.com (1 depls)",
+ "acceleris.ch (1 depls)",
+ "syone.com (1 depls)",
+ "teliacygate.fi (1 depls)",
+ "telkomsel.co.id (1 depls)",
+ "flowfactor.be (1 depls)",
+ "fronius.com (1 depls)",
+ "abaxo.co.uk (1 depls)",
+ "asseco-see.rs (1 depls)",
+ "dvbern.ch (1 depls)",
+ "arrow.com (1 depls)",
+ "futuregen.co.kr (1 depls)",
+ "thalesgroup.com (1 depls)",
+ "fujitsu.com (1 depls)",
+ "abinitio.com (1 depls)",
+ "fedins.com (1 depls)",
+ "eagleinvsys.com (1 depls)",
+ "asseco-see.com (1 depls)",
+ "teuto.net (1 depls)",
+ "ebox.ca (1 depls)",
+ "ec.europa.eu (1 depls)",
+ "ec.ibm.com (1 depls)",
+ "synopsys.com (1 depls)",
+ "free.fr (1 depls)",
+ "edgeverve.com (1 depls)",
+ "efinance.com.eg (1 depls)",
+ "fr.scc.com (1 depls)",
+ "tasgroup.it (1 depls)",
+ "eigentech.com (1 depls)",
+ "aspenmesh.io (1 depls)",
+ "teranet.ca (1 depls)",
+ "swisstph.ch (1 depls)",
+ "sympany.ch (1 depls)",
+ "tempest.sk (1 depls)",
+ "email.unc.edu (1 depls)",
+ "syncrasy.io (1 depls)",
+ "tav.aero (1 depls)",
+ "darkmatter.ae (1 depls)",
+ "pecunpay.es (1 depls)",
+ "danskecommodities.com (1 depls)",
+ "varmeego.com (1 depls)",
+ "vlinkinfo.com (1 depls)",
+ "bu.edu (1 depls)",
+ "btrl.ro (1 depls)",
+ "vn.ibm.com (1 depls)",
+ "vodafoneziggo.com (1 depls)",
+ "btp.com.br (1 depls)",
+ "avl.com (1 depls)",
+ "volvocars.com (1 depls)",
+ "vp.dk (1 depls)",
+ "vps.no (1 depls)",
+ "vrtx.com (1 depls)",
+ "vshn.ch (1 depls)",
+ "vtb.ru (1 depls)",
+ "bps.gub.uy (1 depls)",
+ "vub.sk (1 depls)",
+ "bpba.com.ar (1 depls)",
+ "bpa.bund.de (1 depls)",
+ "vw.com (1 depls)",
+ "wanadoo.fr (1 depls)",
+ "vkb.de (1 depls)",
+ "visma.com (1 depls)",
+ "c3iot.com (1 depls)",
+ "vfunction.com (1 depls)",
+ "2nwsl.jp.nec.com (1 depls)",
+ "cepsa.com (1 depls)",
+ "verifone.com (1 depls)",
+ "cedrusco.com (1 depls)",
+ "ccc.jp.nec.com (1 depls)",
+ "cbc-companies.com (1 depls)",
+ "verizon.com (1 depls)",
+ "catalogicsoftware.com (1 depls)",
+ "vhi.ie (1 depls)",
+ "cablelabs.com (1 depls)",
+ "viessmann.com (1 depls)",
+ "avaloq.com (1 depls)",
+ "campbell.com (1 depls)",
+ "camelland.com (1 depls)",
+ "cam-sys.net (1 depls)",
+ "caleres.com (1 depls)",
+ "caffeine.tv (1 depls)",
+ "cablevision.com.ar (1 depls)",
+ "axcelinno.io (1 depls)",
+ "bokf.com (1 depls)",
+ "weave.works (1 depls)",
+ "bcbsma.com (1 depls)",
+ "berlin-creative.de (1 depls)",
+ "benefit-one.co.jp (1 depls)",
+ "bendigobank.com.au (1 depls)",
+ "bellintegrator.com (1 depls)",
+ "wx.jp.nec.com (1 depls)",
+ "beans.com.my (1 depls)",
+ "yandex.com (1 depls)",
+ "bcbssc.com (1 depls)",
+ "bcbsfl.com (1 depls)",
+ "bestbuy.com (1 depls)",
+ "yandex.ru (1 depls)",
+ "bca.co.id (1 depls)",
+ "baw.de (1 depls)",
+ "zero2ai.io (1 depls)",
+ "zerto.com (1 depls)",
+ "zettaset.com (1 depls)",
+ "zh.nes.jp.nec.com (1 depls)",
+ "zivra.com (1 depls)",
+ "bertelsmann.de (1 depls)",
+ "bet365.com (1 depls)",
+ "bnsf.com (1 depls)",
+ "wellcare.com (1 depls)",
+ "axians.com (1 depls)",
+ "bmw.de (1 depls)",
+ "bmo.com (1 depls)",
+ "bmc.com (1 depls)",
+ "websam.jp.nec.com (1 depls)",
+ "bluestembrands.com (1 depls)",
+ "blueair.aero (1 depls)",
+ "bls.gov (1 depls)",
+ "westmonroepartners.com (1 depls)",
+ "bevalex.by (1 depls)",
+ "bliex.com (1 depls)",
+ "wimionline.be (1 depls)",
+ "worldline.com (1 depls)",
+ "bl.ch (1 depls)",
+ "bkfs.com (1 depls)",
+ "bitbull.ch (1 depls)",
+ "birevim.com.tr (1 depls)",
+ "bhp.com (1 depls)",
+ "cetelem.com.br (1 depls)",
+ "cfh.sk (1 depls)",
+ "danskebank.lt (1 depls)",
+ "cgi.com (1 depls)",
+ "uftwf.org (1 depls)",
+ "ugent.be (1 depls)",
+ "7p-group.com (1 depls)",
+ "atix.de (1 depls)",
+ "uipath.com (1 depls)",
+ "creditone.com (1 depls)",
+ "uk.pgds.com (1 depls)",
+ "cpcc.edu (1 depls)",
+ "ulb.ac.be (1 depls)",
+ "couchbase.com (1 depls)",
+ "ultra.com.br (1 depls)",
+ "corning.com (1 depls)",
+ "copel.com (1 depls)",
+ "contracted.pmi.com (1 depls)",
+ "unam.mx (1 depls)",
+ "unbelievable-machine.com (1 depls)",
+ "conservador.cl (1 depls)",
+ "conocophillips.com (1 depls)",
+ "unisystems.gr (1 depls)",
+ "u-s-p.ch (1 depls)",
+ "croz.net (1 depls)",
+ "crunchydata.com (1 depls)",
+ "tunisietelecom.tn (1 depls)",
+ "tsisyk.com (1 depls)",
+ "tubitak.gov.tr (1 depls)",
+ "cyccustomshop.com (1 depls)",
+ "ativainvestimentos.com.br (1 depls)",
+ "tudelft.nl (1 depls)",
+ "tugo.com (1 depls)",
+ "cusa.canon.com (1 depls)",
+ "cumulus-systems.com (1 depls)",
+ "cu.co.th (1 depls)",
+ "crv4all.com (1 depls)",
+ "ctc-g.com.sg (1 depls)",
+ "ctc-g.com.my (1 depls)",
+ "cspq.gouv.qc.ca (1 depls)",
+ "cspire.com (1 depls)",
+ "tutanota.com (1 depls)",
+ "csiltd.co.uk (1 depls)",
+ "gizasystems.com (1 depls)",
+ "tuwien.ac.at (1 depls)",
+ "comtegra.pl (1 depls)",
+ "computaris.com (1 depls)",
+ "computacenter.com (1 depls)",
+ "usfalcon.com (1 depls)",
+ "cloudnesil.com (1 depls)",
+ "cloudgensys.com (1 depls)",
+ "cloudfitsoftware.com (1 depls)",
+ "usaa.com (1 depls)",
+ "cloud9ers.com (1 depls)",
+ "cloud-bigdata.net (1 depls)",
+ "clearstream.com (1 depls)",
+ "clearlake.ibm.com (1 depls)",
+ "clarite.pl (1 depls)",
+ "cmbchina.com (1 depls)",
+ "uspto.gov (1 depls)",
+ "citictel-cpc.com (1 depls)",
+ "citec.com.au (1 depls)",
+ "vandergiesen.eu (1 depls)",
+ "cibc.com (1 depls)",
+ "chrissandrini.ch (1 depls)",
+ "varegos.com (1 depls)",
+ "chem.byu.edu (1 depls)",
+ "us.logicalis.com (1 depls)",
+ "audemarspiguet.com (1 depls)",
+ "compro.com.tr (1 depls)",
+ "comas.co.kr (1 depls)",
+ "compatibl.com (1 depls)",
+ "united.com (1 depls)",
+ "univie.ac.at (1 depls)",
+ "upc.ch (1 depls)",
+ "commerzbank.com (1 depls)",
+ "upenn.edu (1 depls)",
+ "comcast.net (1 depls)",
+ "upmc.edu (1 depls)",
+ "comafi.com.ar (1 depls)",
+ "us.af.mil (1 depls)",
+ "coinscrap.com (1 depls)",
+ "cohesity.com (1 depls)",
+ "ural.rt.ru (1 depls)",
+ "cognitivescale.com (1 depls)",
+ "cognitionfoundry.com (1 depls)",
+ "urr.se (1 depls)",
+ "cnsys.bg (1 depls)",
+ "cnr.it (1 depls)",
+ "sumerge.com (1 depls)",
+ "gravis.bg (1 depls)",
+ "globacap.com (1 depls)",
+ "mprj.mp.br (1 depls)",
+ "moodys.com (1 depls)",
+ "advent.com (1 depls)",
+ "monex.com.mx (1 depls)",
+ "rku-it.de (1 depls)",
+ "rnp.br (1 depls)",
+ "mintic.gov.co (1 depls)",
+ "mindgate.in (1 depls)",
+ "robak.at (1 depls)",
+ "rockplace.co.kr (1 depls)",
+ "rogers.com (1 depls)",
+ "mhi.co.jp (1 depls)",
+ "mfec.co.th (1 depls)",
+ "rosbank.ru (1 depls)",
+ "metlife.com (1 depls)",
+ "royalcyber.com (1 depls)",
+ "rpa.gov.uk (1 depls)",
+ "metanet.co.kr (1 depls)",
+ "meridianit.co.uk (1 depls)",
+ "mendix.com (1 depls)",
+ "morganstanley.com (1 depls)",
+ "msg.group (1 depls)",
+ "alpha.gr (1 depls)",
+ "rhb.ch (1 depls)",
+ "ndb.bg (1 depls)",
+ "ncr.com (1 depls)",
+ "red8.com (1 depls)",
+ "nbs.sk (1 depls)",
+ "redbeemedia.com (1 depls)",
+ "reged.com (1 depls)",
+ "naver.com (1 depls)",
+ "regionh.dk (1 depls)",
+ "n11.com (1 depls)",
+ "mx1.ibm.com (1 depls)",
+ "mutua.es (1 depls)",
+ "musala.com (1 depls)",
+ "reply.it (1 depls)",
+ "amdocs.onmicrosoft.com (1 depls)",
+ "multapplied.net (1 depls)",
+ "muf.co.id (1 depls)",
+ "mtel.ba (1 depls)",
+ "resbank.co.za (1 depls)",
+ "msn.com (1 depls)",
+ "medsolv.com (1 depls)",
+ "mednet.ucla.edu (1 depls)",
+ "ampsight.com (1 depls)",
+ "medirect.com.mt (1 depls)",
+ "loblaw.ca (1 depls)",
+ "sancorsalud.com.ar (1 depls)",
+ "sanlam.co.za (1 depls)",
+ "sayers.com (1 depls)",
+ "sb.cl (1 depls)",
+ "list.soliton.co.jp (1 depls)",
+ "sberbank.hr (1 depls)",
+ "adp.com (1 depls)",
+ "scalefree.co.jp (1 depls)",
+ "anexia-it.com (1 depls)",
+ "lightning-it.de (1 depls)",
+ "libertyglobal.com (1 depls)",
+ "lgcns.com (1 depls)",
+ "lfst.bayern.de (1 depls)",
+ "admiralty.io (1 depls)",
+ "leep.app (1 depls)",
+ "learnconsult.com (1 depls)",
+ "sulamerica.com.br (1 depls)",
+ "lafargeholcim.com (1 depls)",
+ "lombardodier.com (1 depls)",
+ "losheroes.cl (1 depls)",
+ "samoscyber.com (1 depls)",
+ "mainstream.net (1 depls)",
+ "mduresources.com (1 depls)",
+ "mdhs.ms.gov (1 depls)",
+ "mayadata.io (1 depls)",
+ "marlow.com.cy (1 depls)",
+ "markiiisys.com (1 depls)",
+ "marcelbrouwers.nl (1 depls)",
+ "mantech.com (1 depls)",
+ "mandatumlife.fi (1 depls)",
+ "mail.schwarz (1 depls)",
+ "lowes.com (1 depls)",
+ "s-und-n.de (1 depls)",
+ "mail.mil (1 depls)",
+ "sa.ibm.com (1 depls)",
+ "mahkamahagung.go.id (1 depls)",
+ "maana.io (1 depls)",
+ "ma.ibm.com (1 depls)",
+ "lso.ca (1 depls)",
+ "baloise.ch (1 depls)",
+ "ndgit.com (1 depls)",
+ "realglobe.jp (1 depls)",
+ "labcorp.com (1 depls)",
+ "pivotal.io (1 depls)",
+ "plusserver.com (1 depls)",
+ "agenda.si (1 depls)",
+ "oraex.com.br (1 depls)",
+ "pmi.com (1 depls)",
+ "polyu.edu.hk (1 depls)",
+ "opitz-consulting.com (1 depls)",
+ "popso.it (1 depls)",
+ "portshift.io (1 depls)",
+ "posteitaliane.it (1 depls)",
+ "openadvice.de (1 depls)",
+ "ppb.com (1 depls)",
+ "pr.sebrae.com.br (1 depls)",
+ "agd.gov.au (1 depls)",
+ "principledtechnologies.com (1 depls)",
+ "ominsure.co.za (1 depls)",
+ "omantel.om (1 depls)",
+ "ol.ge (1 depls)",
+ "oksystem.cz (1 depls)",
+ "ok.is (1 depls)",
+ "planeta.es (1 depls)",
+ "osec.pl (1 depls)",
+ "raytheon.com (1 depls)",
+ "oss-group.co.nz (1 depls)",
+ "pccth.com (1 depls)",
+ "pc-daiwabo.co.jp (1 depls)",
+ "perceptilabs.com (1 depls)",
+ "percona.com (1 depls)",
+ "pb.com (1 depls)",
+ "paytrail.com (1 depls)",
+ "agirc-arrco.fr (1 depls)",
+ "paycore.com (1 depls)",
+ "pasam.com (1 depls)",
+ "paradigmadigital.com (1 depls)",
+ "par-tec.it (1 depls)",
+ "pagero.com (1 depls)",
+ "agiledigital.com.au (1 depls)",
+ "outlook.fr (1 depls)",
+ "physter.com (1 depls)",
+ "outlook.at (1 depls)",
+ "ahgora.com.br (1 depls)",
+ "otago.ac.nz (1 depls)",
+ "ot.olympus.co.jp (1 depls)",
+ "odsoftwarehouse.com (1 depls)",
+ "ocsnet.it (1 depls)",
+ "priorbank.by (1 depls)",
+ "ocbc.com (1 depls)",
+ "nisa.com (1 depls)",
+ "pvgroup.be (1 depls)",
+ "pwc.com (1 depls)",
+ "qss.ba (1 depls)",
+ "allbluesolutions.com (1 depls)",
+ "quantech.com.lb (1 depls)",
+ "rabobank.nl (1 depls)",
+ "networld.co.jp (1 depls)",
+ "ae.ibm.com (1 depls)",
+ "netscape.net (1 depls)",
+ "nets.eu (1 depls)",
+ "radware.com (1 depls)",
+ "raiffeisengroup.ba (1 depls)",
+ "netnumber.com (1 depls)",
+ "netdriven.de (1 depls)",
+ "rakuten.com (1 depls)",
+ "nestle.com (1 depls)",
+ "nesic.com (1 depls)",
+ "neoflex.ru (1 depls)",
+ "nissho-ele.co.jp (1 depls)",
+ "puma.com (1 depls)",
+ "psba.qld.gov.au (1 depls)",
+ "ntst.com (1 depls)",
+ "oa.mo.gov (1 depls)",
+ "proalpha.de (1 depls)",
+ "prodevans.com (1 depls)",
+ "proedge.hk (1 depls)",
+ "profi-ag.de (1 depls)",
+ "nuuptech.com (1 depls)",
+ "nuuday.dk (1 depls)",
+ "proficom.de (1 depls)",
+ "alerant.hu (1 depls)",
+ "nlmk.com (1 depls)",
+ "proholding.com.pl (1 depls)",
+ "novascotia.ca (1 depls)",
+ "novadoc.nl (1 depls)",
+ "northstar.co.kr (1 depls)",
+ "prosis.de (1 depls)",
+ "protonmail.com (1 depls)",
+ "nogui.org (1 depls)",
+ "nnit.com (1 depls)",
+ "lacaja.com.ar (1 depls)",
+ "schultz.net (1 depls)",
+ "labanquepostale.fr (1 depls)",
+ "spaceflightindustries.com (1 depls)",
+ "ibagroup.eu (1 depls)",
+ "i-s.com.pl (1 depls)",
+ "i-3.co.id (1 depls)",
+ "spi.de (1 depls)",
+ "husbanken.no (1 depls)",
+ "hughes.com (1 depls)",
+ "hu.nl (1 depls)",
+ "spirent.com (1 depls)",
+ "hr.ibm.com (1 depls)",
+ "sprint.com (1 depls)",
+ "hpcg.com.mx (1 depls)",
+ "hpbsc.ch (1 depls)",
+ "src.si (1 depls)",
+ "hotmail.de (1 depls)",
+ "sscinc.com (1 depls)",
+ "hoplasoftware.com (1 depls)",
+ "stackrox.com (1 depls)",
+ "stakater.com (1 depls)",
+ "homecenter.co (1 depls)",
+ "apptecinc.com (1 depls)",
+ "ibs.bg (1 depls)",
+ "inhouse.wko.at (1 depls)",
+ "ibtech.com.tr (1 depls)",
+ "informatika.si (1 depls)",
+ "kw.zain.com (1 depls)",
+ "softwareone.com (1 depls)",
+ "infineon.com (1 depls)",
+ "adeo.com (1 depls)",
+ "solem.cl (1 depls)",
+ "imba.oeaw.ac.at (1 depls)",
+ "solute.us (1 depls)",
+ "sopragroup.com (1 depls)",
+ "sorint.it (1 depls)",
+ "iisl.com (1 depls)",
+ "ihealthtechnologies.com (1 depls)",
+ "igt.com (1 depls)",
+ "sorintlab.com (1 depls)",
+ "id.ibm.com (1 depls)",
+ "icu-it.nl (1 depls)",
+ "icteam.it (1 depls)",
+ "icloud.com (1 depls)",
+ "south.rt.ru (1 depls)",
+ "holmes.nl (1 depls)",
+ "holcim.com (1 depls)",
+ "hna.honda.com (1 depls)",
+ "stantec.com (1 depls)",
+ "guavus.com (1 depls)",
+ "stm.info (1 depls)",
+ "gruppohera.it (1 depls)",
+ "grupodifare.com (1 depls)",
+ "groupeonepoint.com (1 depls)",
+ "greentube.com (1 depls)",
+ "pccw.com (1 depls)",
+ "graat.co.jp (1 depls)",
+ "gpa-group.it (1 depls)",
+ "gp.biglobe.co.jp (1 depls)",
+ "gov.rs (1 depls)",
+ "gov.nt.ca (1 depls)",
+ "aramco.com (1 depls)",
+ "google.com (1 depls)",
+ "goodmit.co.kr (1 depls)",
+ "goias.gov.br (1 depls)",
+ "gmv.com (1 depls)",
+ "stud.hslu.ch (1 depls)",
+ "student.kdg.be (1 depls)",
+ "adaclare.com (1 depls)",
+ "halkbank.com.tr (1 depls)",
+ "handelsbanken.se (1 depls)",
+ "state.ca.gov (1 depls)",
+ "aprr.fr (1 depls)",
+ "staples.ca (1 depls)",
+ "apx.fr (1 depls)",
+ "hizliyedek.com (1 depls)",
+ "hitachivantara.com (1 depls)",
+ "hetg.ie (1 depls)",
+ "here.com (1 depls)",
+ "hel.fi (1 depls)",
+ "healthnow.org (1 depls)",
+ "hashicorp.com (1 depls)",
+ "hds.com (1 depls)",
+ "hco.ntt.co.jp (1 depls)",
+ "stcpay.com.sa (1 depls)",
+ "steelbridgelabs.com (1 depls)",
+ "hbl.ch (1 depls)",
+ "hazelcast.com (1 depls)",
+ "havenhealthcare.com (1 depls)",
+ "ar.ibm.com (1 depls)",
+ "infracode.ru (1 depls)",
+ "infinkon.eu (1 depls)",
+ "injeinc.co.kr (1 depls)",
+ "siemens-healthineers.com (1 depls)",
+ "keytradebank.com (1 depls)",
+ "kennasecurity.com (1 depls)",
+ "zte.com.cn (1 depls)",
+ "seldon.io (1 depls)",
+ "kbtg.tech (1 depls)",
+ "kbc.be (1 depls)",
+ "semperti.com (1 depls)",
+ "kb.dk (1 depls)",
+ "sentryds.com (1 depls)",
+ "service-rz.de (1 depls)",
+ "kaloom.com (1 depls)",
+ "kaizentechpartners.com (1 depls)",
+ "service.com.br (1 depls)",
+ "juntadeandalucia.es (1 depls)",
+ "juniper.net (1 depls)",
+ "jsa-group.ru (1 depls)",
+ "ses.com (1 depls)",
+ "shi-g.com (1 depls)",
+ "sibintek.ru (1 depls)",
+ "keyvatech.com (1 depls)",
+ "kgi.com (1 depls)",
+ "kibs.com.mk (1 depls)",
+ "securustechnologies.com (1 depls)",
+ "kuehne-nagel.com (1 depls)",
+ "ktbcs.co.th (1 depls)",
+ "scigames.at (1 depls)",
+ "sct.gouv.qc.ca (1 depls)",
+ "seat.es (1 depls)",
+ "kp.org (1 depls)",
+ "kove.net (1 depls)",
+ "seccom.ch (1 depls)",
+ "komplex-it.dk (1 depls)",
+ "kiratech.it (1 depls)",
+ "sefin.fortaleza.ce.gov.br (1 depls)",
+ "kolodok.info (1 depls)",
+ "kolabsys.com (1 depls)",
+ "sefin.gob.hn (1 depls)",
+ "segrocers.com (1 depls)",
+ "kobelcosys.co.jp (1 depls)",
+ "ko2.it (1 depls)",
+ "knowis.de (1 depls)",
+ "jeskell.com (1 depls)",
+ "shlitz.com (1 depls)",
+ "silich.de (1 depls)",
+ "it-fabrik.at (1 depls)",
+ "iridium-russia.com (1 depls)",
+ "janwiebe.eu (1 depls)",
+ "apendo.se (1 depls)",
+ "slac.stanford.edu (1 depls)",
+ "invesco.com (1 depls)",
+ "intility.no (1 depls)",
+ "sll.se (1 depls)",
+ "interkassa.com (1 depls)",
+ "interior.es (1 depls)",
+ "intercom.com.eg (1 depls)",
+ "intellilink.co.jp (1 depls)",
+ "inteliquent.com (1 depls)",
+ "snt.ro (1 depls)",
+ "soaint.com (1 depls)",
+ "instana.com (1 depls)",
+ "socgen.com (1 depls)",
+ "inps.it (1 depls)",
+ "innogy.com (1 depls)",
+ "innogrid.com (1 depls)",
+ "isd.jp.nec.com (1 depls)",
+ "ipo.gov.uk (1 depls)",
+ "it.ecommpay.com (1 depls)",
+ "itcenter.com.pt (1 depls)",
+ "iworks.kr (1 depls)",
+ "simlogics.net (1 depls)",
+ "siriuscom.com (1 depls)",
+ "simtech.nl (1 depls)",
+ "itergo.com (1 depls)",
+ "itchannel.asia (1 depls)",
+ "itl.com.ar (1 depls)",
+ "baloise.lu (1 depls)",
+ "apap.com.do (1 depls)",
+ "singtel.com (1 depls)",
+ "italgas.it (1 depls)",
+ "sina.cn (1 depls)",
+ "apoio.fr (0 depls)",
+ "amazon.com (0 depls)",
+ "archinsurance.com (0 depls)",
+ "acertcon.com.br (0 depls)",
+ "appdynamics.com (0 depls)",
+ "aa.jp.fujitsu.com (0 depls)",
+ "afbnet.it (0 depls)",
+ "anaconda.com (0 depls)",
+ "audi.de (0 depls)",
+ "aselsan.com.tr (0 depls)",
+ "407etr.com (0 depls)",
+ "assentis.com (0 depls)",
+ "21vianet.com (0 depls)",
+ "ztech.io (0 depls)",
+ "basefarm.com (0 depls)",
+ "opentext.com (0 depls)",
+ "saic.com (0 depls)",
+ "riverbed.com (0 depls)",
+ "rackspace.com (0 depls)",
+ "puzzle.ch (0 depls)",
+ "programmer.net (0 depls)",
+ "profuturo.com.mx (0 depls)",
+ "prgx.com (0 depls)",
+ "pm.nttdata.co.jp (0 depls)",
+ "phe.gov.uk (0 depls)",
+ "paysafe.com (0 depls)",
+ "otpsrbija.rs (0 depls)",
+ "orpea.net (0 depls)",
+ "nxp.com (0 depls)",
+ "schindler.com (0 depls)",
+ "nttdocomo.com (0 depls)",
+ "ntsretail.com (0 depls)",
+ "nexign.com (0 depls)",
+ "newrelic.com (0 depls)",
+ "netscout.com (0 depls)",
+ "neareasttechnology.com (0 depls)",
+ "ncontr.com (0 depls)",
+ "ncl.com (0 depls)",
+ "multisoft.co.id (0 depls)",
+ "multiplan.com (0 depls)",
+ "metrodemedellin.gov.co (0 depls)",
+ "medius.si (0 depls)",
+ "scalait.com (0 depls)",
+ "shaun.io (0 depls)",
+ "matrix.co.il (0 depls)",
+ "thejay.net (0 depls)",
+ "xsyscemerlang.com (0 depls)",
+ "xc.jp.nec.com (0 depls)",
+ "websiteitalia.com (0 depls)",
+ "verizonwireless.com (0 depls)",
+ "vegas.com (0 depls)",
+ "ute.com.uy (0 depls)",
+ "unipoint.co.kr (0 depls)",
+ "uib.es (0 depls)",
+ "toyota.com.br (0 depls)",
+ "tn.gov (0 depls)",
+ "tmx.com (0 depls)",
+ "tjpa.jus.br (0 depls)",
+ "th.ibm.com (0 depls)",
+ "smanager.com.br (0 depls)",
+ "technet-asia.com (0 depls)",
+ "techlead.com.br (0 depls)",
+ "symbiont.io (0 depls)",
+ "suva.ch (0 depls)",
+ "supermicro.com (0 depls)",
+ "sttproductions.de (0 depls)",
+ "stonedoorgroup.com (0 depls)",
+ "stofa.dk (0 depls)",
+ "stena.com (0 depls)",
+ "ss.jrkyushu-g.co.jp (0 depls)",
+ "solace.com (0 depls)",
+ "softwareag.com (0 depls)",
+ "mazda.co.jp (0 depls)",
+ "loxon.eu (0 depls)",
+ "blackducksoftware.com (0 depls)",
+ "corp.sysco.com (0 depls)",
+ "evtcorp.com (0 depls)",
+ "et.mde.es (0 depls)",
+ "elastic.co (0 depls)",
+ "east.ntt.co.jp (0 depls)",
+ "duo.nl (0 depls)",
+ "dtcc.com (0 depls)",
+ "doc88.com.br (0 depls)",
+ "disney.com (0 depls)",
+ "delsud.com.ar (0 depls)",
+ "dataport.de (0 depls)",
+ "cybercom.com (0 depls)",
+ "cristie.se (0 depls)",
+ "conova.com (0 depls)",
+ "finat.pl (0 depls)",
+ "commscope.com (0 depls)",
+ "coming.rs (0 depls)",
+ "cnvrg.io (0 depls)",
+ "cms.hhs.gov (0 depls)",
+ "ciasc.sc.gov.br (0 depls)",
+ "cetin.cz (0 depls)",
+ "camptocamp.com (0 depls)",
+ "caditgroup.com (0 depls)",
+ "bthtech.com (0 depls)",
+ "br-petrobras.com.br (0 depls)",
+ "bolivariano.com (0 depls)",
+ "bnc.ca (0 depls)",
+ "fcc.es (0 depls)",
+ "fintek.com.tr (0 depls)",
+ "lme.com (0 depls)",
+ "hkairport.com (0 depls)",
+ "linquest.com (0 depls)",
+ "lemc.com.hk (0 depls)",
+ "kpmg.com (0 depls)",
+ "kangaroot.net (0 depls)",
+ "jbcc.co.jp (0 depls)",
+ "itgroupinc.asia (0 depls)",
+ "italtel.com (0 depls)",
+ "ipmgroup.be (0 depls)",
+ "integraltech.com.au (0 depls)",
+ "insightglobal.com (0 depls)",
+ "inet.co.th (0 depls)",
+ "ibermatica.com (0 depls)",
+ "hk.ncs-i.com (0 depls)",
+ "fmc-na.com (0 depls)",
+ "hcahealthcare.com (0 depls)",
+ "havelsan.com.tr (0 depls)",
+ "googlemail.com (0 depls)",
+ "gigaspaces.com (0 depls)",
+ "gic.com.sg (0 depls)",
+ "gfi.fr (0 depls)",
+ "gexterno.es (0 depls)",
+ "generali.com.hk (0 depls)",
+ "gemalto.com (0 depls)",
+ "gds.ey.com (0 depls)",
+ "fwd.com (0 depls)",
+ "fokus.fraunhofer.de (0 depls)",
+ "103mvl.net (0 depls)"
+ ],
+ "description": "Email Domain",
+ "index": 0,
+ "layout": "IPY_MODEL_3b98c35ed21540818ef1455dcbb516a1",
+ "style": "IPY_MODEL_783f835a09b649a3887e918f615fb059"
+ }
+ },
+ "90bf62ef0b324ea5a1a129e311488af5": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DropdownModel",
+ "state": {
+ "_options_labels": [
+ "0",
+ "1",
+ "2",
+ "3",
+ "4",
+ "5",
+ "6",
+ "7",
+ "8",
+ "9",
+ "10",
+ "11",
+ "12",
+ "13",
+ "14",
+ "15",
+ "16",
+ "17",
+ "18",
+ "19",
+ "20",
+ "21",
+ "22",
+ "23"
+ ],
+ "description": "hour",
+ "index": 12,
+ "layout": "IPY_MODEL_3163d9abe1f74289856fbd41d93898e6",
+ "style": "IPY_MODEL_4f7fa96550524dc8aa95f32929a8a7c9"
+ }
+ },
+ "92297dc57c2b4cfa9d3bc8f944a40827": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DropdownModel",
+ "state": {
+ "_options_labels": [
+ "0",
+ "1",
+ "2",
+ "3",
+ "4",
+ "5",
+ "6",
+ "7",
+ "8",
+ "9",
+ "10",
+ "11",
+ "12",
+ "13",
+ "14",
+ "15",
+ "16",
+ "17",
+ "18",
+ "19",
+ "20",
+ "21",
+ "22",
+ "23"
+ ],
+ "description": "hour",
+ "index": 16,
+ "layout": "IPY_MODEL_d824eea7c0cf43ceabcb45a3994f41b8",
+ "style": "IPY_MODEL_15b496f6cb6c4f4d864e607e3e5153c8"
+ }
+ },
+ "92e5009e655d4900bedd95c9f1c96044": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "94bf7bbc623a44188de675db3a428cd8": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "9600d07e093e4f5da96ca880a34bed9c": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "9737e62a3a384956a2d13f7eb2448b09": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "97a719b053c2459b82f1188588215f62": {
+ "model_module": "@jupyter-widgets/output",
+ "model_module_version": "1.0.0",
+ "model_name": "OutputModel",
+ "state": {
+ "layout": "IPY_MODEL_bfb34eb7c08d4498acff2b07ad0e983e"
+ }
+ },
+ "98409eb030224181b31200aa09ddbd5e": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "9943c7af97c043929d9b11f96d2b1493": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DropdownModel",
+ "state": {
+ "_options_labels": [
+ "1",
+ "2",
+ "3",
+ "4",
+ "5",
+ "6",
+ "7",
+ "8",
+ "9",
+ "10",
+ "11",
+ "12",
+ "13",
+ "14",
+ "15",
+ "16",
+ "17",
+ "18",
+ "19",
+ "20",
+ "21",
+ "22",
+ "23",
+ "24",
+ "25",
+ "26",
+ "27",
+ "28",
+ "29",
+ "30",
+ "31"
+ ],
+ "description": "day",
+ "index": 16,
+ "layout": "IPY_MODEL_577d3b8cc6c240fc9ac0d58120e87884",
+ "style": "IPY_MODEL_61fe6cf101554747a0146b0dff9b29f7"
+ }
+ },
+ "9a0e46d0873345069806aea914731004": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "9dfadd5d91394284be17ec3b8c93d538": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "9f805b7c16364e5d998997c9b67d4279": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "a19cbc7f1f6c4eb2bf416f60fe935420": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "a52337d4feee4c67b30b1e68ab1a9c5b": {
+ "model_module": "@jupyter-widgets/output",
+ "model_module_version": "1.0.0",
+ "model_name": "OutputModel",
+ "state": {
+ "layout": "IPY_MODEL_c540dc184e134b9584fcacc08d48a00b"
+ }
+ },
+ "a52a2575806a4b5b9148a37f63e23f92": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "a6963905f0b1490686954276b3041ba0": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "a7d19912aabd4556adefa2003c9bbf08": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "VBoxModel",
+ "state": {
+ "_dom_classes": [
+ "widget-interact"
+ ],
+ "children": [
+ "IPY_MODEL_32aa4bd9696d40b5b970db6d95e9e9f5",
+ "IPY_MODEL_2840a00ac95843378f9263bef757dbda",
+ "IPY_MODEL_1511e6a7f0c045c9b64cbf4995394790",
+ "IPY_MODEL_b652d15998674c2ca2ef8b3bfee8e21a",
+ "IPY_MODEL_1021e472ecaf4efab30d65c941f73784",
+ "IPY_MODEL_2d5b9f562fab4b6aa87b892f760bd1d0",
+ "IPY_MODEL_e78e9d3b11c24b1a9b24917c9627665c",
+ "IPY_MODEL_1f6a96cb9a554a70acf4556e2bc83005"
+ ],
+ "layout": "IPY_MODEL_55416ff6662f4621bca35aa463390d75"
+ }
+ },
+ "a80a7a944131406fbb1247bfe2331780": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "a87dfae7516348c0b4ca8ab465aa93c3": {
+ "model_module": "@jupyter-widgets/output",
+ "model_module_version": "1.0.0",
+ "model_name": "OutputModel",
+ "state": {
+ "layout": "IPY_MODEL_e7f3f30b09b84c918e6983d96296b643"
+ }
+ },
+ "a9938f87c9d74bd18c1c8017f4cbe2da": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "a9c9b9ecbc9b4f2d87083c7321b62f89": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "ab87ed80a8dc43debbce6da37480a225": {
+ "model_module": "@jupyter-widgets/output",
+ "model_module_version": "1.0.0",
+ "model_name": "OutputModel",
+ "state": {
+ "layout": "IPY_MODEL_c303e07725a74136ab3bd345c1ea7542"
+ }
+ },
+ "acc0b557e0bd4713a54806823d9b9f9b": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "VBoxModel",
+ "state": {
+ "_dom_classes": [
+ "widget-interact"
+ ],
+ "children": [
+ "IPY_MODEL_6bce4e1fd95141b0b9b09c09e0ee7c92",
+ "IPY_MODEL_2799f90af52645deb9166d90f460c78d"
+ ],
+ "layout": "IPY_MODEL_5254775885434d2a8f2ad27eb2bafe4f"
+ }
+ },
+ "ad8dc5aeea494acfa5c571a5bcde362f": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "ae529b20bee0477bb5c28729873e4ba0": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "aef0019e864646bfa9349e36dfc13ebf": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DropdownModel",
+ "state": {
+ "_options_labels": [
+ "1",
+ "2",
+ "3",
+ "4",
+ "5",
+ "6",
+ "7",
+ "8",
+ "9",
+ "10",
+ "11",
+ "12",
+ "13",
+ "14",
+ "15",
+ "16",
+ "17",
+ "18",
+ "19",
+ "20",
+ "21",
+ "22",
+ "23",
+ "24",
+ "25",
+ "26",
+ "27",
+ "28",
+ "29",
+ "30",
+ "31"
+ ],
+ "description": "day",
+ "index": 16,
+ "layout": "IPY_MODEL_94bf7bbc623a44188de675db3a428cd8",
+ "style": "IPY_MODEL_2625bbe3fb714fe68b19ba4e12e81581"
+ }
+ },
+ "b1c872d655074efaaf7d421a20c41f32": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "b22fc2eda98f4a578dea6d43b95a1809": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "b43d35cd5b2045558709795d0ea45072": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "b46af3399ab143fd9ad92cb10788ac6f": {
+ "model_module": "@jupyter-widgets/output",
+ "model_module_version": "1.0.0",
+ "model_name": "OutputModel",
+ "state": {
+ "layout": "IPY_MODEL_897bc201def445cba73fff63d6d5a8f4"
+ }
+ },
+ "b652d15998674c2ca2ef8b3bfee8e21a": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DropdownModel",
+ "state": {
+ "_options_labels": [
+ "0",
+ "1",
+ "2",
+ "3",
+ "4",
+ "5",
+ "6",
+ "7",
+ "8",
+ "9",
+ "10",
+ "11",
+ "12",
+ "13",
+ "14",
+ "15",
+ "16",
+ "17",
+ "18",
+ "19",
+ "20",
+ "21",
+ "22",
+ "23"
+ ],
+ "description": "hour",
+ "index": 15,
+ "layout": "IPY_MODEL_ddd9bc3aa3734febbda661d3e7af1fe3",
+ "style": "IPY_MODEL_4f22969a64664e9aabda077965af960f"
+ }
+ },
+ "b7d39ffa254c44a1a53ea6674671fd0d": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "b8394a07081041eca352b7ad0aa58714": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "bac678d7cd8849d380720a9f3e76bfec": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "bbf6ca27904d47ec8364181d724c0747": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "VBoxModel",
+ "state": {
+ "_dom_classes": [
+ "widget-interact"
+ ],
+ "children": [
+ "IPY_MODEL_8b260fc3f2cb4f709147449baff03e14",
+ "IPY_MODEL_0a4bd157b89e43559dd73fee0866efef"
+ ],
+ "layout": "IPY_MODEL_9f805b7c16364e5d998997c9b67d4279"
+ }
+ },
+ "be985ee1e03a43f4a2e52ff4a015baf6": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "beaea63aea9c42398f54b4628a7330bd": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "bf0192248c534f0995c4b9f4ce090a69": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "bf3fa02febe048ef992990995d7d4a16": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "bfb22336425348ff9dca5d4bd5805a72": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "bfb34eb7c08d4498acff2b07ad0e983e": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "c02ec27b73774540abf679c305fddd22": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "c0d633a1c21c46929e790335d5a683c7": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "SelectModel",
+ "state": {
+ "_options_labels": [
+ "ALL (5481 depls)",
+ "4.3 (3398 depls)",
+ "4.4 (1209 depls)",
+ "4.2 ( 818 depls)",
+ "nan ( 51 depls)",
+ "4.5 ( 4 depls)",
+ "4.1 ( 1 depls)"
+ ],
+ "description": "Major.Minor",
+ "index": 1,
+ "layout": "IPY_MODEL_f7324875a8664097a26ae578808f66d3",
+ "style": "IPY_MODEL_ad8dc5aeea494acfa5c571a5bcde362f"
+ }
+ },
+ "c14b31d26f3946e7b33c47fa30fd1caf": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "c1a3b359ec14434ab5396341bee6c113": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "c303e07725a74136ab3bd345c1ea7542": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "c375ee0c5d2848928ec8fbb4ed3e25b2": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "c540dc184e134b9584fcacc08d48a00b": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "c808e898c71540188379814824eb5a40": {
+ "model_module": "@jupyter-widgets/output",
+ "model_module_version": "1.0.0",
+ "model_name": "OutputModel",
+ "state": {
+ "layout": "IPY_MODEL_1f73cc572f2b46d984727b23e2458407"
+ }
+ },
+ "c887cabc21fd4909bab5e178fb3c2645": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "c99b35ec1eeb4cb49d505d84a048d9ee": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "ca61e1105ae5426d8a761db8a23fbd96": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "cc3aaf470fa64b11b4944d847863b8c3": {
+ "model_module": "@jupyter-widgets/output",
+ "model_module_version": "1.0.0",
+ "model_name": "OutputModel",
+ "state": {
+ "layout": "IPY_MODEL_09aa7277a98b45689cab3b76ee7d60fc"
+ }
+ },
+ "cc4291f8495141af8c047ff5cef6d91d": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "cc8570bbb92143dcbc1994888d2d1a28": {
+ "model_module": "@jupyter-widgets/output",
+ "model_module_version": "1.0.0",
+ "model_name": "OutputModel",
+ "state": {
+ "layout": "IPY_MODEL_fee98e2d97c94175955d5fcaf864be8c"
+ }
+ },
+ "cd48f3cbb70646519a2bee4a09199719": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "ce58e0d56eb04be4b1953ea41a33248a": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "VBoxModel",
+ "state": {
+ "_dom_classes": [
+ "widget-interact"
+ ],
+ "children": [
+ "IPY_MODEL_3e8cf3da0b014c509986912fd7f3e2ec",
+ "IPY_MODEL_2d17162ea04348aea6c27eefe641d96b",
+ "IPY_MODEL_9943c7af97c043929d9b11f96d2b1493",
+ "IPY_MODEL_7d4193232f4e4f33a2bd8a872cff8b8c",
+ "IPY_MODEL_5d409f20e37c44ef98448c35ecb801b9",
+ "IPY_MODEL_247fd31698f84c5888e7f40f95f6cf32",
+ "IPY_MODEL_234ba692853b41e895f5e1622ceaa860",
+ "IPY_MODEL_82cf3f7658e9401bb625b1995f95104a"
+ ],
+ "layout": "IPY_MODEL_8c4a13a70e0149ddab3a8227905875b7"
+ }
+ },
+ "ce8e85f5948e4ca99e7fd19f2e620e50": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "cf3ca8357320446a85819782e4f59173": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "d219194e639e4b52a3be19a5bbc16c15": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "d23e45c825754b13804e16973fc401ed": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "d2dbf20e152c489992af7042b473c234": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "SelectMultipleModel",
+ "state": {
+ "_options_labels": [
+ "4.3.0",
+ "4.3.0-0.ci-2020-06-02-135046",
+ "4.3.0-0.ci-2020-06-02-143046",
+ "4.3.0-0.ci-2020-06-02-173709",
+ "4.3.0-0.nightly-2019-10-18-120524",
+ "4.3.0-0.nightly-2019-12-11-073659",
+ "4.3.0-0.nightly-2019-12-18-215416",
+ "4.3.0-0.nightly-2020-01-20-183918",
+ "4.3.0-0.nightly-2020-03-10-182422",
+ "4.3.0-0.nightly-2020-05-03-171510",
+ "4.3.0-0.nightly-2020-06-01-225519",
+ "4.3.0-0.nightly-ppc64le-2020-01-29-170954",
+ "4.3.0-0.nightly-ppc64le-2020-03-02-144601",
+ "4.3.0-0.nightly-ppc64le-2020-03-11-144705",
+ "4.3.0-0.nightly-ppc64le-2020-04-29-064539",
+ "4.3.0-0.nightly-s390x-2020-04-20-185529",
+ "4.3.0-0.okd-2020-05-07-035413",
+ "4.3.0-rc.2",
+ "4.3.1",
+ "4.3.10",
+ "4.3.11",
+ "4.3.12",
+ "4.3.13",
+ "4.3.16",
+ "4.3.17",
+ "4.3.18",
+ "4.3.19",
+ "4.3.2",
+ "4.3.21",
+ "4.3.22",
+ "4.3.23",
+ "4.3.3",
+ "4.3.5",
+ "4.3.8",
+ "4.3.9"
+ ],
+ "description": "Patches",
+ "index": [
+ 0,
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34
+ ],
+ "layout": "IPY_MODEL_54bf259fda584e60b1d867c1a976442e",
+ "rows": 5,
+ "style": "IPY_MODEL_ae529b20bee0477bb5c28729873e4ba0"
+ }
+ },
+ "d7141cb6d13944c2a9eded9c1c3274d5": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "d824eea7c0cf43ceabcb45a3994f41b8": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "d97896255c834f4dbc7de3f73e62755e": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "VBoxModel",
+ "state": {
+ "_dom_classes": [
+ "widget-interact"
+ ],
+ "children": [
+ "IPY_MODEL_90634dc50c834af3a188cf0ece5ccb33",
+ "IPY_MODEL_1ae91e63be8140f1bffb7706ab2aff8e"
+ ],
+ "layout": "IPY_MODEL_06da8f71ff134812a21c67802199be9e"
+ }
+ },
+ "dad8a49e772c4d30a135a257d4dbef6f": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "db880df5afce4691b772cee91a4ba643": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "SelectMultipleModel",
+ "state": {
+ "_options_labels": [
+ "4.3.0",
+ "4.3.0-0.ci-2020-06-02-135046",
+ "4.3.0-0.ci-2020-06-02-143046",
+ "4.3.0-0.ci-2020-06-02-173709",
+ "4.3.0-0.nightly-2019-10-18-120524",
+ "4.3.0-0.nightly-2019-12-11-073659",
+ "4.3.0-0.nightly-2019-12-18-215416",
+ "4.3.0-0.nightly-2020-01-20-183918",
+ "4.3.0-0.nightly-2020-03-10-182422",
+ "4.3.0-0.nightly-2020-05-03-171510",
+ "4.3.0-0.nightly-2020-06-01-225519",
+ "4.3.0-0.nightly-ppc64le-2020-01-29-170954",
+ "4.3.0-0.nightly-ppc64le-2020-03-02-144601",
+ "4.3.0-0.nightly-ppc64le-2020-03-11-144705",
+ "4.3.0-0.nightly-ppc64le-2020-04-29-064539",
+ "4.3.0-0.nightly-s390x-2020-04-20-185529",
+ "4.3.0-0.okd-2020-05-07-035413",
+ "4.3.0-rc.2",
+ "4.3.1",
+ "4.3.10",
+ "4.3.11",
+ "4.3.12",
+ "4.3.13",
+ "4.3.16",
+ "4.3.17",
+ "4.3.18",
+ "4.3.19",
+ "4.3.2",
+ "4.3.21",
+ "4.3.22",
+ "4.3.23",
+ "4.3.3",
+ "4.3.5",
+ "4.3.8",
+ "4.3.9"
+ ],
+ "description": "Patches",
+ "index": [
+ 0,
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34
+ ],
+ "layout": "IPY_MODEL_feef3dc9f7a94179bc95d8790afbe2c0",
+ "rows": 5,
+ "style": "IPY_MODEL_a52a2575806a4b5b9148a37f63e23f92"
+ }
+ },
+ "dd642809f71d44e1966a6babff3a6107": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "VBoxModel",
+ "state": {
+ "_dom_classes": [
+ "widget-interact"
+ ],
+ "children": [
+ "IPY_MODEL_db880df5afce4691b772cee91a4ba643",
+ "IPY_MODEL_a87dfae7516348c0b4ca8ab465aa93c3"
+ ],
+ "layout": "IPY_MODEL_9a0e46d0873345069806aea914731004"
+ }
+ },
+ "ddd9bc3aa3734febbda661d3e7af1fe3": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "e23dd20f3ef5412f9836ef33b8ec3a23": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "e25cd51d19144481a974d4bc5fe103f4": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "e411802bf7d54a60b7c07bf071d887dc": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "e4cf6908010c4ef6bdc3d73bd3108607": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "VBoxModel",
+ "state": {
+ "_dom_classes": [
+ "widget-interact"
+ ],
+ "children": [
+ "IPY_MODEL_eb15d5d251484509a44ac03da397b194",
+ "IPY_MODEL_ab87ed80a8dc43debbce6da37480a225"
+ ],
+ "layout": "IPY_MODEL_823cc6a2b4394018b5cd4aefa6898ad9"
+ }
+ },
+ "e64adc78c7b84ce38ed815895d856e3c": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "e693bacadcf844b78f22da39d7d1c9cb": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "e716dfcee177434aaf02b2a64d29e704": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "VBoxModel",
+ "state": {
+ "_dom_classes": [
+ "widget-interact"
+ ],
+ "children": [
+ "IPY_MODEL_d2dbf20e152c489992af7042b473c234",
+ "IPY_MODEL_70f526958ba9481ca272672460fc998e"
+ ],
+ "layout": "IPY_MODEL_9dfadd5d91394284be17ec3b8c93d538"
+ }
+ },
+ "e78e9d3b11c24b1a9b24917c9627665c": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "ButtonModel",
+ "state": {
+ "description": "Run Interact",
+ "layout": "IPY_MODEL_ce8e85f5948e4ca99e7fd19f2e620e50",
+ "style": "IPY_MODEL_2f476652b58f48d78fbed8429946aa5c"
+ }
+ },
+ "e7f3f30b09b84c918e6983d96296b643": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "e8527e57f8104e6aabca48c68173d82b": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "e9d30cea8bdf41b795e8cbffea49d58f": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "e9fab5f63d5b40f998ac866ffd46585a": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "ea2ad544a3084cc7a2285fd6ce16aec4": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "eac023e292da4a50ae78355829146cda": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DropdownModel",
+ "state": {
+ "_options_labels": [
+ "0",
+ "1",
+ "2",
+ "3",
+ "4",
+ "5",
+ "6",
+ "7",
+ "8",
+ "9",
+ "10",
+ "11",
+ "12",
+ "13",
+ "14",
+ "15",
+ "16",
+ "17",
+ "18",
+ "19",
+ "20",
+ "21",
+ "22",
+ "23",
+ "24",
+ "25",
+ "26",
+ "27",
+ "28",
+ "29",
+ "30",
+ "31",
+ "32",
+ "33",
+ "34",
+ "35",
+ "36",
+ "37",
+ "38",
+ "39",
+ "40",
+ "41",
+ "42",
+ "43",
+ "44",
+ "45",
+ "46",
+ "47",
+ "48",
+ "49",
+ "50",
+ "51",
+ "52",
+ "53",
+ "54",
+ "55",
+ "56",
+ "57",
+ "58",
+ "59"
+ ],
+ "description": "minute",
+ "index": 0,
+ "layout": "IPY_MODEL_f461a918328a4f64963ee3f2d11bf55d",
+ "style": "IPY_MODEL_b22fc2eda98f4a578dea6d43b95a1809"
+ }
+ },
+ "eb15d5d251484509a44ac03da397b194": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "SelectModel",
+ "state": {
+ "_options_labels": [
+ "ALL (5481 depls)",
+ "4.3 (3398 depls)",
+ "4.4 (1209 depls)",
+ "4.2 ( 818 depls)",
+ "nan ( 51 depls)",
+ "4.5 ( 4 depls)",
+ "4.1 ( 1 depls)"
+ ],
+ "description": "Major.Minor",
+ "index": 1,
+ "layout": "IPY_MODEL_bfb22336425348ff9dca5d4bd5805a72",
+ "style": "IPY_MODEL_34ce71863cfa44d1902491254aaeb417"
+ }
+ },
+ "ec3731d9f26440f083b890b81e75b3df": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "f461a918328a4f64963ee3f2d11bf55d": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "f6f7c924e22e46f59aa1ab2be5fd8b5f": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DropdownModel",
+ "state": {
+ "_options_labels": [
+ "2020",
+ "2019",
+ "2018",
+ "2017",
+ "2016",
+ "2015",
+ "2014",
+ "2013",
+ "2012",
+ "2011"
+ ],
+ "description": "year",
+ "index": 0,
+ "layout": "IPY_MODEL_d23e45c825754b13804e16973fc401ed",
+ "style": "IPY_MODEL_8951fbb8828c461a87ccec8bd2c34c6c"
+ }
+ },
+ "f7324875a8664097a26ae578808f66d3": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "f8d44ba0dbd1432dbf391f0294657cc5": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "f99bc377b2fa4b1287dbf170ee088c5e": {
+ "model_module": "@jupyter-widgets/output",
+ "model_module_version": "1.0.0",
+ "model_name": "OutputModel",
+ "state": {
+ "layout": "IPY_MODEL_c14b31d26f3946e7b33c47fa30fd1caf"
+ }
+ },
+ "f9ba5c0e308641b2a8c4958be06a417e": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "VBoxModel",
+ "state": {
+ "_dom_classes": [
+ "widget-interact"
+ ],
+ "children": [
+ "IPY_MODEL_62cf41cd64ce4c21a042f05258b91b74",
+ "IPY_MODEL_623e8b2d4a2244bebebcb7215fca3f27",
+ "IPY_MODEL_a52337d4feee4c67b30b1e68ab1a9c5b"
+ ],
+ "layout": "IPY_MODEL_3e3c4f5886f0404b94fe71e40e4581cc"
+ }
+ },
+ "fbdea7e9f60d459da08d8786e61f9a1e": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "VBoxModel",
+ "state": {
+ "_dom_classes": [
+ "widget-interact"
+ ],
+ "children": [
+ "IPY_MODEL_56d7029d112f4f0db07e59fee35b2d78",
+ "IPY_MODEL_50741f99b224484a964448776dc2d94c",
+ "IPY_MODEL_aef0019e864646bfa9349e36dfc13ebf",
+ "IPY_MODEL_92297dc57c2b4cfa9d3bc8f944a40827",
+ "IPY_MODEL_1d93d2e351c342b59cfe0aac70a541fe",
+ "IPY_MODEL_88b75b8be6734912b7bda3750750f6b9",
+ "IPY_MODEL_0096f59a6ff5415b80bdb30b462b1b1b",
+ "IPY_MODEL_03c3b6f8963148c5807aa0884fe6a5e8"
+ ],
+ "layout": "IPY_MODEL_beaea63aea9c42398f54b4628a7330bd"
+ }
+ },
+ "fcbb5c7b5c02442c92f929c921c27b72": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "fee98e2d97c94175955d5fcaf864be8c": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "feef3dc9f7a94179bc95d8790afbe2c0": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ }
+ },
+ "version_major": 2,
+ "version_minor": 0
+ }
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/reports/figures/dbscan_0.325_5_20201203_1611765763.html b/reports/figures/dbscan_0.325_5_20201203_1611765763.html
new file mode 100644
index 0000000..ab4538d
--- /dev/null
+++ b/reports/figures/dbscan_0.325_5_20201203_1611765763.html
@@ -0,0 +1,67 @@
+
+
+
+
+
+
diff --git a/reports/figures/symptoms_hamming_all_diagnoses_20201203_1611765763.html b/reports/figures/symptoms_hamming_all_diagnoses_20201203_1611765763.html
new file mode 100644
index 0000000..db1a983
--- /dev/null
+++ b/reports/figures/symptoms_hamming_all_diagnoses_20201203_1611765763.html
@@ -0,0 +1,67 @@
+
+
+
+
+
+