From 4bcbe8d20f3f88de8349e695d5fb6a62767d8fb9 Mon Sep 17 00:00:00 2001 From: Michele Baldessari Date: Sat, 11 Apr 2015 00:20:26 +0200 Subject: [PATCH] Initial draft --- css/theme/pcp.css | 269 +++++++++++++++++++ images/architecture.svg | 512 +++++++++++++++++++++++++++++++++++ images/logo-red.png | Bin 0 -> 3222 bytes images/netpcpmatplot.png | Bin 0 -> 25980 bytes images/pmchart.png | Bin 0 -> 60386 bytes index.html | 563 +++++++++++++++++++-------------------- 6 files changed, 1056 insertions(+), 288 deletions(-) create mode 100644 css/theme/pcp.css create mode 100644 images/architecture.svg create mode 100644 images/logo-red.png create mode 100644 images/netpcpmatplot.png create mode 100644 images/pmchart.png diff --git a/css/theme/pcp.css b/css/theme/pcp.css new file mode 100644 index 0000000..8d747e1 --- /dev/null +++ b/css/theme/pcp.css @@ -0,0 +1,269 @@ +@import url(../../lib/font/source-sans-pro/source-sans-pro.css); +/** + * PCP theme for reveal.js. This is the opposite of the 'white' theme. + * + * Copyright (C) 2015 Hakim El Hattab, http://hakim.se + */ +section.has-light-background, section.has-light-background h1, section.has-light-background h2, section.has-light-background h3, section.has-light-background h4, section.has-light-background h5, section.has-light-background h6 { + color: #2c3e50; } + +/********************************************* + * GLOBAL STYLES + *********************************************/ +body { + background: #2c3e50; + background-color: #2c3e50; } + +.reveal { + font-family: 'Source Sans Pro', Helvetica, sans-serif; + font-size: 38px; + font-weight: normal; + color: #fff; } + +::selection { + color: #fff; + background: #bee4fd; + text-shadow: none; } + +.reveal .slides > section, .reveal .slides > section > section { + line-height: 1.3; + font-weight: inherit; } + +/********************************************* + * HEADERS + *********************************************/ +.reveal h1, .reveal h2, .reveal h3, .reveal h4, .reveal h5, .reveal h6 { + margin: 0 0 20px 0; + color: #fff; + font-family: 'Source Sans Pro', Helvetica, sans-serif; + font-weight: 600; + line-height: 1.2; + letter-spacing: normal; + /*text-transform: uppercase;*/ + text-shadow: none; + word-wrap: break-word; } + +.reveal h1 { + font-size: 2.5em; } + +.reveal h2 { + font-size: 1.6em; } + +.reveal h3 { + font-size: 1.3em; } + +.reveal h4 { + font-size: 1em; } + +.reveal h1 { + text-shadow: none; } + +/********************************************* + * OTHER + *********************************************/ +.reveal p { + margin: 20px 0; + line-height: 1.3; } + +/* Ensure certain elements are never larger than the slide itself */ +.reveal img, .reveal video, .reveal iframe { + max-width: 95%; + max-height: 95%; } + +.reveal strong, .reveal b { + font-weight: bold; } + +.reveal em { + font-style: italic; } + +.reveal ol, .reveal dl, .reveal ul { + display: inline-block; + text-align: left; + margin: 0 0 0 1em; } + +.reveal ol { + list-style-type: decimal; } + +.reveal ul { + list-style-type: disc; } + +.reveal ul ul { + list-style-type: square; } + +.reveal ul ul ul { + list-style-type: circle; } + +.reveal ul ul, .reveal ul ol, .reveal ol ol, .reveal ol ul { + display: block; + margin-left: 40px; } + +.reveal dt { + font-weight: bold; } + +.reveal dd { + margin-left: 40px; } + +.reveal q, .reveal blockquote { + quotes: none; } + +.reveal blockquote { + display: block; + position: relative; + width: 70%; + margin: 20px auto; + padding: 5px; + font-style: italic; + background: rgba(255, 255, 255, 0.05); + box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); } + +.reveal blockquote p:first-child, .reveal blockquote p:last-child { + display: inline-block; } + +.reveal q { + font-style: italic; } + +.reveal pre { + display: block; + position: relative; + width: 90%; + margin: 20px auto; + text-align: left; + font-size: 0.55em; + font-family: monospace; + line-height: 1.2em; + word-wrap: break-word; + box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3); } + +.reveal code { + font-family: monospace; } + +.reveal pre code { + display: block; + padding: 5px; + overflow: auto; + max-height: 400px; + word-wrap: normal; + background: #3F3F3F; + color: #DCDCDC; } + +.reveal table { + margin: auto; + border-collapse: collapse; + border-spacing: 0; } + +.reveal table th { + font-weight: bold; } + +.reveal table th, .reveal table td { + text-align: left; + padding: 0.2em 0.5em 0.2em 0.5em; + border-bottom: 1px solid; } + +.reveal table tr:last-child td { + border-bottom: none; } + +.reveal sup { + vertical-align: super; } + +.reveal sub { + vertical-align: sub; } + +.reveal small { + display: inline-block; + font-size: 0.6em; + line-height: 1.2em; + vertical-align: top; } + +.reveal small * { + vertical-align: top; } + +/********************************************* + * LINKS + *********************************************/ +.reveal a { + color: #42affa; + text-decoration: none; + -webkit-transition: color 0.15s ease; + -moz-transition: color 0.15s ease; + transition: color 0.15s ease; } + +.reveal a:hover { + color: #8dcffc; + text-shadow: none; + border: none; } + +.reveal .roll span:after { + color: #fff; + background: #068ee9; } + +/********************************************* + * IMAGES + *********************************************/ +.reveal section img { + margin: 15px 0px; + background: rgba(255, 255, 255, 0.12); + border: 4px solid #fff; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); } + +/*Custom stuff*/ +.reveal .logo img { + margin: 0px 0px; + background: #2c3e50; + border: 0px solid #fff; + box-shadow: 0 0 0px #000; } + +.reveal a img { + -webkit-transition: all 0.15s linear; + -moz-transition: all 0.15s linear; + transition: all 0.15s linear; } + +.reveal a:hover img { + background: rgba(255, 255, 255, 0.2); + border-color: #42affa; + box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); } + +/********************************************* + * NAVIGATION CONTROLS + *********************************************/ +.reveal .controls div.navigate-left, .reveal .controls div.navigate-left.enabled { + border-right-color: #42affa; } + +.reveal .controls div.navigate-right, .reveal .controls div.navigate-right.enabled { + border-left-color: #42affa; } + +.reveal .controls div.navigate-up, .reveal .controls div.navigate-up.enabled { + border-bottom-color: #42affa; } + +.reveal .controls div.navigate-down, .reveal .controls div.navigate-down.enabled { + border-top-color: #42affa; } + +.reveal .controls div.navigate-left.enabled:hover { + border-right-color: #8dcffc; } + +.reveal .controls div.navigate-right.enabled:hover { + border-left-color: #8dcffc; } + +.reveal .controls div.navigate-up.enabled:hover { + border-bottom-color: #8dcffc; } + +.reveal .controls div.navigate-down.enabled:hover { + border-top-color: #8dcffc; } + +/********************************************* + * PROGRESS BAR + *********************************************/ +.reveal .progress { + background: rgba(0, 0, 0, 0.2); } + +.reveal .progress span { + background: #42affa; + -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); + -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); + transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); } + +/********************************************* + * SLIDE NUMBER + *********************************************/ +.reveal .slide-number { + color: #42affa; } + diff --git a/images/architecture.svg b/images/architecture.svg new file mode 100644 index 0000000..fd5736f --- /dev/null +++ b/images/architecture.svg @@ -0,0 +1,512 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <number> + + + + + + + + + + + + + + + + + + + + + + PMDA1kernel + + + + + + + + + + + + + + + PMCD + + + + + + + + + + + + + + + PMDA2application + + + + + + + + + + + + + + + PMDA3database + + + + + + + + + + + + + + + PMDA...... + + + + + + + + + + + + + + + pmval + + + + + + + + + + + + + + + pmchart + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + pmlogger + + + + + + + + + + + + + + + + + + + + + + Archive Logs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .... + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/images/logo-red.png b/images/logo-red.png new file mode 100644 index 0000000000000000000000000000000000000000..c7bc05a50bc91f93a7a549a6cb418d0afff91b8c GIT binary patch literal 3222 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 r{`=GaKHd40;Pw9d??v9;|Ffq3bK&`zMpusJ6xM z4`ee%S!sla$G@*Fg$eKyR7W{oX9NVSuE+P2L>4SEcp-|5ys`|+(layy!I$aM>o4I& z6t?elT%;U8AWM4}_*Vo3sSlQ>E|wNA-ECcLUdqZVt68vHq97o=M39%3c;_*@@#X*xwxTdU!WRNdWKjUG;5Gv@2O)QOKV#>S46 zy;Nd}5;DH>M>n{C)9gZ;BsC!$$L6HFHEg7?P+dy{g^~&(*mMn)7D(>=lOU^cm;b34 zN0OzfZqj=d=|Ab5xQCb=3*{_I*}&z@RVn+59XuUl+Aem^g+lT36y=bbG^(iJZ&iz! zEf*odwL1Uh?$kq*x3ZDd5#l~5*}b`Gf1e*mnG0_Hgy{EyFxoiFJ4v!M^iMhk{OFS> z_y65dA1!8q1_l+s`P*Gyui$lTAgASv7j9-Rzs}+O=_HP_5Zp?MkAV!ToeBTbTuyaE z?fZ+rKV}W)o3POQNusGznlJxm(ZGK{Y5vO?7IOVlHdY;2TJ&04`rOTOW8?OwuMmN= zCpImgb*nG~PgFNi0P4}=Gc=dsG!0hO&L?o%;(-26d@~(SLJ}5CM5eEO& zxznk4to*wigRHc)pBffmUF}WuOo+aHeb&UpJA|E`-G*z9Y1qaslFx0M`wO6qv^0NV zYim}raptJ)Y}@?_Ed#kbYum%V1A>lvbG%(yQx>1y^r~Y`u?rbu#cec&FS{J+vE#)t#dEX!*r%kC(Pi(=;wFS6OIc}0H34wf?-t7j1ii(Pz z0OWc31@@IP@L^fF*RLJcInExkTg$){9w~_AVl`G*vRA=!zr7=DOjn&WgU_!xF;)m- z_K2*C3Kr_8XFzCA6=-w#CQ`F_+HpA5+VL_+1M2VptNjzgeutaluKTGk^u6==l0$x3 zD`g#Yh=ZdwR6|85E`K2DB*OS1cyrSVq31w2INhN>OTfBy=nnfn;q=sn|4R}#@HdWv z;=ps{K%XW@+z={X)<6`@^+vn0O>FIlRQLovRhy~fP!+rXuF@PDy2k})QT^7i@EnBg zwTc`6#k{9*gP`ETVp#xurQez~bDe<1Qbj}3=JWzOUTR>Ag`U>%CY9?vX%~Y8yV~7F zgI)FUdtuug{U$(=rIBqjLbV;S*5Mc8g{=RkpF3{SZ0vg`mHGz;#SU+9GDn ztwH!q>)1oYV?JwtuHf(BJVYt0xOqspJvi|hBG+U?sIY!fs@UzkZ>sf^g*KK#3Mf18 z6VA;$rk5(ddC?dk;;;>68Y&VXX zqW3b=>mgK|WTD5dHut^QU<4A2xy@0^Dm5wl3KD8 zQw{8#yu5Yqi^PmOrlyKGszO8MP&(8?Jy=!D%sSn~*$a!I;rfJU zu4j39v~}W$?sjlt&)Kw!Pl%sOo}8SFi;ev_kbhDB$S8>pt-t!*i#Oy^(>^AGM+Nwp z-0(#Y;2QHWdGY?M(L*1XPl-+uJNwk$07tR~v2@SVB)xURVyJZPWEv6#fb(fm^=5?}wSfXys z4e3lVns?OGM&c1v#{PT>8s;V5=Nz{!>rd_P_Fvz+rR?<6`)qGN%MdR7nYlB$(v_Z~ z{4k17oO#&0M@^)(B{U~^7@?!w?Q=XV>(fvbU%?V3_6loR76pUGGQC_YT}O(K4`#uw zv9Rwt-7H+*yWhgTSZp;I7cw^822%*t^c@^H3`zCbd-q{}sV-4&Ygf12_mS`_qHQhi zFzu0z&$c`%ZQ#hU9=*j<*-gP?O^Xo<`_`_dN4!sbMy6F&#H}D{Bz|pqg2MK=lpJ z%cc#zDv0YuFzafZUJ)~kEw}yKF%3s+mCY|}6twODWZ}1vofo^`d48NysJ(vgZ3vo| zecSwHgQciqEP{B3<%xAjBbIiVm8U#~lLOl971BCwqnpF-HUE;ae!0}6mhn~V%8w*P=E0+&}Azu3?pVnsI&dYk|FEE#y71DZ4+>ja2zyGC91GW-KbP(uL7_ z+ZeW<$Ewn>sTyhgFrl?$(~DN-73W@b0yx=o+Rq_ur;S=J+&bIZzsa&3^_=D!HXdg2 zZw#n=6Vvmci+Ycd9&ed=Dz@)cCR|H3TK)ieJ*|IZkVm|-trOjq zc+2N>Rkki!o`C|xUd{31pA@kX0tQ2K#~5XvN62qz_X?Dti8m~bwL*KUueblGT|b-- z{RjrOJL~k#~X@6N~yc#pyCJ3;hw5*^Wz6vayF;UCh=_ki&zG%Dcmj=|CUh z6^=WcVk4iFru#ZBzs52851XpJafF6_ZHInj&T|wZA0!=`-6)(7?)m&t{RLvzn3f|4 zMl6RpvR9Yw4wv%`riX=Jfn}UE@S`Zxm#-U?(sd=qQsga~Ks%d@5YWTGs`kZ0A|j8$ zOq}cOMN#qPjsL~k{rHJZnzKM%>;B4~zepEXizqSh+ga3d!0%w~hO53rrRGgPKS5^P z&SH-PZ2#3M*&f)DLvU?m1BUjIAkne^L&h&W)^u&hCGgbfc^ix5-Kr)p!#V$F1xT z92@ju3V~UJ!8UvU)W%%<&C%@hUR8W!aW}!~#cOi>1JPtjM4W=#2&J;-T_TKQsk^N@ zCzyDa$*8)&RiyI^)fV->PXdd*mZj5WFKl17RxfUcet})*UhphUn?{26(b7svK+SFZ z7sI1kJDf|U+Om&AwawMIr1E|~Z{w6koFnG8S;WhdZgpOdMfJqXY7l+YTEQW0y3|6( ziK}?GdWM6gE5I{R+HGvb^DTE@|4*BTpGqfdyg2L+p(Bzlg1+x16x|JE(Q;LV9LeZc zX8R-u>hHdd3$9G?0M_a*j&1K7=6yzSp7K`hCCYFDpQgIn>8Kkh!5TSzdl=Mtym4zQ z>63bD0y%Dk_~Ivx&in*#1*0r_~B+43lQxE12pHp3xCI-O7}2Q+29W z=kN2WF++V>{!tTh1Jrr}X9^PQr|f3W)<8qul*chb;nb+eoX?QS`%qJBeU3c&pxkIe z2KTtmfmgSuvND&LCV0eNgOwK3Ln~|HHoFd2zkP2_*-BT4jcp(NiBPWE^n{)QwC5y0U2yfIWe&fjA$l;~c zMOIw9Ntx#|KbC@h!D+-+11y@z<2a)4)=4t*IG9m6k>~PajiT^$$Yka<6&8zCgMOUqRboK6*_x(HXR-3LkrFdAkrs3X(_O zr#)BuB}P}95G3-@11n<}Z+RNL8NLZhvl&3s#Bric*oS&Fm%Zk|Q{s8C|H90%(1YJ7 z9Sa)^Xhyia4H29+3b;uX@L1<~F!NLAB5&V{{o^dW?G5Z@;X4I;()1cA!*?g-<0Ba&HA*na80oXsC_9^Z zGiGi!eEj`y$0XJtn_-0~z4%*BvygEe?j4K|Z$)UW4BCzTcz!p<*j1ACDRc1>PUBKL zB;fDT#%_hEYK;>^vy96wGSj+@@$v>8CI;E~3TdSj zLED+&*$)&h_LlvhtGp%lv|wWe#n>3Ws-n@JY@!+B37|L2mN=2|t@Bg}YjB-P0=b=m zOyGWDvcJAPdSLkl!EoCLv@IwubE{u!y1m~=@7|d8YhO3WOXy)s8~?Ob6Q=7Qvd0kj z8ky34kjTa9K6S^449pkl+)zzL*|lw?H)c-4Mro!dvhAF+Ox(;_{+`XnfBgj8m!RN5-rQsu(tHY%@-DV0 zv43IA=0IzYN9-|XbGe6G!0{f)luMCo?@KZSPN-22NiY^jDBRM*LoDfW@Z8?!qg4V# z8ZENzwM4kqEX=ZQsj;W-n4f1}938J-CmmF1;ddX3v=1Hj%syE6jzX)sz9%-rXtF1} zJ^^Y^j8`{yfYCDom_#bKf<`nO1K-1E^Z{TdC3&We)NNx8hbNWqH^pw46H`&D{iiNa z^o8Gc+;&?Af!aNOvXZ|pBVx4^Sm;}5Yy)fk6(G@G_S>7u-jCJg8}Yv~=bc7pJ-9Wv zq9%DgP@MYD{H?OTWL79P#c`D1kTAF#Y_hErVb6EVH?#=eVHdvjxyu%`(<1xkGyHv z4?aoFN|AZn{3&hIq9?FzV=9QfxA8AOANgza4}U-ZC@QLQKT|1H<0E4Z1mKVVR8nrQCA*=6R=(+1+;z;`h)?{* zBV;mHNzdG0^t>sdZ&0bbO}?p#qBOUphLR;##m#H$y4D=?3+OvtR;+Tl%OSrj>Jo*k zMK9@h#$xI{1!@N2{F7?0T(T6m*~G#7*}GeF-Y?!}@kD8Ri7~gmpHg~84viNGuNXen zkUzEco;n-dxUuuzReRh5<}n~cA<;rs)dNeOzCD!ACi={4Svpf$2AhVSxBF*DJNT!h zTxlyz-fz&iv(z{YTlvWssoqgM#sPmWg6dpk2p=sdF7B*4@7I6Am;dcF|2OmRzEt}E z&ivQNORK`L3P`P(#P)9g@7D4sE}Ud&7)_z>E(-HO)Jc-jFpo{_rhAv9jUT0J0tFaip`m?X z{GF~S89-$|h{fT5xY)8iS)6Qd^oO9Pfc@A{kfz$oq9SHeGBV*i7zoOrWC=R2hH8dG zHNygNoCYLl)1F7)W02R6xKYiBUd%)4oz^&ee5~6*8+JE)j(|DwIyO5XaJ>S814gT`!)T}rj1f2n6@~%1geIBTMT4;_KOb;~ZDs@Q< zpw=ocDRdaUUtsR-bZE_Sfgr;>6TJSN%hiJu^`@ygGnL2s;5ebuaYgb?ByoqvA$xxF zsFhka>p4jhWG9|f%qus=_t-ZB;7N0`Ib^;!Qwhi%ZfPW6Dl7m8+pzXy?Hia#xM`iU zGqr)Btk+gZib?kE8)xPuflCyx`1oGGjFl9jWFWw(&dCe!@8^t2F0tO|e~TpwB)>yG zT|BrG&Q!q?yEMtV+!I%N*lVMejX#>cPR-y-g#>=j3JsUb9P9C2a zD?MnUgYGA$v`mOUD@!I1a9N)N(QeM{u&Wi5+4GBviWCh2Ay^a&B9u${3})M7`50vU zkvI1@e4l+!1P@}3E=BFlDgh9*F~(waSf9YI=ibogjE7vO!EEtt--`wJa<*Qug1o}) zPQ&{qZ7;+ElW4B5pj`7%v1YM9CKDY0bTfTh|SQ=*h}xh}ovz$t%mhBF0c} z%n4|4Cakgty>Mvd3W3Cg@;ExKxV4d-brTs^^fUw);8No$B3??04Kf7xCD7wPe}C%^# zvbT!$+bCypraP-=gJ4tM9*cH~`D7Y1jT7U~3m!KM(vJAT3iG~Yc?L?RUbRrjO8eo( zXrTiKH@8Nr@D17KkYT6yp^u857h0;W?E-t?^sXg*sWzVsHSyxk0e?FfTg^&;Q>!}?nzjI_)K!qo5wPQ!M(TKqv}F_NjHhEqP1wES zK^0R>8Nzg^RT1?jmlpY{PEvROwU?iu1NBOOBbaewWohVH{?y1+VZ`&#xwJ{mLriPI zj#}!6nO=DP0|W933agM9ZKuI6E5sP19s?fBZ3~WUbqk&xeX~fsvStK?7To4WsL7PV zL945)6r_xGTG3!^u$h;)YD`dvjOjET;U1&CF;#lTqNiF=mvK4~$b}_)bLrT& z)a#e)4X)^7kEw;6Yv>vpTNmezkDygiD`QyhAogSI?EgI4~C%_&Sn>8{N9H#5!V~+w}z_Zxd z-E}t=+?%?dyW04TW{%-kj$YU+TV7%nEyNjDvyRcKt2MYwb@f~p!)f4A>LvK?YlHNP zK@FCsmAj2Ei8%BXoxAAm`MCXVX=#SY0C({ux2pl~RRp~_VK#^`9h|*O_k&l-(C&4n zTwP5ANhcUGe@XevHunp?R9`VFd-tfkU%VgW{i{phY zI|80Rdm3cs^lg;*hpjK{I)3gO(EB6EHVhb1U%G_Ir)(PeqZh;)TzGh!^wWe>&Q*%X zz78E4jJ=rNciTW!H<4@!`z?Oh>(=;tvMCf-Bbp(anl!@I?rllgmsf-_Jp0DjPx*Vm zl~KwSf+`YiITq(+E#v*8lLGIW*%?|thQtL1o(^ROL1;O>LX%}!wAJ2b{lYWQmnyNW zMTR=!Cqbqcy`bc06)axa`bk6KFLuLvRta8M#>dA;@`y&EJX}3T7ki+}9yaXyPEEO| zgFjO_a_~9fc?I zf(<8j0jMEd9ZiJ&VCPlk9aT${>;!{vPU_wH|4|^;rk!UACg^&`?#Bqaj3h1iU z(!h$=Nyasg0T;Lt-?9noSf>DFb*#=gr<9R;FIqXk0^UyIctT_@_n7^9}`8m9; z=(prYj0g*%vY78ebfmY&#pp$S!Uo!G0W0L}aD%fba(oFy= zhKykN0@buH4E(qxr7I(}RB{<~N`T#MXKu0;OKyW&lC*GbI{SrH|Ks?!+1WQ$;@Eg8 zz4w$bq2~vv*8gGwR0k>#*CQ!ox>1oK#33?f-?GQ5FfFXCR?a+}gbXvh=8&4NKj6hQ z-?Dldi;YzFQmC4mntE4&-oK~Ci^7pRT5%J!v3ZUc;|}*GXmGX44CGk}cW(oOeI!Tj zzFc2mF^HImsTeaINNmNat9MMeX1^u)0g0SP@g9@j)1@+Ly(bkGBuPjrz#8~tez%@M z=>`a&a(XORuz%Krf`w}*?AhnRBL;SFaB5NTt9LnrDo{-lBnQLIpb<^Jufyc!p9M;c zjg4JaH5SnQUZu4Mk<-mg2|)?1ph?}V5o)}Pq`*K6U~go#VO(6C1c1DNk){2*|BZo) zl=FJrjMX#8(yyd%I-Q)bY9(m}IuHMyZL zPxl5dEmHHx!LRKf&Y>I5Z%@PF(38bRGGJsu?-CnLiJ$sBt+6MeP zEJq(+ZG_o=vB<+czR}G}2~Et7acZbg6?)>lH#);kWF^qnLH)>Naf9?smD(o!ZeZ&! z%w3!uOLo_qswWOHS~Bt#nYjqtn!^4;-HnBnrMjlNgq0P&WmJ?7j2P@>Qj477u}iEt zFh}e*mn6XNZqpFXmyq6K7XX6SiXdcLJ(UWna5EH)(;1lQueWqQG#`miNmXRE*H|LR zuPI5B>LuiIKQKVXBCj9l$E|)z5Oo;;!R0K?xrrRk)W_HL9jynxJl3V0g3We#M*Q+C zrseKkx1;Wma-4{6IhFUR8LVyY)Fez#@a~M11gwb;#xSihRICT?R$KriTtI>+{!ig< zzlVqlEnZGpSu~kLbKF+8f3y^qV7=&sUXqNP7JJLF*Z4d+9eG%M?DDRb-Ttu|13D2& zcm#E`Jwj^rHK&sws(G5YiD~xR#rv?pJzwMAEwtnOhLrw1i=;F5

GH?-yQS`fA45 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 n_X<2@%z%SC!A@-@GHx4}3Fi>w)b$I?ipaw%^ literal 0 HcmV?d00001 diff --git a/index.html b/index.html index 5b631e9..16268ac 100644 --- a/index.html +++ b/index.html @@ -4,10 +4,10 @@ - reveal.js - The HTML Presentation Framework + PCP - Performance Co-Pilot - - + + @@ -15,7 +15,7 @@ - + @@ -41,334 +41,321 @@

-

Reveal.js

-

The HTML Presentation Framework

+ +

Performance Co-Pilot

+

A System Performance and Analysis Framework

- Created by Hakim El Hattab / @hakimel + pcp.io / @performancepcp

-

Hello There

-

- reveal.js enables you to create beautiful interactive slide decks using HTML. This presentation will show you examples of what it can do. -

+

Who in the audience has heard of or used Performance Co-Pilot?

+
+ +
+

What is Performance Co-Pilot?

+
    +
  • Framework for system-level performance analysis
  • +
  • Collection, monitoring, and analysis of system metrics
  • +
  • Distributed architecture
  • +
  • Full API (C, Python, Perl)
  • +
  • Flexible
  • +
+
+
+

Who uses PCP?

+

Netflix, Aconex,

+

University of Buffalo, XFS Developers,

+

MessageMedia, Red Hat,

+

...

-
-

Vertical Slides

-

Slides can be nested inside of each other.

-

Use the Space key to navigate through all slides.

-
- - Down arrow - +

Architecture

-

Basement Level 1

-

Nested slides are useful for adding additional detail underneath a high level horizontal slide.

+
    +
  • pmcd - Performance Metrics Collector Daemon
  • +
  • pmdas - Performance Metrics Domain Agents
  • +
  • Metrics
  • +
  • Clients
  • +
-

Basement Level 2

-

That's it, time to go back up.

-
- - Up arrow - + Architecture
-

Slides

-

- Not a coder? Not a problem. There's a fully-featured visual editor for authoring these, try it out at http://slides.com. -

-
- -
-

Point of View

-

- Press ESC to enter the slide overview. -

-

- Hold down alt and click on any element to zoom in on it using zoom.js. Alt + click anywhere to zoom back out. -

+
+

Installation

+ +

On RHEL/Fedora based systems:

+
# yum install pcp
+
+ +

On Debian(*) based systems:

+
# apt-get install pcp
+
+
+
+

Installation

+ +
# systemctl enable pmcd pmlogger
+
+ +
# systemctl start pmcd pmlogger
+
+ +

+# pcp
+Performance Co-Pilot configuration on marquez.int.rhx:
+
+ platform: Linux marquez.int.rhx 4.0.0-0.rc6.git1.1.fc23.x86_64 
+ hardware: 8 cpus, 4 disks, 1 node, 11742MB RAM
+ timezone: CEST-2
+ services: pmcd
+     pmcd: Version 3.10.3-1, 7 agents
+     pmda: root pmcd proc xfs linux mmv jbd2
+							
+
+
-
-

Touch Optimized

-

- Presentations look great on touch devices, like mobile phones and tablets. Simply swipe through your slides. -

-
- -
- -
+
+

pminfo

+ +

+# pminfo -dtf mem.freemem
+
+mem.freemem [free system memory metric from /proc/meminfo]
+    Data Type: 64-bit unsigned int  InDom: PM_INDOM_NULL 0xffffff
+    Semantics: instant  Units: Kbyte
+    value 340832
+							
+
+ +

+# pminfo -dtTf network.interface.in.bytes
+
+network.interface.in.bytes [network recv read bytes from /proc/net/dev per network interface]
+    Data Type: 64-bit unsigned int  InDom: 60.3 0xf000003
+    Semantics: counter  Units: byte
+Help:
+bytes column on the "Receive" side of /proc/net/dev (stats->rx_bytes counter in
+rtnl_link_stats64)
+    inst [3 or "lo"] value 1449301
+    inst [4 or "virbr0-nic"] value 0
+    inst [5 or "virbr0"] value 0
+    inst [6 or "vnet0"] value 9087033220
+    inst [7 or "em1"] value 9371300105
+							
+
+
+
+

pmval

+

+# pmval mem.freemem
+
+metric:    mem.freemem
+host:      marquez.int.rhx
+semantics: instantaneous value
+units:     Kbyte
+samples:   all
+               371924
+               371824
+               371824
+               371456
+               371392
+					
-
-
-

Fragments

-

Hit the next arrow...

-

... to step through ...

-

... a fragmented slide.

- -
-

Fragment Styles

-

There's different types of fragments, like:

-

grow

-

shrink

-

roll-in

-

fade-out

-

current-visible

-

highlight-red

-

highlight-blue

+

pmchart

+ pmchart
- -
-

Transition Styles

-

- You can select from different transitions, like:
- None - - Fade - - Slide - - Convex - - Concave - - Zoom -

-
- -
-

Themes

-

- reveal.js comes with a few themes built in:
- - Black (default) - - White - - League - - Sky - - Beige - - Simple
- Serif - - Night - - Moon - - Solarized -

-
-
-
-

Slide Backgrounds

-

- Set data-background="#dddddd" on a slide to change the background color. All CSS color formats are supported. +

+

Historical Data

+

+ Collect data over time via the pmlogger service. +

+ +

+# systemctl enable pmlogger
+							
+
+ +

+# systemctl start pmlogger
+							
+
+

+ Configuration in /etc/pcp/pmlogger. Default collection interval for + is 1 minute. +

+

+ Archives end up in /var/log/pcp/pmlogger/`hostname`.

- - Down arrow -
-
-

Image Backgrounds

-
<section data-background="image.png">
+
+

Historical Data

+

+ Most tools can work with archive files directly Collect data over time via the -a <archive_file> + option. +

+ +

+# pmval -a /var/log/pcp/pmlogger/root.acksyn.org/20150409 \
+  mem.freemem -S "Apr 09 02:00" -T "Apr 09 03:00" -t20min
+metric:    mem.freemem
+archive:   /var/log/pcp/pmlogger/root.acksyn.org/20150409
+host:      root.acksyn.org
+start:     Thu Apr  9 02:00:00 2015
+end:       Thu Apr  9 03:00:00 2015
+semantics: instantaneous value
+units:     Kbyte
+samples:   4
+interval:  600.00 sec
+02:00:00.000               179540
+02:20:00.000               173756
+02:40:00.000               184852
+03:00:00.000               186352
+							
+
-
-

Tiled Backgrounds

-
<section data-background="image.png" data-background-repeat="repeat" data-background-size="100px">
+
+

Historical Data

+

+ pmdiff (*pwtf) can be used to find metrics that changed by a certain factor in one or two archives. +

+ +

+# /usr/libexec/pcp/bin/pmwtf -q 50 \
+  /var/log/pcp/pmlogger/root.acksyn.org/20150408 \
+  /var/log/pcp/pmlogger/root.acksyn.org/20150409  
+Ratio Threshold: > 50.00 or < 0.020
+       20150408        20150409   Ratio  Metric-Instance
+      start-end       start-end
+          0.001           0.107   >100   disk.partitions.blkread ["md125"]
+          0.001           0.107   >100   disk.partitions.blkread ["dm-8"]
+          0.001           0.087  87.00   disk.partitions.blkread ["sda3"]
+          0.014           0.000    |-|   disk.partitions.blkread ["dm-3"]
+          0.002           0.000    |-|   disk.partitions.read ["dm-3"]
+          0.001           0.000    |-|   kernel.percpu.interrupts.PMI ["cpu1"]
+          0.000           0.186    |+|   kernel.all.nusers
+          0.000           0.019    |+|   disk.partitions.blkread ["sdb3"]
+          0.000           0.013    |+|   disk.partitions.read ["md125"]
+          0.000           0.013    |+|   disk.partitions.read ["dm-8"]
+          0.000           0.004    |+|   disk.partitions.read ["sda3"]
+          0.000           0.003    |+|   disk.partitions.blkread ["sdb1"]
+          0.000           0.003    |+|   disk.partitions.blkread ["dm-2"]
+							
+
-
-
-

Video Backgrounds

-
<section data-background-video="video.mp4,video.webm">
-
+
+

Historical Data

+

+ There are many more tools that can be used with archives (beyond the live tools): +

+
    +
  • pcp2pdf + can be used to create a formatted PDF report out of an archive
  • +
  • pmlogextract - reduce, extract, concatenate and merge archives
  • +
  • pmlogsummary - calculate averages of metrics and output summary
  • +
  • Convert from and to other metric formats: collectl2pcp, iostat2pcp, mrtg2pcp, sar2pcp, ganglia2pcp, pcp2graphite
  • +
+
+
+

Analyze Data

+

+ Import an archive in ipython and manipulate the data via pandas. +

+ +

+git clone https://github.com/mbaldessari/pcpinteractive.git
+cd pcpinteractive
+							
+
+ +

+$ ipython qtconsole --pylab=inline
+In [1]: import pcparchive, pandas
+In [2]: p = pcparchive.PcpArchive('testfiles/monday')
+In [3]: p.parse()
+Parsing archive: [########## 100.0%]
+In [4]: metrics = p.get_metrics()
+In [5]: len(metrics)
+Out[6]: 253
+							
+
+
+
+

Analyze Data

+ +

+In [9]: net_in = p.get_pandas('network.interface.in.bytes')
+In [10]: net_in.plot()
+							
+
+ + plotpcp +
-
- -
-

Background Transitions

-

- Different background transitions are available via the backgroundTransition option. This one's called "zoom". -

-
Reveal.configure({ backgroundTransition: 'zoom' })
-
- -
-

Background Transitions

-

- You can override background transitions per-slide. -

-
<section data-background-transition="zoom">
-
- -
-

Pretty Code

-

-function linkify( selector ) {
-  if( supports3DTransforms ) {
-
-    var nodes = document.querySelectorAll( selector );
-
-    for( var i = 0, len = nodes.length; i < len; i++ ) {
-      var node = nodes[i];
-
-      if( !node.className ) {
-        node.className += ' roll';
-      }
-    }
-  }
-}
-					
-

Code syntax highlighting courtesy of highlight.js.

-
- -
-

Marvelous List

-
    -
  • No order here
  • -
  • Or here
  • -
  • Or here
  • -
  • Or here
  • -
-
- -
-

Fantastic Ordered List

-
    -
  1. One is smaller than...
  2. -
  3. Two is smaller than...
  4. -
  5. Three!
  6. -
-
- -
-

Tabular Tables

- - - - - - - - - - - - - - - - - - - - - - - - - -
ItemValueQuantity
Apples$17
Lemonade$218
Bread$32
-
- -
-

Clever Quotes

-

- These guys come in two forms, inline: - “The nice thing about standards is that there are so many to choose from” and block: -

-
- “For years there has been a theory that millions of monkeys typing at random on millions of typewriters would - reproduce the entire works of Shakespeare. The Internet has proven this theory to be untrue.” -
-
- -
-

Intergalactic Interconnections

-

- You can link between slides internally, - like this. -

-
- -
-

Speaker View

-

There's a speaker view. It includes a timer, preview of the upcoming slide as well as your speaker notes.

-

Press the S key to try it out.

- - -
- -
-

Export to PDF

-

Presentations can be exported to PDF, here's an example:

-
-

Global State

-

- Set data-state="something" on a slide and "something" - will be added as a class to the document element when the slide is open. This lets you - apply broader style changes, like switching the page background. -

-
+
+

PMIE

+

Inference Engine for Performance Metrics

+
    +
  • An inference engine that can evaluate rules and generate alarms or automate system management tasks
  • +
  • Rules have actions attached to them. (e.g. generate an alarm, create a log entry, run a script)
  • +
  • Works against live PMCD or Archives
  • +
+
+
+

PMIE

+ +

+# systemctl enable pmie
+							
+
+ +

+# systemctl start pmie
+							
+
+ +

If the number of IP packets received is more than 10 per second, send an email /etc/pcp/pmie/config.default:

+

+Delta = 1sec;
+network.ip.inreceives > 10 count/sec -> shell \
+ "echo foo | mail -s 'nomoreyoutube' icanthazcats@acksyn.org";
+							
+
+

+ man pmie +

-
-

State Events

-

- Additionally custom events can be triggered on a per slide basis by binding to the data-state name. -

-

-Reveal.addEventListener( 'customevent', function() {
-	console.log( '"customevent" has fired' );
-} );
-					
+
-

Take a Moment

+

Containers

- Press B or . on your keyboard to pause the presentation. This is helpful when you're on stage and want to take distracting slides off the screen.

-
-

Much more

- -
-

THE END

- - Try the online editor
- - Source code & documentation + - Try the online editor