Artifact
950e2e4855fca0ed27b5e06c2eeb845dba2955dff7cfdb9287b185cd8694c03f:
0000: 76 61 72 20 45 4e 56 20 3d 20 45 4e 56 20 7c 7c var ENV = ENV ||
0010: 20 28 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0a 0a (function() {..
0020: 20 20 76 61 72 20 66 69 72 73 74 20 3d 20 74 72 var first = tr
0030: 75 65 3b 0a 20 20 76 61 72 20 63 6f 75 6e 74 65 ue;. var counte
0040: 72 20 3d 20 30 3b 0a 20 20 76 61 72 20 64 61 74 r = 0;. var dat
0050: 61 3b 0a 20 20 76 61 72 20 5f 62 61 73 65 3b 0a a;. var _base;.
0060: 20 20 28 5f 62 61 73 65 20 3d 20 53 74 72 69 6e (_base = Strin
0070: 67 2e 70 72 6f 74 6f 74 79 70 65 29 2e 6c 70 61 g.prototype).lpa
0080: 64 20 7c 7c 20 28 5f 62 61 73 65 2e 6c 70 61 64 d || (_base.lpad
0090: 20 3d 20 66 75 6e 63 74 69 6f 6e 28 70 61 64 64 = function(padd
00a0: 69 6e 67 2c 20 74 6f 4c 65 6e 67 74 68 29 20 7b ing, toLength) {
00b0: 0a 20 20 20 20 72 65 74 75 72 6e 20 70 61 64 64 . return padd
00c0: 69 6e 67 2e 72 65 70 65 61 74 28 28 74 6f 4c 65 ing.repeat((toLe
00d0: 6e 67 74 68 20 2d 20 74 68 69 73 2e 6c 65 6e 67 ngth - this.leng
00e0: 74 68 29 20 2f 20 70 61 64 64 69 6e 67 2e 6c 65 th) / padding.le
00f0: 6e 67 74 68 29 2e 63 6f 6e 63 61 74 28 74 68 69 ngth).concat(thi
0100: 73 29 3b 0a 20 20 7d 29 3b 0a 0a 20 20 66 75 6e s);. });.. fun
0110: 63 74 69 6f 6e 20 66 6f 72 6d 61 74 45 6c 61 70 ction formatElap
0120: 73 65 64 28 76 61 6c 75 65 29 20 7b 0a 20 20 20 sed(value) {.
0130: 20 76 61 72 20 73 74 72 20 3d 20 70 61 72 73 65 var str = parse
0140: 46 6c 6f 61 74 28 76 61 6c 75 65 29 2e 74 6f 46 Float(value).toF
0150: 69 78 65 64 28 32 29 3b 0a 20 20 20 20 69 66 20 ixed(2);. if
0160: 28 76 61 6c 75 65 20 3e 20 36 30 29 20 7b 0a 20 (value > 60) {.
0170: 20 20 20 20 20 6d 69 6e 75 74 65 73 20 3d 20 4d minutes = M
0180: 61 74 68 2e 66 6c 6f 6f 72 28 76 61 6c 75 65 20 ath.floor(value
0190: 2f 20 36 30 29 3b 0a 20 20 20 20 20 20 63 6f 6d / 60);. com
01a0: 70 73 20 3d 20 28 76 61 6c 75 65 20 25 20 36 30 ps = (value % 60
01b0: 29 2e 74 6f 46 69 78 65 64 28 32 29 2e 73 70 6c ).toFixed(2).spl
01c0: 69 74 28 27 2e 27 29 3b 0a 20 20 20 20 20 20 73 it('.');. s
01d0: 65 63 6f 6e 64 73 20 3d 20 63 6f 6d 70 73 5b 30 econds = comps[0
01e0: 5d 2e 6c 70 61 64 28 27 30 27 2c 20 32 29 3b 0a ].lpad('0', 2);.
01f0: 20 20 20 20 20 20 6d 73 20 3d 20 63 6f 6d 70 73 ms = comps
0200: 5b 31 5d 3b 0a 20 20 20 20 20 20 73 74 72 20 3d [1];. str =
0210: 20 6d 69 6e 75 74 65 73 20 2b 20 22 3a 22 20 2b minutes + ":" +
0220: 20 73 65 63 6f 6e 64 73 20 2b 20 22 2e 22 20 2b seconds + "." +
0230: 20 6d 73 3b 0a 20 20 20 20 7d 0a 20 20 20 20 72 ms;. }. r
0240: 65 74 75 72 6e 20 73 74 72 3b 0a 20 20 7d 0a 0a eturn str;. }..
0250: 20 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 6c function getEl
0260: 61 70 73 65 64 43 6c 61 73 73 4e 61 6d 65 28 65 apsedClassName(e
0270: 6c 61 70 73 65 64 29 20 7b 0a 20 20 20 20 76 61 lapsed) {. va
0280: 72 20 63 6c 61 73 73 4e 61 6d 65 20 3d 20 27 51 r className = 'Q
0290: 75 65 72 79 20 65 6c 61 70 73 65 64 27 3b 0a 20 uery elapsed';.
02a0: 20 20 20 69 66 20 28 65 6c 61 70 73 65 64 20 3e if (elapsed >
02b0: 3d 20 31 30 2e 30 29 20 7b 0a 20 20 20 20 20 20 = 10.0) {.
02c0: 63 6c 61 73 73 4e 61 6d 65 20 2b 3d 20 27 20 77 className += ' w
02d0: 61 72 6e 5f 6c 6f 6e 67 27 3b 0a 20 20 20 20 7d arn_long';. }
02e0: 0a 20 20 20 20 65 6c 73 65 20 69 66 20 28 65 6c . else if (el
02f0: 61 70 73 65 64 20 3e 3d 20 31 2e 30 29 20 7b 0a apsed >= 1.0) {.
0300: 20 20 20 20 20 20 63 6c 61 73 73 4e 61 6d 65 20 className
0310: 2b 3d 20 27 20 77 61 72 6e 27 3b 0a 20 20 20 20 += ' warn';.
0320: 7d 0a 20 20 20 20 65 6c 73 65 20 7b 0a 20 20 20 }. else {.
0330: 20 20 20 63 6c 61 73 73 4e 61 6d 65 20 2b 3d 20 className +=
0340: 27 20 73 68 6f 72 74 27 3b 0a 20 20 20 20 7d 0a ' short';. }.
0350: 20 20 20 20 72 65 74 75 72 6e 20 63 6c 61 73 73 return class
0360: 4e 61 6d 65 3b 0a 20 20 7d 0a 0a 20 20 66 75 6e Name;. }.. fun
0370: 63 74 69 6f 6e 20 63 6f 75 6e 74 43 6c 61 73 73 ction countClass
0380: 4e 61 6d 65 28 71 75 65 72 69 65 73 29 20 7b 0a Name(queries) {.
0390: 20 20 20 20 76 61 72 20 63 6f 75 6e 74 43 6c 61 var countCla
03a0: 73 73 4e 61 6d 65 20 3d 20 22 6c 61 62 65 6c 22 ssName = "label"
03b0: 3b 0a 20 20 20 20 69 66 20 28 71 75 65 72 69 65 ;. if (querie
03c0: 73 20 3e 3d 20 32 30 29 20 7b 0a 20 20 20 20 20 s >= 20) {.
03d0: 20 63 6f 75 6e 74 43 6c 61 73 73 4e 61 6d 65 20 countClassName
03e0: 2b 3d 20 22 20 6c 61 62 65 6c 2d 69 6d 70 6f 72 += " label-impor
03f0: 74 61 6e 74 22 3b 0a 20 20 20 20 7d 0a 20 20 20 tant";. }.
0400: 20 65 6c 73 65 20 69 66 20 28 71 75 65 72 69 65 else if (querie
0410: 73 20 3e 3d 20 31 30 29 20 7b 0a 20 20 20 20 20 s >= 10) {.
0420: 20 63 6f 75 6e 74 43 6c 61 73 73 4e 61 6d 65 20 countClassName
0430: 2b 3d 20 22 20 6c 61 62 65 6c 2d 77 61 72 6e 69 += " label-warni
0440: 6e 67 22 3b 0a 20 20 20 20 7d 0a 20 20 20 20 65 ng";. }. e
0450: 6c 73 65 20 7b 0a 20 20 20 20 20 20 63 6f 75 6e lse {. coun
0460: 74 43 6c 61 73 73 4e 61 6d 65 20 2b 3d 20 22 20 tClassName += "
0470: 6c 61 62 65 6c 2d 73 75 63 63 65 73 73 22 3b 0a label-success";.
0480: 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e }. return
0490: 20 63 6f 75 6e 74 43 6c 61 73 73 4e 61 6d 65 3b countClassName;
04a0: 0a 20 20 7d 0a 0a 20 20 66 75 6e 63 74 69 6f 6e . }.. function
04b0: 20 75 70 64 61 74 65 51 75 65 72 79 28 6f 62 6a updateQuery(obj
04c0: 65 63 74 29 20 7b 0a 20 20 20 20 69 66 20 28 21 ect) {. if (!
04d0: 6f 62 6a 65 63 74 29 20 7b 0a 20 20 20 20 20 20 object) {.
04e0: 6f 62 6a 65 63 74 20 3d 20 7b 7d 3b 0a 20 20 20 object = {};.
04f0: 20 7d 0a 20 20 20 20 76 61 72 20 65 6c 61 70 73 }. var elaps
0500: 65 64 20 3d 20 4d 61 74 68 2e 72 61 6e 64 6f 6d ed = Math.random
0510: 28 29 20 2a 20 31 35 3b 0a 20 20 20 20 6f 62 6a () * 15;. obj
0520: 65 63 74 2e 65 6c 61 70 73 65 64 20 3d 20 65 6c ect.elapsed = el
0530: 61 70 73 65 64 3b 0a 20 20 20 20 6f 62 6a 65 63 apsed;. objec
0540: 74 2e 66 6f 72 6d 61 74 45 6c 61 70 73 65 64 20 t.formatElapsed
0550: 3d 20 66 6f 72 6d 61 74 45 6c 61 70 73 65 64 28 = formatElapsed(
0560: 65 6c 61 70 73 65 64 29 3b 0a 20 20 20 20 6f 62 elapsed);. ob
0570: 6a 65 63 74 2e 65 6c 61 70 73 65 64 43 6c 61 73 ject.elapsedClas
0580: 73 4e 61 6d 65 20 3d 20 67 65 74 45 6c 61 70 73 sName = getElaps
0590: 65 64 43 6c 61 73 73 4e 61 6d 65 28 65 6c 61 70 edClassName(elap
05a0: 73 65 64 29 3b 0a 20 20 20 20 6f 62 6a 65 63 74 sed);. object
05b0: 2e 71 75 65 72 79 20 3d 20 22 53 45 4c 45 43 54 .query = "SELECT
05c0: 20 62 6c 61 68 20 46 52 4f 4d 20 73 6f 6d 65 74 blah FROM somet
05d0: 68 69 6e 67 22 3b 0a 20 20 20 20 6f 62 6a 65 63 hing";. objec
05e0: 74 2e 77 61 69 74 69 6e 67 20 3d 20 4d 61 74 68 t.waiting = Math
05f0: 2e 72 61 6e 64 6f 6d 28 29 20 3c 20 30 2e 35 3b .random() < 0.5;
0600: 0a 20 20 20 20 69 66 20 28 4d 61 74 68 2e 72 61 . if (Math.ra
0610: 6e 64 6f 6d 28 29 20 3c 20 30 2e 32 29 20 7b 0a ndom() < 0.2) {.
0620: 20 20 20 20 20 20 6f 62 6a 65 63 74 2e 71 75 65 object.que
0630: 72 79 20 3d 20 22 3c 49 44 4c 45 3e 20 69 6e 20 ry = "<IDLE> in
0640: 74 72 61 6e 73 61 63 74 69 6f 6e 22 3b 0a 20 20 transaction";.
0650: 20 20 7d 0a 20 20 20 20 69 66 20 28 4d 61 74 68 }. if (Math
0660: 2e 72 61 6e 64 6f 6d 28 29 20 3c 20 30 2e 31 29 .random() < 0.1)
0670: 20 7b 0a 20 20 20 20 20 20 6f 62 6a 65 63 74 2e {. object.
0680: 71 75 65 72 79 20 3d 20 22 76 61 63 75 75 6d 22 query = "vacuum"
0690: 3b 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 ;. }. retu
06a0: 72 6e 20 6f 62 6a 65 63 74 3b 0a 20 20 7d 0a 0a rn object;. }..
06b0: 20 20 66 75 6e 63 74 69 6f 6e 20 63 6c 65 61 6e function clean
06c0: 51 75 65 72 79 28 76 61 6c 75 65 29 20 7b 0a 20 Query(value) {.
06d0: 20 20 20 69 66 20 28 76 61 6c 75 65 29 20 7b 0a if (value) {.
06e0: 20 20 20 20 20 20 76 61 6c 75 65 2e 66 6f 72 6d value.form
06f0: 61 74 45 6c 61 70 73 65 64 20 3d 20 22 22 3b 0a atElapsed = "";.
0700: 20 20 20 20 20 20 76 61 6c 75 65 2e 65 6c 61 70 value.elap
0710: 73 65 64 43 6c 61 73 73 4e 61 6d 65 20 3d 20 22 sedClassName = "
0720: 22 3b 0a 20 20 20 20 20 20 76 61 6c 75 65 2e 71 ";. value.q
0730: 75 65 72 79 20 3d 20 22 22 3b 0a 20 20 20 20 20 uery = "";.
0740: 20 76 61 6c 75 65 2e 65 6c 61 70 73 65 64 20 3d value.elapsed =
0750: 20 6e 75 6c 6c 3b 0a 20 20 20 20 20 20 76 61 6c null;. val
0760: 75 65 2e 77 61 69 74 69 6e 67 20 3d 20 6e 75 6c ue.waiting = nul
0770: 6c 3b 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a l;. } else {.
0780: 20 20 20 20 20 20 72 65 74 75 72 6e 20 7b 0a 20 return {.
0790: 20 20 20 20 20 20 20 71 75 65 72 79 3a 20 22 2a query: "*
07a0: 2a 2a 22 2c 0a 20 20 20 20 20 20 20 20 66 6f 72 **",. for
07b0: 6d 61 74 45 6c 61 70 73 65 64 3a 20 22 22 2c 0a matElapsed: "",.
07c0: 20 20 20 20 20 20 20 20 65 6c 61 70 73 65 64 43 elapsedC
07d0: 6c 61 73 73 4e 61 6d 65 3a 20 22 22 0a 20 20 20 lassName: "".
07e0: 20 20 20 7d 3b 0a 20 20 20 20 7d 0a 20 20 7d 0a };. }. }.
07f0: 0a 20 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 . function gene
0800: 72 61 74 65 52 6f 77 28 6f 62 6a 65 63 74 2c 20 rateRow(object,
0810: 6b 65 65 70 49 64 65 6e 74 69 74 79 2c 20 63 6f keepIdentity, co
0820: 75 6e 74 65 72 29 20 7b 0a 20 20 20 20 76 61 72 unter) {. var
0830: 20 6e 62 51 75 65 72 69 65 73 20 3d 20 4d 61 74 nbQueries = Mat
0840: 68 2e 66 6c 6f 6f 72 28 28 4d 61 74 68 2e 72 61 h.floor((Math.ra
0850: 6e 64 6f 6d 28 29 20 2a 20 31 30 29 20 2b 20 31 ndom() * 10) + 1
0860: 29 3b 0a 20 20 20 20 69 66 20 28 21 6f 62 6a 65 );. if (!obje
0870: 63 74 29 20 7b 0a 20 20 20 20 20 20 6f 62 6a 65 ct) {. obje
0880: 63 74 20 3d 20 7b 7d 3b 0a 20 20 20 20 7d 0a 20 ct = {};. }.
0890: 20 20 20 6f 62 6a 65 63 74 2e 6c 61 73 74 4d 75 object.lastMu
08a0: 74 61 74 69 6f 6e 49 64 20 3d 20 63 6f 75 6e 74 tationId = count
08b0: 65 72 3b 0a 20 20 20 20 6f 62 6a 65 63 74 2e 6e er;. object.n
08c0: 62 51 75 65 72 69 65 73 20 3d 20 6e 62 51 75 65 bQueries = nbQue
08d0: 72 69 65 73 3b 0a 20 20 20 20 69 66 20 28 21 6f ries;. if (!o
08e0: 62 6a 65 63 74 2e 6c 61 73 74 53 61 6d 70 6c 65 bject.lastSample
08f0: 29 20 7b 0a 20 20 20 20 20 20 6f 62 6a 65 63 74 ) {. object
0900: 2e 6c 61 73 74 53 61 6d 70 6c 65 20 3d 20 7b 7d .lastSample = {}
0910: 3b 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 28 ;. }. if (
0920: 21 6f 62 6a 65 63 74 2e 6c 61 73 74 53 61 6d 70 !object.lastSamp
0930: 6c 65 2e 74 6f 70 46 69 76 65 51 75 65 72 69 65 le.topFiveQuerie
0940: 73 29 20 7b 0a 20 20 20 20 20 20 6f 62 6a 65 63 s) {. objec
0950: 74 2e 6c 61 73 74 53 61 6d 70 6c 65 2e 74 6f 70 t.lastSample.top
0960: 46 69 76 65 51 75 65 72 69 65 73 20 3d 20 5b 5d FiveQueries = []
0970: 3b 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 28 ;. }. if (
0980: 6b 65 65 70 49 64 65 6e 74 69 74 79 29 20 7b 0a keepIdentity) {.
0990: 20 20 20 20 20 20 2f 2f 20 66 6f 72 20 41 6e 67 // for Ang
09a0: 75 6c 61 72 20 6f 70 74 69 6d 69 7a 61 74 69 6f ular optimizatio
09b0: 6e 0a 20 20 20 20 20 20 69 66 20 28 21 6f 62 6a n. if (!obj
09c0: 65 63 74 2e 6c 61 73 74 53 61 6d 70 6c 65 2e 71 ect.lastSample.q
09d0: 75 65 72 69 65 73 29 20 7b 0a 20 20 20 20 20 20 ueries) {.
09e0: 20 20 6f 62 6a 65 63 74 2e 6c 61 73 74 53 61 6d object.lastSam
09f0: 70 6c 65 2e 71 75 65 72 69 65 73 20 3d 20 5b 5d ple.queries = []
0a00: 3b 0a 20 20 20 20 20 20 20 20 66 6f 72 20 28 76 ;. for (v
0a10: 61 72 20 6c 20 3d 20 30 3b 20 6c 20 3c 20 31 32 ar l = 0; l < 12
0a20: 3b 20 6c 2b 2b 29 20 7b 0a 20 20 20 20 20 20 20 ; l++) {.
0a30: 20 20 20 6f 62 6a 65 63 74 2e 6c 61 73 74 53 61 object.lastSa
0a40: 6d 70 6c 65 2e 71 75 65 72 69 65 73 5b 6c 5d 20 mple.queries[l]
0a50: 3d 20 63 6c 65 61 6e 51 75 65 72 79 28 29 3b 0a = cleanQuery();.
0a60: 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 }.
0a70: 7d 0a 20 20 20 20 20 20 66 6f 72 20 28 76 61 72 }. for (var
0a80: 20 6a 20 69 6e 20 6f 62 6a 65 63 74 2e 6c 61 73 j in object.las
0a90: 74 53 61 6d 70 6c 65 2e 71 75 65 72 69 65 73 29 tSample.queries)
0aa0: 20 7b 0a 20 20 20 20 20 20 20 20 76 61 72 20 76 {. var v
0ab0: 61 6c 75 65 20 3d 20 6f 62 6a 65 63 74 2e 6c 61 alue = object.la
0ac0: 73 74 53 61 6d 70 6c 65 2e 71 75 65 72 69 65 73 stSample.queries
0ad0: 5b 6a 5d 3b 0a 20 20 20 20 20 20 20 20 69 66 20 [j];. if
0ae0: 28 6a 20 3c 3d 20 6e 62 51 75 65 72 69 65 73 29 (j <= nbQueries)
0af0: 20 7b 0a 20 20 20 20 20 20 20 20 20 20 75 70 64 {. upd
0b00: 61 74 65 51 75 65 72 79 28 76 61 6c 75 65 29 3b ateQuery(value);
0b10: 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 . } else
0b20: 7b 0a 20 20 20 20 20 20 20 20 20 20 63 6c 65 61 {. clea
0b30: 6e 51 75 65 72 79 28 76 61 6c 75 65 29 3b 0a 20 nQuery(value);.
0b40: 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 7d }. }
0b50: 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 . } else {.
0b60: 20 20 20 20 6f 62 6a 65 63 74 2e 6c 61 73 74 53 object.lastS
0b70: 61 6d 70 6c 65 2e 71 75 65 72 69 65 73 20 3d 20 ample.queries =
0b80: 5b 5d 3b 0a 20 20 20 20 20 20 66 6f 72 20 28 76 [];. for (v
0b90: 61 72 20 6a 20 3d 20 30 3b 20 6a 20 3c 20 31 32 ar j = 0; j < 12
0ba0: 3b 20 6a 2b 2b 29 20 7b 0a 20 20 20 20 20 20 20 ; j++) {.
0bb0: 20 69 66 20 28 6a 20 3c 20 6e 62 51 75 65 72 69 if (j < nbQueri
0bc0: 65 73 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 es) {.
0bd0: 76 61 72 20 76 61 6c 75 65 20 3d 20 75 70 64 61 var value = upda
0be0: 74 65 51 75 65 72 79 28 63 6c 65 61 6e 51 75 65 teQuery(cleanQue
0bf0: 72 79 28 29 29 3b 0a 20 20 20 20 20 20 20 20 20 ry());.
0c00: 20 6f 62 6a 65 63 74 2e 6c 61 73 74 53 61 6d 70 object.lastSamp
0c10: 6c 65 2e 71 75 65 72 69 65 73 2e 70 75 73 68 28 le.queries.push(
0c20: 76 61 6c 75 65 29 3b 0a 20 20 20 20 20 20 20 20 value);.
0c30: 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 } else {.
0c40: 20 20 20 6f 62 6a 65 63 74 2e 6c 61 73 74 53 61 object.lastSa
0c50: 6d 70 6c 65 2e 71 75 65 72 69 65 73 2e 70 75 73 mple.queries.pus
0c60: 68 28 63 6c 65 61 6e 51 75 65 72 79 28 29 29 3b h(cleanQuery());
0c70: 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 . }.
0c80: 20 7d 0a 20 20 20 20 7d 0a 20 20 20 20 66 6f 72 }. }. for
0c90: 20 28 76 61 72 20 69 20 3d 20 30 3b 20 69 20 3c (var i = 0; i <
0ca0: 20 35 3b 20 69 2b 2b 29 20 7b 0a 20 20 20 20 20 5; i++) {.
0cb0: 20 76 61 72 20 73 6f 75 72 63 65 20 3d 20 6f 62 var source = ob
0cc0: 6a 65 63 74 2e 6c 61 73 74 53 61 6d 70 6c 65 2e ject.lastSample.
0cd0: 71 75 65 72 69 65 73 5b 69 5d 3b 0a 20 20 20 20 queries[i];.
0ce0: 20 20 6f 62 6a 65 63 74 2e 6c 61 73 74 53 61 6d object.lastSam
0cf0: 70 6c 65 2e 74 6f 70 46 69 76 65 51 75 65 72 69 ple.topFiveQueri
0d00: 65 73 5b 69 5d 20 3d 20 73 6f 75 72 63 65 3b 0a es[i] = source;.
0d10: 20 20 20 20 7d 0a 20 20 20 20 6f 62 6a 65 63 74 }. object
0d20: 2e 6c 61 73 74 53 61 6d 70 6c 65 2e 6e 62 51 75 .lastSample.nbQu
0d30: 65 72 69 65 73 20 3d 20 6e 62 51 75 65 72 69 65 eries = nbQuerie
0d40: 73 3b 0a 20 20 20 20 6f 62 6a 65 63 74 2e 6c 61 s;. object.la
0d50: 73 74 53 61 6d 70 6c 65 2e 63 6f 75 6e 74 43 6c stSample.countCl
0d60: 61 73 73 4e 61 6d 65 20 3d 20 63 6f 75 6e 74 43 assName = countC
0d70: 6c 61 73 73 4e 61 6d 65 28 6e 62 51 75 65 72 69 lassName(nbQueri
0d80: 65 73 29 3b 0a 20 20 20 20 72 65 74 75 72 6e 20 es);. return
0d90: 6f 62 6a 65 63 74 3b 0a 20 20 7d 0a 0a 20 20 66 object;. }.. f
0da0: 75 6e 63 74 69 6f 6e 20 67 65 74 44 61 74 61 28 unction getData(
0db0: 6b 65 65 70 49 64 65 6e 74 69 74 79 29 20 7b 0a keepIdentity) {.
0dc0: 20 20 20 20 76 61 72 20 6f 6c 64 44 61 74 61 20 var oldData
0dd0: 3d 20 64 61 74 61 3b 0a 20 20 20 20 69 66 20 28 = data;. if (
0de0: 21 6b 65 65 70 49 64 65 6e 74 69 74 79 29 20 7b !keepIdentity) {
0df0: 20 2f 2f 20 72 65 73 65 74 20 66 6f 72 20 65 61 // reset for ea
0e00: 63 68 20 74 69 63 6b 20 77 68 65 6e 20 21 6b 65 ch tick when !ke
0e10: 65 70 49 64 65 6e 74 69 74 79 0a 20 20 20 20 20 epIdentity.
0e20: 20 64 61 74 61 20 3d 20 5b 5d 3b 0a 20 20 20 20 data = [];.
0e30: 20 20 66 6f 72 20 28 76 61 72 20 69 20 3d 20 31 for (var i = 1
0e40: 3b 20 69 20 3c 3d 20 45 4e 56 2e 72 6f 77 73 3b ; i <= ENV.rows;
0e50: 20 69 2b 2b 29 20 7b 0a 20 20 20 20 20 20 20 20 i++) {.
0e60: 64 61 74 61 2e 70 75 73 68 28 7b 20 64 62 6e 61 data.push({ dbna
0e70: 6d 65 3a 20 27 63 6c 75 73 74 65 72 27 20 2b 20 me: 'cluster' +
0e80: 69 2c 20 71 75 65 72 79 3a 20 22 22 2c 20 66 6f i, query: "", fo
0e90: 72 6d 61 74 45 6c 61 70 73 65 64 3a 20 22 22 2c rmatElapsed: "",
0ea0: 20 65 6c 61 70 73 65 64 43 6c 61 73 73 4e 61 6d elapsedClassNam
0eb0: 65 3a 20 22 22 20 7d 29 3b 0a 20 20 20 20 20 20 e: "" });.
0ec0: 20 20 64 61 74 61 2e 70 75 73 68 28 7b 20 64 62 data.push({ db
0ed0: 6e 61 6d 65 3a 20 27 63 6c 75 73 74 65 72 27 20 name: 'cluster'
0ee0: 2b 20 69 20 2b 20 27 20 73 6c 61 76 65 27 2c 20 + i + ' slave',
0ef0: 71 75 65 72 79 3a 20 22 22 2c 20 66 6f 72 6d 61 query: "", forma
0f00: 74 45 6c 61 70 73 65 64 3a 20 22 22 2c 20 65 6c tElapsed: "", el
0f10: 61 70 73 65 64 43 6c 61 73 73 4e 61 6d 65 3a 20 apsedClassName:
0f20: 22 22 20 7d 29 3b 0a 20 20 20 20 20 20 7d 0a 20 "" });. }.
0f30: 20 20 20 7d 0a 20 20 20 20 69 66 20 28 21 64 61 }. if (!da
0f40: 74 61 29 20 7b 20 2f 2f 20 66 69 72 73 74 20 69 ta) { // first i
0f50: 6e 69 74 20 77 68 65 6e 20 6b 65 65 70 49 64 65 nit when keepIde
0f60: 6e 74 69 74 79 0a 20 20 20 20 20 20 64 61 74 61 ntity. data
0f70: 20 3d 20 5b 5d 3b 0a 20 20 20 20 20 20 66 6f 72 = [];. for
0f80: 20 28 76 61 72 20 69 20 3d 20 31 3b 20 69 20 3c (var i = 1; i <
0f90: 3d 20 45 4e 56 2e 72 6f 77 73 3b 20 69 2b 2b 29 = ENV.rows; i++)
0fa0: 20 7b 0a 20 20 20 20 20 20 20 20 64 61 74 61 2e {. data.
0fb0: 70 75 73 68 28 7b 20 64 62 6e 61 6d 65 3a 20 27 push({ dbname: '
0fc0: 63 6c 75 73 74 65 72 27 20 2b 20 69 20 7d 29 3b cluster' + i });
0fd0: 0a 20 20 20 20 20 20 20 20 64 61 74 61 2e 70 75 . data.pu
0fe0: 73 68 28 7b 20 64 62 6e 61 6d 65 3a 20 27 63 6c sh({ dbname: 'cl
0ff0: 75 73 74 65 72 27 20 2b 20 69 20 2b 20 27 20 73 uster' + i + ' s
1000: 6c 61 76 65 27 20 7d 29 3b 0a 20 20 20 20 20 20 lave' });.
1010: 7d 0a 20 20 20 20 20 20 6f 6c 64 44 61 74 61 20 }. oldData
1020: 3d 20 64 61 74 61 3b 0a 20 20 20 20 7d 0a 20 20 = data;. }.
1030: 20 20 66 6f 72 20 28 76 61 72 20 69 20 69 6e 20 for (var i in
1040: 64 61 74 61 29 20 7b 0a 20 20 20 20 20 20 76 61 data) {. va
1050: 72 20 72 6f 77 20 3d 20 64 61 74 61 5b 69 5d 3b r row = data[i];
1060: 0a 20 20 20 20 20 20 69 66 20 28 21 6b 65 65 70 . if (!keep
1070: 49 64 65 6e 74 69 74 79 20 26 26 20 6f 6c 64 44 Identity && oldD
1080: 61 74 61 20 26 26 20 6f 6c 64 44 61 74 61 5b 69 ata && oldData[i
1090: 5d 29 20 7b 0a 20 20 20 20 20 20 20 20 72 6f 77 ]) {. row
10a0: 2e 6c 61 73 74 53 61 6d 70 6c 65 20 3d 20 6f 6c .lastSample = ol
10b0: 64 44 61 74 61 5b 69 5d 2e 6c 61 73 74 53 61 6d dData[i].lastSam
10c0: 70 6c 65 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 ple;. }.
10d0: 20 20 20 69 66 20 28 21 72 6f 77 2e 6c 61 73 74 if (!row.last
10e0: 53 61 6d 70 6c 65 20 7c 7c 20 4d 61 74 68 2e 72 Sample || Math.r
10f0: 61 6e 64 6f 6d 28 29 20 3c 20 45 4e 56 2e 6d 75 andom() < ENV.mu
1100: 74 61 74 69 6f 6e 73 28 29 29 20 7b 0a 20 20 20 tations()) {.
1110: 20 20 20 20 20 63 6f 75 6e 74 65 72 20 3d 20 63 counter = c
1120: 6f 75 6e 74 65 72 20 2b 20 31 3b 0a 20 20 20 20 ounter + 1;.
1130: 20 20 20 20 69 66 20 28 21 6b 65 65 70 49 64 65 if (!keepIde
1140: 6e 74 69 74 79 29 20 7b 0a 20 20 20 20 20 20 20 ntity) {.
1150: 20 20 20 72 6f 77 2e 6c 61 73 74 53 61 6d 70 6c row.lastSampl
1160: 65 20 3d 20 6e 75 6c 6c 3b 0a 20 20 20 20 20 20 e = null;.
1170: 20 20 7d 0a 20 20 20 20 20 20 20 20 67 65 6e 65 }. gene
1180: 72 61 74 65 52 6f 77 28 72 6f 77 2c 20 6b 65 65 rateRow(row, kee
1190: 70 49 64 65 6e 74 69 74 79 2c 20 63 6f 75 6e 74 pIdentity, count
11a0: 65 72 29 3b 0a 20 20 20 20 20 20 7d 20 65 6c 73 er);. } els
11b0: 65 20 7b 0a 20 20 20 20 20 20 20 20 64 61 74 61 e {. data
11c0: 5b 69 5d 20 3d 20 6f 6c 64 44 61 74 61 5b 69 5d [i] = oldData[i]
11d0: 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a ;. }. }.
11e0: 20 20 20 20 66 69 72 73 74 20 3d 20 66 61 6c 73 first = fals
11f0: 65 3b 0a 20 20 20 20 72 65 74 75 72 6e 20 7b 0a e;. return {.
1200: 20 20 20 20 20 20 74 6f 41 72 72 61 79 3a 20 66 toArray: f
1210: 75 6e 63 74 69 6f 6e 28 29 20 7b 0a 20 20 20 20 unction() {.
1220: 20 20 20 20 72 65 74 75 72 6e 20 64 61 74 61 3b return data;
1230: 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 3b 0a . }. };.
1240: 20 20 7d 0a 0a 20 20 76 61 72 20 6d 75 74 61 74 }.. var mutat
1250: 69 6f 6e 73 56 61 6c 75 65 20 3d 20 30 2e 35 3b ionsValue = 0.5;
1260: 0a 0a 20 20 66 75 6e 63 74 69 6f 6e 20 6d 75 74 .. function mut
1270: 61 74 69 6f 6e 73 28 76 61 6c 75 65 29 20 7b 0a ations(value) {.
1280: 20 20 20 20 69 66 20 28 76 61 6c 75 65 29 20 7b if (value) {
1290: 0a 20 20 20 20 20 20 6d 75 74 61 74 69 6f 6e 73 . mutations
12a0: 56 61 6c 75 65 20 3d 20 76 61 6c 75 65 3b 0a 20 Value = value;.
12b0: 20 20 20 20 20 72 65 74 75 72 6e 20 6d 75 74 61 return muta
12c0: 74 69 6f 6e 73 56 61 6c 75 65 3b 0a 20 20 20 20 tionsValue;.
12d0: 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 72 } else {. r
12e0: 65 74 75 72 6e 20 6d 75 74 61 74 69 6f 6e 73 56 eturn mutationsV
12f0: 61 6c 75 65 3b 0a 20 20 20 20 7d 0a 20 20 7d 0a alue;. }. }.
1300: 0a 20 20 76 61 72 20 62 6f 64 79 20 3d 20 64 6f . var body = do
1310: 63 75 6d 65 6e 74 2e 71 75 65 72 79 53 65 6c 65 cument.querySele
1320: 63 74 6f 72 28 27 62 6f 64 79 27 29 3b 0a 20 20 ctor('body');.
1330: 76 61 72 20 74 68 65 46 69 72 73 74 43 68 69 6c var theFirstChil
1340: 64 20 3d 20 62 6f 64 79 2e 66 69 72 73 74 43 68 d = body.firstCh
1350: 69 6c 64 3b 0a 0a 20 20 76 61 72 20 73 6c 69 64 ild;.. var slid
1360: 65 72 43 6f 6e 74 61 69 6e 65 72 20 3d 20 64 6f erContainer = do
1370: 63 75 6d 65 6e 74 2e 63 72 65 61 74 65 45 6c 65 cument.createEle
1380: 6d 65 6e 74 28 20 27 64 69 76 27 20 29 3b 0a 20 ment( 'div' );.
1390: 20 73 6c 69 64 65 72 43 6f 6e 74 61 69 6e 65 72 sliderContainer
13a0: 2e 73 74 79 6c 65 2e 63 73 73 54 65 78 74 20 3d .style.cssText =
13b0: 20 22 64 69 73 70 6c 61 79 3a 20 66 6c 65 78 22 "display: flex"
13c0: 3b 0a 20 20 76 61 72 20 73 6c 69 64 65 72 20 3d ;. var slider =
13d0: 20 64 6f 63 75 6d 65 6e 74 2e 63 72 65 61 74 65 document.create
13e0: 45 6c 65 6d 65 6e 74 28 27 69 6e 70 75 74 27 29 Element('input')
13f0: 3b 0a 20 20 76 61 72 20 74 65 78 74 20 3d 20 64 ;. var text = d
1400: 6f 63 75 6d 65 6e 74 2e 63 72 65 61 74 65 45 6c ocument.createEl
1410: 65 6d 65 6e 74 28 27 6c 61 62 65 6c 27 29 3b 0a ement('label');.
1420: 20 20 74 65 78 74 2e 69 6e 6e 65 72 48 54 4d 4c text.innerHTML
1430: 20 3d 20 27 6d 75 74 61 74 69 6f 6e 73 20 3a 20 = 'mutations :
1440: 27 20 2b 20 28 6d 75 74 61 74 69 6f 6e 73 56 61 ' + (mutationsVa
1450: 6c 75 65 20 2a 20 31 30 30 29 2e 74 6f 46 69 78 lue * 100).toFix
1460: 65 64 28 30 29 20 2b 20 27 25 27 3b 0a 20 20 74 ed(0) + '%';. t
1470: 65 78 74 2e 69 64 20 3d 20 22 72 61 74 69 6f 76 ext.id = "ratiov
1480: 61 6c 22 3b 0a 20 20 73 6c 69 64 65 72 2e 73 65 al";. slider.se
1490: 74 41 74 74 72 69 62 75 74 65 28 22 74 79 70 65 tAttribute("type
14a0: 22 2c 20 22 72 61 6e 67 65 22 29 3b 0a 20 20 73 ", "range");. s
14b0: 6c 69 64 65 72 2e 73 74 79 6c 65 2e 63 73 73 54 lider.style.cssT
14c0: 65 78 74 20 3d 20 27 6d 61 72 67 69 6e 2d 62 6f ext = 'margin-bo
14d0: 74 74 6f 6d 3a 20 31 30 70 78 3b 20 6d 61 72 67 ttom: 10px; marg
14e0: 69 6e 2d 74 6f 70 3a 20 35 70 78 27 3b 0a 20 20 in-top: 5px';.
14f0: 73 6c 69 64 65 72 2e 61 64 64 45 76 65 6e 74 4c slider.addEventL
1500: 69 73 74 65 6e 65 72 28 27 63 68 61 6e 67 65 27 istener('change'
1510: 2c 20 66 75 6e 63 74 69 6f 6e 28 65 29 20 7b 0a , function(e) {.
1520: 20 20 20 20 45 4e 56 2e 6d 75 74 61 74 69 6f 6e ENV.mutation
1530: 73 28 65 2e 74 61 72 67 65 74 2e 76 61 6c 75 65 s(e.target.value
1540: 20 2f 20 31 30 30 29 3b 0a 20 20 20 20 64 6f 63 / 100);. doc
1550: 75 6d 65 6e 74 2e 71 75 65 72 79 53 65 6c 65 63 ument.querySelec
1560: 74 6f 72 28 27 23 72 61 74 69 6f 76 61 6c 27 29 tor('#ratioval')
1570: 2e 69 6e 6e 65 72 48 54 4d 4c 20 3d 20 27 6d 75 .innerHTML = 'mu
1580: 74 61 74 69 6f 6e 73 20 3a 20 27 20 2b 20 28 45 tations : ' + (E
1590: 4e 56 2e 6d 75 74 61 74 69 6f 6e 73 28 29 20 2a NV.mutations() *
15a0: 20 31 30 30 29 2e 74 6f 46 69 78 65 64 28 30 29 100).toFixed(0)
15b0: 20 2b 20 27 25 27 3b 0a 20 20 7d 29 3b 0a 20 20 + '%';. });.
15c0: 73 6c 69 64 65 72 43 6f 6e 74 61 69 6e 65 72 2e sliderContainer.
15d0: 61 70 70 65 6e 64 43 68 69 6c 64 28 20 74 65 78 appendChild( tex
15e0: 74 20 29 3b 0a 20 20 73 6c 69 64 65 72 43 6f 6e t );. sliderCon
15f0: 74 61 69 6e 65 72 2e 61 70 70 65 6e 64 43 68 69 tainer.appendChi
1600: 6c 64 28 20 73 6c 69 64 65 72 20 29 3b 0a 20 20 ld( slider );.
1610: 62 6f 64 79 2e 69 6e 73 65 72 74 42 65 66 6f 72 body.insertBefor
1620: 65 28 20 73 6c 69 64 65 72 43 6f 6e 74 61 69 6e e( sliderContain
1630: 65 72 2c 20 74 68 65 46 69 72 73 74 43 68 69 6c er, theFirstChil
1640: 64 20 29 3b 0a 0a 20 20 72 65 74 75 72 6e 20 20 d );.. return
1650: 7b 0a 20 20 20 20 67 65 6e 65 72 61 74 65 44 61 {. generateDa
1660: 74 61 3a 20 67 65 74 44 61 74 61 2c 0a 20 20 20 ta: getData,.
1670: 20 72 6f 77 73 3a 20 35 30 2c 0a 20 20 20 20 74 rows: 50,. t
1680: 69 6d 65 6f 75 74 3a 20 30 2c 0a 20 20 20 20 6d imeout: 0,. m
1690: 75 74 61 74 69 6f 6e 73 3a 20 6d 75 74 61 74 69 utations: mutati
16a0: 6f 6e 73 0a 20 20 7d 3b 0a 7d 29 28 29 3b 0a ons. };.})();.