From 6ee4fc8d302e454c7306749973f82cfb4c33a12c Mon Sep 17 00:00:00 2001 From: Pierre-Alain TORET Date: Wed, 15 Nov 2017 13:54:43 +0100 Subject: [PATCH 01/11] Add syncthing plugin --- .../syncthing/example-graphs/syncthing_-1.png | Bin 0 -> 23834 bytes .../syncthing/example-graphs/syncthing_-2.png | Bin 0 -> 23223 bytes .../syncthing/example-graphs/syncthing_-3.png | Bin 0 -> 41568 bytes .../syncthing/example-graphs/syncthing_-4.png | Bin 0 -> 16551 bytes .../syncthing/example-graphs/syncthing_-5.png | Bin 0 -> 15762 bytes plugins/syncthing/syncthing_ | 151 ++++++++++++++++++ 6 files changed, 151 insertions(+) create mode 100644 plugins/syncthing/example-graphs/syncthing_-1.png create mode 100644 plugins/syncthing/example-graphs/syncthing_-2.png create mode 100644 plugins/syncthing/example-graphs/syncthing_-3.png create mode 100644 plugins/syncthing/example-graphs/syncthing_-4.png create mode 100644 plugins/syncthing/example-graphs/syncthing_-5.png create mode 100755 plugins/syncthing/syncthing_ diff --git a/plugins/syncthing/example-graphs/syncthing_-1.png b/plugins/syncthing/example-graphs/syncthing_-1.png new file mode 100644 index 0000000000000000000000000000000000000000..a71e34d2c5c8c67f57d7804b590a5db04823dae0 GIT binary patch literal 23834 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 cS79 zIc%2bH1m_z-G!gzv1XcK?e~`--SRi@4OisU<)O!kbch9qa&&pA6_?KZnZ2dHrn`1b zb|T2_-BeWKu}J4)_cj${;KnJPDUv+b_T9YsRJMflBvTCppM#X8_Px^$KI3^5grd~3 zg!tHj$mp^{n5^R}uOy#b2rv=S5N8C%;k6g08FmBc@fH1Dd&k{oEn9;Y?#8E2Tf*yp zd@YW>C)Jc{{mhvkg(NU_l%P?E1!~@ECGB~9W_Xw7W(3O2tY=GMv(pz>h$Y{7Ypv>Y-M|=o8gj?a3;4PmgFs(m6 z7SjV6)TJ+K15OS_Z|i1VS<@Lk*_!ZF;WkGt=*x{|c{i0CS3J)g{2lpeK`D^wKpH~r zLiB)HOVns^TMB;;`tGy7rt1B=?=^X#5i?(j!Tr3FWlr|_6SrxH!) zOZ5Etycz4P>z6!EP08!q=sZ(Uk^IU^In#Znm);$NPT1o1(OK2ywu@RIP4l=9SeibR|g-bpEp>%_u|O3+JSA_)~+3V+TssI+TC z`@JvV!lPP7UAbvAXaOmC?`0YlT8r6{WX+=5mlF7XJ?tIWazwZ8z`z>A2zmW#^2~|Z z`;A0u58;1w&vmnZGot9tlm=E2$}_SIs(v^?FQD=&;mhf>5l$blILt$yZltg$V=-2H zf9{8dz3$Z%UacK{V^K3D0l-;k)hypil9UVt+itEG@=eI_R&a)Nv9}XlH?issTJ9 z0Zd<+k&qO8EJU7u9SWX=47X@aRap0S&yNa0b$#1(UeVfkGTC>er#ntBsBhlAbPxS? z!n0qy!hU?egz7d)!KcDgUl{_!^7jQ2TwVO1;pE z&`%bJjos9)RFlkt@-3II!K=Ey2{+JWfOy+vOg1<~EFvG!>A6^z;z60lk1UFPls?C7 zAhC5yP^{2FU;yt)fA{wLYp;1~w^r8{u5Z$lkUV(LfX>_$H@LEOG+jwUB5L;);peG> zi|Q;w%HoFtZ;>0~00HUZy$)nz(QHkQ(W4P#=$hLWh9g*oxa916<;RY%9CsVWQ+s&> zpyHa=*?>D>&E!+?U?f)iO~4EL0yV5LpddE=;?lAr{^J`z*L%bQSNDnXV1--k!&_&Y zU!8)qz+$&AL+vB9hS!6-wI1!gXXutaC1;T7a%`?@c7LJlYo36rq%V-KSsfL}_6L$7 zbtm*CU(VdrdQnOS6Knr|h9(*lV{Ec3j}UauvNmE+>`V@h0v%*=xhj40sIuj_AK6sq zTne?G&$%s9BrzYf+>uaQ-S-wV+n)|EXaZT?@+vN((Q<+8XLtq~bm-dhejwkx%4H-sITDWq!s^-9p*7R3|AA7cVBLM&l!I(rw9sD+xBu`@=g zKq=PUgA1gzla}&d%M%bUKMViE)8)fjEVFe_e6bq^9fS0cBX3hzLZ)}!MMto-;+E{{ zW(FOBQ=+!`>`PK%k{ zv+c6AakZ&Goyz_MycC?kE;R(ryzO8(*JF5nI$ayxd7}kCslv#tzHDX`4GK|tndi|@ zQdd+)`%3IKo*B7Nx23#`SmaLLAP7)=c9!u}kq7}aKG=H@;XQyySv}hmP^~Wa?jE0z znbcV1JW#hiwc&PakHJ)1_+o*`{Z}3g1k>)fmlGxXyb4CN6~Ufrx+ggL;%`9g(KG-j`PU2Ge-xL5Cq?snY?DuwJu zdzhH$o+eyuw`%KUt=Wrvq|6%^D6P4R5wqdo_kJ~)@Jq6FhHeb~1!_JRsgVNTzM>~t z?lc1?-B9Rf*A~>KrZ%WP_<}e_Mzb>b^VopA*B6n;^5XK`AWF05826b=+RX?Yv}<9% zIWi5jI9j?%BrDnDIPde+qV`zSv26(&MDr^Oyv9!i-ax(Uw&{Czv*e~!mp^>h@-%*U z^?lQn1*lx9<3c?cn&7W%otmOE7sqNC2FQlb}YlZY%xddIXI3*ylz4 z*=(8W<-WsH!)`eKIs zU-0F`zGZfLlYSkWnXi4SFXJ1FWF09pYoNMX@Ty&6e$O5#XodSiQ~m5Q2J;MHn1-J@ zBx%1aXJO+7W$|!V0(lpnH$jV?2l_Se-95pz zEF>z?l8qL4l{Tf3enU1Tk`1#-!EBtlwERZ}V+cwP<#V7WJoDC!UfLc7K{l^7X|i6o zL@WPE;Xb^^Pm!Ms^!D%v#1(UWFjp1-S{#feoo`J1S#yR&0#L=%!Cz=UU~fdN7jzd4 z8T6NLFG22Knz|g4!)sQQ`Ae$8$97ClO82#Mu5kCP&DE`Mb$6ETAnxh=>D1B29PR~T zz}_6{!P7}meQCCiunxpbvfxdq?PD6K1CMLLqt?96uHfOJqQV3=74s3iWjDDQeAEO8 zn>n3@2HFCJf@NXwiIvu%epH4N?*;Hx?eww*>P?*Mh0dT4V8f)fL}DYbC0 zK4aOJE9|W!j{%;!#|ZQ(m}fyYd6cX$|7WB z+I$G>pnktaZ>BN?)hTJ7w7^DBh{cBU(9?+njB$*oTN4^01u04sn!!$!`6Qz%@&USE zU-Vy>3dx9*x?0WE1eegmb(taL%d}QbNjdnOv6&}8{2n0wi1 zd|b=mgL-qjc#-gfMrtER($S~rr!j(~uXsWR7k}y>N7U!Jm2)S~OZh_rY`>l7Mi{%y z!ZQN*YBaQ05b@c-8Pfa}K_y*v)CaBYxU zADQ8)AFJH`#jo{ap|F9u^rydS{wAT)qR~^O&e-Hhx`+=b*>47&BZ8iDwGiuSkMe!7 zU~bdD@Z^cHt1jgnE8n}hdIqGh{4*X3z)kyiD^#G0hY>5OeKQp?U8Op_L!b>XPt2kT z?YI8A)+a=s#+L@F=*Q!OsxvaEtDXgz8O1uV89^aTY`R$(^|AFKb^-E?&>dz@Vt-QK z#9lukf*lQB=3b91>3(<-L;@O<_W|I zIeP{g2VdNGp7i31X9D4`>->wOm9UPVA90j!=G@$oL&w! zg|bf_S4La}5Iqv8H&AKA;MnU{J_P-x^-wzuo@Zh!#a4Ccv+YpttagO7fbxM~y zPc#)a3NKmE5RAZUv^$ea+!TYQ&;a_QU{Z8Ll!F^{7`lm#0zG!+%b78U?Sku})v~^H zqWjJ9#GT9gX58l;&rb}|&vKLWDiLvC_o&4t29cD8%p%R@HFs<`pXr*d2dOgPSKU$_ zbesK8ysnS>&gr- zuFItr&dbrl=H^I40jlGLrATSS6_g4S(x6ie<9gN+J|@Yjsgr4BHh1gC8#D?rk|9H& zd=1AP-wWJJ*^-tjG-(0pi__d;L&^gBoo()!1kfrGF_JCZeP??j=RsGlcdtD9;(tB* zake9fuqSCf0no!kB8gKiU)s_N?6SwJf%E%j{T~-A+1yCZ)jiS(i|EdOVucw*##_R1 zrKMA=kTLGyv^Q^Po=(Wa)rZ>)en@2uKoV;x$pK!&A{Ei_xP!o$y`TBpqTj_Y$kWBT zFJPg7vs=x(3{?88^V#^|O2s#cJBtU@Y0oof7Py9ajH1&ht@qtXd$%6CAQ<}@8xFJl zd`fvtKOHH&l8VV)E$4pOlQpPNp~;|MIGQ)=#if_cgvknJvA&UI>jdjyv5x^VhizOI zAMT6Or^!>vafg@#f}#rkv{MkNJ(gJ{r9(n;q7gY4Aa}kqpb%-2u=DvGo}v(e7V~_k zWK-6Z?vy*lMtc=@Bxxil(f%AFzet(LRu5>o%&2r=t3b6pQ;+zm-#wkAXE8Rtb(-5{G)UR z`ZXGtl#djB8yB$p7g&$p+qyfek`g!o0-Jp#D zmCta@J6sKs7FYkxH_2;}&2wx@xn5bqa6tk(aPh1OYtLV}*3IeLAs(%rp<5iZb)K5N zZ=UM+nD)4iNp_<D+o3+OCX41mDsR)ahoD3u{(VzNZ*H%t|1TXJFwVRCDew1Nv~}o`~P1PS>4!J3o`P zgf!Og2+PBK`D7TqCrTfAA@W|^FEuHj^VdFESa%v6GDY#@6`CGfN&Pq?h5fu#O=&*! zz_B2+>h#;Fx!gg{a;bO=s+pQayB+A$)_~ZS!rTK}aISTL99k2G-Ry#%KT@yd78+b| zT&ws7X+aK-H5A&+IzkN2{LWrmyZSrnN9OAnrSF3okDwuR0S_@6mPSP8Kb}x;ImjGm zvORcrugk*nab-fjjqSxz<>vUJvwMuNQsxqR>Lj#Vl8$9S|W=<*auG zHj#cA>KPFLBtASo7FIQQ>Ukn-WgwfLKWvbf_ohI=1x7K!IJ@ilp}Ta|`)2on?_G6- zaAccnM~t-oJv1>O++oxgCqAMMF>)+pv}yF>E;r?HxU@QoieG>Vd)I|`_1De2DLg|; zkARUt+dk`(-r;||I@hf>rM6wwoTDvjK5OGL0#7ZmHt^HzBFlyy?$Iu-LD%*)eJL|L&*iGp+0-bd>aA64l>;Y$mcR-e zmt+8rx^&kiFhU`Rf{#__erA_a+Rf2E2_H8$=qcE?;ErRvyjna}p%P@ijlYfbxb61U zyf%4Z*H90X?lrT?j39pPC#DViTBzwrS5}P{WTYknDi!HTcFX4nH^jfMb}1Kqw#b@$*TaUO_=Xqs!MIHs(a6HD1flTKwZh9dh7Zv3EemSxTzfns@=Bey>d4& zfwx6I4G`mP<#@R)xf6>sFniK{V(&%7tv1Hm#DTgP6=;UVRlQh>y6^?~ zMJYOyR10qE#$5mL%;dMn!aS#A_&5}5*@!GD|xSmE3Qc z=;DocHY%r`DJp;9PLFijfUdx{<{c^-weufvi^$An|B&1y=QT69ccq%e83{uON1iVy zdhF{8od-u?-nM(kB)@A6-XSAVW6*3snq&t4mEZ3D64H}AK?25VIL=iM zEk{@jz;O0S#i3rRVJn^O#Y)wH-}a)B&J7TFY~h5IO`fekEJxhvaKP3Xfe!)~x39iW zoGuX6-mrjFd@=ZZa95}Aq~xu@Te3me4Y6CSeJl&u)LnW6Ln6O2XIPFoZ>#U{C|J?;>c?vR&gmh4^v84kCnPr##%aC4tQnBCO4)E0aN|=b-l}~H<+i*ZZ z5>K(O)zaDT-(Ot5 zODByD89Ciuhqx1vE(@3+l`Nz-d*!(|DN5ynXUVtXg3^L0MTQd2)W-W#hI0Jmj>3JO z8F9V6%P*6A^T>>ETRi*z_qal38~v=93r;JAv7Ky^dQZItJjht>`A5yiwCcQySA-#K z_r<^H)9zoXxYt}dK-t%&k#`@KJ`${cG~0fr?PGeuI8&&zw=tktQ{?%Fdo$?|D zrg(pxVx1JVc}c(Ack-WfY1C}xd46V32hem|y5b(P?BaHQY?|-K#yXp%Olm7Xv!%srg+pk^CK!Pp&rsi!v+SSQr9VF=*Um2ddwm~>b8?6=;;#%Dn2Zg*(InAn= zd)#H}_+6^>)lk?w3TqhuZ41FRDkzQpSO@L7uCBxxf0iryY|EGB)z!uJ@lm%q%XGQs z@$GPN|JuxXLuK>b+c$Y8XS#Rys^H)YsokcRGY&T2W@W}d{y5YWpYg$eam)K$W(7k5 z+Rkp0{_~dM^Uu{iA-85O$NT1&&?ON*&OGv7zPEB?L#lbADA!EQ<+$jSl*|Jcxi72E z@=SNOr*0QbWA^kpk2-m(bq0rftD$K+m=;zRQm*Z6-rbU-f0! zlZhOIa08nV%vyz)Js6Z$F}U``cSN4*@vjQTcRfILt#v_Iwn@b-Rayp57iF zS2RBB9mFUG=394NgFaAUdn;<+HTMD%IfA^R;$!2Jnz@Zq( zDI{=ANS4pe=JY3~a_1i(cl`~Q<#r}N{J2`N3#XGEsK({EE)zpSsH6mqn_r8ZYv{9CImw>S(4-Zcz z?CuDV3uWXK5y@{4edHQ0-hq8`1g7q~vv2Ly(%<(=Ni(nT+3_$nHHA%_oZQ@$)}85- zovYefe2nS(rHr@U-C5rWPvAW10pmcdtMsGHw(Y+%^P`wv+-2qqY`n4m^^Mb5(tRS{ z)qe5kP1uogLfj=CZl=QK`bm1232vr!z3q=dI)%#o_;GkIJS1fCc#uw(kxXF$aluVh zPw!b#(IsSKARGa3%t!i-P94K69K#k2yIY6g(4b1OK`%e}^GOuyu9gaHn1EB*B-rWR zC|hKjj;o_7<9lG=qH-$zpwAZno>z4sEgUf9-#%IPc^39V zTi@?B;nD6GJ`S2q&mDqtf84CD#Y|GHztt z=0ht!Nb{YV+>|v}=A_yCy4&wMXp9^!1{(%noK{$$fHSR-4R^5UzVzZ&c}mY>WoK@X z$i6;v1;XJ2V?AUHlB}>s88+d;)-w19*&nZ@6qc0$+oL(*q$FfBPAb-?_g&9S5<3hX z`RRX!m#^>0o*i)x+jeR9(qr^quPj}Iw#Yp-if^CjQ6{~Umh|zHu`DUa=_y$sgcWq= zjgz$MOrMVIq`Z?f6}-h!hLd(GA}!nBLOH*@Q*C{;#kr@{nOHsW2z&NakcklYsZ$P@ zC>&3n`rrAF5^`IQk2>q}*Iona2thKR^GxM>*^y5wW9>dVh{;pu(G)b6>^Y zt|x^Z4x`Kv>jh9zeFnzw2Cyxg2 z^FMs!%+UiBeuu9aSy)h38o|CD*3r>Xrp?06Er+hgI!#-fj*bpa1}aS2$FOJ5VtJD! zJy+9>uBoT(B5&}+wy=2BuEL>md$zCe(&fvQg@Zo2OWs9x404qtBc~uv|F1T#1sckA z4OiOjX(vV!-6+*2oEf(;<&tYVGGUvh$&5?x3}d^??F>=0BW#VkB4LP7G-M`}3FA^i zV`xOCTn1wrw;7zz+2@>n&RXYR|N7Sd{cHXI_kHj8yzl$`YyIzYKvvdj2{k8>G!kuV zQ-`L~De_^N`FVM-fIL>FWy=IFOO;@*C?zf-VFDqxv>2NyN)d(%{EU9oN?+9a3eQzPcH>B@f{_k7q~g>req>pCc7#rDGnCQW)8q4L zNk~o~!->vr?ra;g!8KONsuh>doCRww?eEjx8yOi1T2Sq80x2W=#JtiGk6%Z**YdP= zb#K+z>wFj*GPT_g{J4(6;rt91!r^#yv*0`9SDUpF2uwh)2$Z`*O&(Av2Z2_Ho`J!e zRHKczR?!V_-Qyz4hl1-YEG!uC`=AyyuIs6om>49%gd>iF5PN!%FC&*F5?#gs%CEtP+g`nXy%VU>@#6?} zpzZa-#T3(iF>lFJ%AdZMk6-kRU0v?!8r3WpY>b5X`T2bu9Zi7lXliQm^7Yk< zz5mO}2g=D2^H>Ox%k|s2V|y7nnFMz#s;Wv^N15017CGIAy>fP0_d_Lab#qNkO*sa9 z0(Es)TU*)&*89`BXwPc}TbR2ZY zJFoqQg_59#Fjd~56#$`ox%+f7Ez=S2<3k?vw6d~V5Uzu&!f$hP?Q3f{I@a7L@6e>! zeSJ23*WYBBTsZUU`;epH0Aqmmwngz7wysj$xj8qtuVxiW$g0Efi0my1ui3e|@$cXF zg9*9UB^pGp?Jq7aUI7wo8fVWYd-fI>Lx_(b|9o=aZa$MiBocGxbNjFET>)m(*3mg2 z!aF-}>u}qb=;G|{-NCRq_3Opev^1$pmo9w}$&HwY3axbRA3A)v`)i?VjU2e}r4qu7 zOD2#Op~%Yi37<2&IpE>Z(NPgoy>1lhUcAw9=kyB@oDYsOpYjWQLz;!Z?^Ak`#XD{-r5>B$)>r;UBzO}E?l@^F6ip? z)I8{w4)aS>>=tYX^R1kqS>Q5NPN=j+$*9}MIe6*J$yLBP(*9XXfY~H1X^IG#VF?Vl`bX@oKtte`ApKSa5 zG+X=xT8C60=?MXrayh~bK zxUlB{n*syYBa^Q^rv19VWQDxxw4)`RcNmibW>=fTV(<8bmy~XiOv;5$PJ~p1~E2ZtN=x zPNj$dZPs(4(ta26i57_eNRB6;gtw#kd^MWqkMan zgbS(i+3aWCwBG4JO5gkUaY;$LyC$!cFB(2o$q;S|m*>Hs+#vp|s;b_fR5`u*M%HNz z1oOHm_%8m8O9McVx3~9hE|&}Z3$z?EJ{S>7&#$Ce=1a?%6NhHZV`Gh$mX@lb75oQ+ zIQq6wDJkZ^;z5H-mb8>qTJ&E*A}pn!z(h2!+i%@F8Io^YlCzzhzT8;8q^+%;g`gxr zSH4eWaIwpi!yu79E-fYCo!r>d^|`LtD}(+iYkA{GrfRX@LRqe1xSueqmVtGovju33 zG_fV`_9Hn4cV-Iw$U1x|CpY)q$jI+(Ad=Y17oz=giRHlhf6RW#$i4XC&lISY0g_Tsd%BS{h4FjO zbO=n=oVT`@#bSX33Orfv@ZqKf>KpDK&%ajFHZ%*RmxSv-Xti64G5h+Ut)JDeIXJun zhM$`97MGMHRXPoB*wHJNjjkZ3pLBKxJ|cC#2xab6&#bgMuIdC6%bSh9Gi3Hc97OAM6Ufy;vLCIXuA& z|H)&P)L~vda~ALm4-XG@EiExpm%E2o#sJ(mmNFqNaf>%Spvn*V&4A*Zjx2rXeFy;a zf%hTJY)0mq6C@JR?k=#;`RDA?vEMT5={;MsBV_|ox1@lBTZlY$ZnshR!Yl0MbBFFa zDsMS6U_o)HL3`92K-kRZRUJ}|Z7YWeAh-XZ^&Y!w$9?8=nLvOC;~KCKvYmoa%*`U@ z6@IT#4V5ZkZo9ynpr;GEhMlUMkVs@7&^ZkCfW3}gE;oI64`E8P++=lYIAVL<13x$n zpkT5$O1L#mu!PDe%F@-Nmn;5luw+kDO2)ffT>@B&wza9=5o$ncBb6!-(k7qJ_rL+( z#$h}g5q1u`z8%$qJJMW&f~1M(w*g8AccQAXkeJAg4I$zC@^agZ!0|<)<5Xq>psqm2 zK`wE7oB9|p{9d<*)gZ88c}&N8?2Q|Zvj#!OH=58@TjW8cxn3ZQE!nc&$8K9VD+~h* z#u!X4sXF=Nk}a2KzI=Iv_g@-cmTA3VeY49M&}#bApz?xmhAvx|pkLem-|PT{hA-+A zdfx5Zfq+bqFAaqpk(VD|Sa?b%VunJ#HKv#;6652=yeYwF?`CGofQ0<0f2vmSq_Q## zQTC)>>RmTr?qp5eP)%K3e13j@4x?5pTl{)WmbON_Lac}gA|5z_-fpd+q~BW&4kwLT znCaeX$t&v&#?hyzRj#1X-OdFHANUQYGA_Qpu5mKsVvqyx$88mXC6D^O&5CWk=ccZz zB?<%~ZgrT~6TDghpcOLuN@}dX-g7};9-Q#Q3@~&`YO2(oH!zX@=5rK673AZqj*c+O z15>pFraHM#l(S|UQ@pgV*%S`wC^ljM#!wzIF91sbkEM0ES?*dH-y{h!)b;gfJRbiC z1Apq~de^SL7hWg3iJaTF+SzH@B0E-T zXa)>7Iq9yo{9hF$hYA&9Y=u!MO3{k!TlTEk4N1sO3S&(wiY&>#Wlshn#=d6k z#=bNEbF1h1z0dQ$zu)Ko`Aiv%`@XO1I_G=7=X=g|`Q1{Ir#ZlMfQ*cc=9+@s9Wt_A z3-FI=KLz|`uUzRaGO`n7*W@nWbBdiRadu)JDG)`E%4?u`p52n+72b1Tnzx*PZ;`Fy#BH{U@;(cHSLU60+k&-f_hm66BC~SHlau$CiN6UD_6!rvh9nlh0UrDeo&M;{c>N3qyzd*;0;y$2s@%$mb z?QmS|7|kb@vrJ4(x3si^N=wl{fBwu5Mva4%Ry_%5SVY_PoV?1Zh z$hf*nq^X=$ikI~J{{8wntwQ0q_MuohuR68fkZ(A@_>^W7-7K|Y|5I?+cXxQ#*VlW{ z+uIw&q}<$yjeh;C6BjNp!j&_-GiX-m=stv&HRUQ_=xL z(%jp!91EP7v|?P-PUYbq}^FmQtffWMUKQ8|6^zKNwn})z%B_-7>*A*2LZ}H@l@ab9sEiHG-=Uv}$W3FGne(TmP zvJ!3DI3?fBO}8|ivc64XDD;$&JoA=#mKBlI)%EH%5j$a(Q)UKz{-ytIg(FmZEa0# zHj!*EcRW8*&px&=io<#Z2OpdvH8v_G;3UBuVniQ3z5ed0QgY?juTNTs?M54~sH!ro zcvx8p^tlpC1Vzkp)Fan4G&BlUJw12fqD814J$m$XWJOMS9TzXf92XbYLtOY)Tl9!F#Dc-uKrp!vuair5MqM)cW+&K`7nD0T>A-2ft?+p0oYHDjkKKK$(NITAG3JVLr zE-htSAT-#y+<3m}w)i&W-WhwBp5D5MkHx6 z-zf>Y^;_wz&<0cw-7~&>mo9=|%m3}$lX*n0P&_w^OD}6;p#jwaoUpj83*Lisi>>it0%7nbf<9F_< zs#aQv!pnfzR}v-RnBKZUg0*dKYulUJ=D)t~@@sU|^}a-XLA)s@xM7t@dF5>0O)kP+^CFk#DPILNzVdWO0Ny*9k&Z?wYW1D)nkBw~) zU-MAjkk5p$5WA>R>Q>MiOBFE#6Oj*I#$T2yxbWqR@V)!@%gu7$6csUhdwcVXEUo+n zI+GITaw`UX$_`THm^G{%E_4|sQ6%-V{ZV<~txa5PK(rkob`DzwZp5chW@r!~n4Xc|AO$D{m zq|F7v>~X2)*5hY&wh08IbDH^w06D=+tHZeDH3`FD1f3p|<3v+1f>TE*OE>2gPjYi} zfinQ^+FWRE>s{%lV>Qm^=H?E;HfU>T1mJKt07TvIXk*&jcCAOF|}2+$pV zMreTtEOVdiMJh4PpW~0wI;VqAy+AkDS$mXKZmnnCcy)d6CzSvQC><7}COPWKBbmV` zQ6bjqpH$90_`GM|L6-fleC4k-`Q_#1_d(E`T^mgZdC+xi@+9U>%;2`W@5Yir-05&i zFs+pI^sDyvA`_F7z1mt_a1DS9xW-8{0Z&$OYcf+)Q}B;+;{*&vc-_(E=qkAu?n1^H zqGP^Jf_Q|mkB{hA(pMtop*ji(^YJ)YR0v zy1HZ+;||)}+w&XL;aEG8q{;6uIHyE6C24q^o?62NWDOMMnumy!{ENQuS z^)do>u5`_-ob1*0>fT*S@9vcAp3e^qQa}j^2*_W(O7Zp%FFl`nRd1?Faw~_J7=xdm z-?xSaZ|#iH-kEQr(+?WIJ;-&S@!l#y7*W`m-(gb%c)=xe^RwsZslM0OhebqC6k&d$ z+YWf|zM6Cx{=ahNN^!SVR(5TP=f--#_4Wy~gdt1=`}o{j+Hu+SP;~RhkVAnVD6Ju& zMxikmEkv1HT3R4n>gI(k);tJz%MT6xdt1)t3%G z6+{_Xo)cStX@|;NG^jwy`e5>A4$b1pNyO z0TE6uzU*&l|J>sFv-k^JX6j^b<1ct#I&o;z`-joYqjT5-S|k1lRGEn%H)i$n`mERD z;J)$75QTAUICeuJyOTQTs#n*rOEPV+y4inv5|c+W-I*n zZ3+ZVqE^cPJSsW1KtVxj;YW4&&M5!fVhNWN`xC`|X#bw4WhYP!l>c>^*YVCTUl?WI zRpiV0d52ly>@N$49Q6iQFO-lS?b~?gv7u{!%^O@%c1mgiXtJ<~NMd^WK?vxX>Ypm2 z3gkFFdo6vd^~;B<1HypWnR&W1UcK>F&<>{X#41&yR2_gSa29X}6Eiaz9i4>pM((o% zmk}hW4Q7>9QBmn=5PSJQ=7%wBvu-T46`?KpC8(Q1^ zPH)3q2*_g1G7Qf1XEaCxJq6T=lJ-EGnVak7d30-pP`IFW1-~n*mCs8)d&bRwMa1K6 zZ8&$xi$6xpkiCEZ7$h{0FS6R&*@Z<#JqPXx=un1> z1*_P<2mQPc*JdUnghCx=XD1qd92B*$CEdMy7odh5qTj@X+1vN;D=hP5`6Fc$Z+$fp zmPx$zIwj?s0E(d=tMjGmKbKh^w~RxfP`6c8M-5-=qZWVy{%mVQLRoGuJr(`AC%u;P z>gr66+^oPqAw!y8BBiO%G%Dm`agzcK!5>x}sj9@?0q)WD#t& z>=b5I}&nwpyAuUy%C@(3l)2&Iyt9aK>va~rz`+~~HJ z77dL5)ch677&zXH_{NE8^wlU0rNdwweER?KajKf~PS- zL_`E)foCsT$f)!`J$mCIL7y?)@1K6UKLTC8T=Jwr^Ty-Yh8gkHt#4smKtlKdU8nr=C%5otT)|jamS*t9C9TGsZIWn$#Z$;{)9iZ^yIFE7^@rtea4J51d;6~96GhWz$ z5uAYfKm4EThzsFzf$5F3(7#+xCZ@nZV%@47CmGG3-D(GRjC# z_h~i(#&|67D%XwEbl{V9xDt-P=JMGhB)X!IcfSVGb^YBDSi!OJ@wr}{JgLVtP5FsI zQ)%(upa*lm;qtG!*2DEMtP98V#ykpBn!wWS-?O`1XaBf-dQB}k8;Tpn(DYvpa&i%8 zD(V{gm+$R=MCh~NLOGsjFbWCoeA|3f8RFbqWy5iQ-r$|nX5@}FqJ?dieN(nY zMeTRg#{Qq-_eoBnda)7z)nL&DEXw!|7?eutF+lmK3wEcc9Dc71hw!16VQLEUpJpOv zW@fhl-E!1}!nu_xj0pP0VjE+4odVlaA3uH+M;YJL;Ey!uEwn$6y}`rF>#51VQje<^ zI!(t12KCSQy_o+$sFo+TfUCg>m21)Yw71C7x1mZa?jGclx^*v30gb){+{qEE1*D0a zdmo58petw!^s4?fNrxX2(h`CH`c~t-uKl-nCmI8Vd41;tA`}5Mg9ja_rWnK(LsE+5 zldP`6!Y+0as=q_`2YdY0s%cGD0aN7|Q5r@@Msb%#la8BeCU=@7AOCYKlu~xi&?ykFBmZD>+JL^E|$cB=^(iNZT@aA@^} z3#zHH@v5mQFBlKJ5W9+tV|7@ddG~+uX*UXD9+vy$$*&focBGgar@t9~&Wy>p^|o{B z=N*I?P_+2yix!=bTKN1~2xt<#EIL1XyAaqe8P_0`>Oc6*7(b)gN20|3ZutgKzR6;SmhC<%G z7G77P81ZS)iy3zpn1?+W>-@4es3AiH*Yxq4zc^kZ3GwSQj!{a%yKw^n~aQ%D22Rx_wI6X zYq=%+_`BqH@75qZ{WpyS_NAf03~rOAlG+`WBDC=0#gR140$ZE`@C(rxnzgmH%ub6? z5Hf6+%yZ5kJ^EVf(E!@;j|nd2mY8IH1<}deKIa6RagKWPj~|dy?1gCJ<3j-vWK3)U zQ5@(NQ;hi=|1nJv7-d{EA3fp&yAnKqe!y_%wiRK9Exdk2Ezgn_FdXEp6Or{>LVwxY z+u94;cX$;YBfGd-a3v2o#au*P|0c@$+Jzbam$j_L?a9~ucPJ6ElWx#FXYAg5MENh4 zi~w#}3jq5{*kdb)-vcB!^|G;YC~qhRKvRSEZv_wODmuQWt*Fdeb65MrnOn&<iC}6`bUUS&p8VUg9;Wg^nj{ zZx{n#crLvW>3IhfoSlPkLEta8lWnZi_p~N$^{^5~>0rX1Btu;m(f=5jyznIIu`|!W z1pz?`BmUDD8&e#6w6(Q^0|TicpFOAk<$27*jMnkcn3#a7Dmj1qFR?0k(J#$OaB}$O zzNZ2nq<8LcQ}RfP&2(QE0w-sGRng3h<&6Y1E1(D5=EwMBC@Z*(r`16o+q_>e1RgYQ zRHB@R(WGg^f$X`_Y+T3T{W6{()D0RuhvXQkB!F?Z&U&`W38_-E`FYGCG$0zBpw~44XyILTWmD@ZF{TrP@QbUXpB3>w1(cHt7vK)GD5wcs>N0^g{5g_ggG z_451!_)a#`U{d1Jem>2c+6%{EQNVy;$&Y3V=^f&i4m^YE&$CKstrCl{EntC|-~|Hu zwQH2WYzuS%#{?NUhC8#8w-vWIGPq;cetP= z)7CS^EG}Z!zVxqkUJw8iD4V2=KpPU!(W@qf-Ik&;iC{0`;pEsGK9FamN6w^T<+(bt zxa+Sd<||V22Gg>Ft>5yW&YK)idy~PSvVjx@l^aafQtx1Ctlf7Wvr6vcj zyC)7;cP$)MELK~Z%Ox+5EZcIEfX@amu)5>v?n>F!)^{{p*SBA4(6rDsX4fgUZ6>n# z=v7A5-_LsT5p^G?&8+b!z((`e$IU0ZY!n2!=!va|_OJVF)bwQ5seXwy-vtlpl79c| z_h+6w4U*uGpx_JY5yG6TmUGiZtEPi0*UpY^HR`l#qx8+DMRwu2L@}#Fj-o{HzghbQ zJcnzUK7RDq>^1nPEYaF($0BUnKCkR2PEDM|6bBMnXRh@0iN~^_#~ru*+Yi9%`l{3V zU1x9Zi`n|>N$x}}SvdsxwXNhuCK~h$7s6E9k4r}E=1u1E?wJE_kxyRvvG3bQ3sWZU zwr-uTc$lW6XlO}ujM9E%vCYOrbSedm#ya;hjOKEFas8y=0zj}% zL#))sJbgJ^w%G*B18w_>7T&T2$5{692VWAbX!F^!#w!`hJglW*UcJ2bdHr64N;bpZ zxQ^;Vbozjk%*}Nt2IBNDkX!^Pq>dj>RA2z(t`$ppKG-72Tu zr!M5|3w%+&UA{HQe??fA_Vc6Bt_rQ|RZp~xj+w8R?%y-@E2nWG&V4lH0!m0Sh2_ox zHSBo+^x6YlAB@vyZY?yTmrr{Pch-dUFQHQ@|2$oNDHU8a{;umE3;D07>vv1_Wrp6#f?a?iPFy=$7b%xkuRSKI$q0B z?Y}dNKVsXS+!ivqi2vmnY^CHuezorP{Ec@{UQv=a$2c1sbI;GupEszXMo2A0^RcNZ z>Y}v+)e5l<+IVf>{1TfVIzKkzJUr^ZbD(1ylK1VZJ~~o&f}j~&N^V2nnXD* ztyu2Ke#|V^$(kJgDAn$6@ymVhbgcrrz;K&!+w*Q_U!QCm_tE~oFRU=+U;-;djW5}q ztk}4?AgIF2&{b7e)oa-BNdno`7+z!4$7a>A26Gb&ggJ7`&FxchT`nAvo}sWt1l`RU4Sxb zRD;osM|j;H><#)IQjUZk&JF{W`;YFUZ=SSyl~CgRy}4DMJYC*meYV;v^ATB+Vdgsz z#ar`KhuO_A9U47_5(vgaImXm{NEys0n>pmQ+mF6P>KxEbwo<^W?>V7o2 z*S>%F!7;C6yL4!JE@mEsWsY1H*qe6acqrBv8zvsJb!l=J0z6rX24DzX;`8r#9-X84 z?Fu?6{0Q(o*fRbNJU_-|5t}JVUiKN;@`q>Ua}AlDZ?|o!tzX3?FLQvkecxBV)tF&& z3#?l$pci7Tf6)^wKD@E8Y99(fNscxY16*p)*w2~k$%1Y zT`;BHUvr;K9*#k~&9TRz;p(#=)>>cxV&FvoT+gh>ICMAyEBG;|f1J)J@sMtKuc={)-f!RhrKZ;5$ORYF zCb8LNb*$ey!Yke%nr5^-pEdAnH-tp?Wz2DaWG}ug4U_4T5M6GX8L1qxo_BK89d+i+ z7R;NCSruP)12gV9$MBm4Eq37;_%)vo4Gm>7izi^~M{LtH@(w~l?$oJMz)g$0F(P(Z zfpwWYZ7&Ps{AM1xJ8=4?o>Fg?d@t62o*h>7O?becaFYGOgAQifLw%bOmbBK_j-*!} zf6L<`$scgbJ;0;=Rj_J(@l7KIZWH}?|ky_ z!V9@X4db^Pi%on90n5~4QQyWIzB-0r7^sx^_k(AZU+n(YRN-#4c5Y{w*SuyT77o|Q zJTDS(H)LTvvficCU9{y&3LVTrb330G+ z7|+ofiVOg3G9jlu$DqBB3ac~bB)BNq`A~(#w8}6({7_QDxuN&i39I?h#SsJ$j5G<3 zQi9zm$2Mj*3|8XBc*C@2b-U$w|5FHQYE~LV$9Uy?34!OD@9@!XY*0Rw$Z%k@ywm?| zuRWFA?U3VL0%aZN*Mvg%(qs4{YzCAO_D0duNe@gjvHs?bP!pl;(pi$ z6(COa?Xl3N+yWi$XA?C{|1ODN^I>yIJE4Pkn7>9M%5Mi1bF%bc4Aq!`-;f;e zEbJ$WWV|JfiO&3W#v@*k7J{sUj>Ffb=Qr6)SI4>E503^(%fH~~{qwX5(bBA~-G_w` zY#Vd_T%XpihDRJEyEbF&0N6Y1B+P8hKRxe=<_P=dGXeq)O3VMZ}9 z`+us|)=D2Dmk6t}@l!cB&>Qb)qtl8B9XH$wdjcN*S$SM4nTitR1sCbfbwe(A_Fx1{ z#8^qAtE6(bO1E8S=_nxj!DXS$a)Hq)ZATxwQ;{m;XcxJg_{A1XP-Ad zZ#AOw9QfT+wmCjee6HAbXX$<()esNu5B~lKpgIlgB~8182|6T@w3-p}>SG^|p>L|$ zzLKsF^-c}Z3c65YxBEADDf@^yrkpF~=drlS^=APKYBbMZulbP2Wr(C7KNijjGuWyE zLn96Ws>k~*ug*99X!u&?;}`WVVPwa9@RLhwpb@_a4-b3s;;FLq)=_Tdc;JUVEx2l* zkeloaN^0{I3)Bnel|&lH6%SK66-++dd^arMl(Z3K9m&b$)*)v5%E*B@g;?Wi)g~p; z7G0r+L*Xj#*QU!vaMTl7D7lYV=MgO5j@?Cw8dT;CyumJ;q~nRL&rYeXjV?Bp?^)XO zcH-_IPFB{j#JSzRCRY3&!}n)g?11O0>_tqb>t7%YU(}|SQg(VQtIhPB zdE89tnEAFT_j^6tVME-HhS{Qc5KDI0d80PHy_jAdGp?nnB4pBI>Wkc2`tvzH=%t0b}z7mL02MYCV3 z@Z0m-NdHR?fo8gczvm8E8|MlDhij2!<^An@m@_jiJtOmqha04PjV0o%V|uNI-la$W zLGf_YZ&eKwF<~i+)H`|Oj|IcX2YfRcH`bjP6Fw?e^DX6x_hOpyn^yK^-ty{f9g;(aodirzP#o|+hvq!mXL^t+vOMewu-rmhv!stGVy(_VA zMYzukD}t)rc9-cawOOPo?q1;UL$BxZOdOV#z@KL*<0J9CPl)38ci~KYNIV?>2}gfL zD(uJU@fWj2^Zgw66DAzvt0v?&-!F+Nd{Cl90FetA85BNnM%m$Ob%?T^`6Cd-)m$NF zSg)>OMt&W4tdh@0%uKC>6midQ-s31ohB(fF{mh~onj{Z`+j`vGV2ZbJJpvQ)+kTXobkzcIbl5dipHS7*|y1(%e zNz6m?(7}7T83sb8J&>4EPTfnrGgrG_d<|Lbd))K3l=pS2L6%QmVSj}IU&!Sat~rU? zpN$_70Jxogl>^1_Z+8Qf+ql={C z2j@pTk~U~|0Hk1Ydm2bV z$z2ID+T*0vxKV7dac1$N{pP0yD?JbC;OW2FWwkj0i^ZCNj_u*$(Q&hzb+j=q0P0|B zpH!e{4r!Bia9v!+wVJoiU0NX5R)%0eIyQY4S%@3cu}s!d`mMeK+n$7dnJvXfNX_%? zm+J)N+)|dD^G3BKTj!_&OY;!aM8|H>1~3*f<|ogwC6Blbrqv$S|51B?vtA2Gf3WeK z<8=R4BkA78T?O&5C#0!O=vz@Xguaqs2a)vV$+LDK8A9?Kmoo;&oo>d$H@WWcOTJzw>){)G>BO=_9>1XE|pY zlp;IJw!Ri$$!rQtR=ru9+ND|&UrabdV(%tB2dc|vg^?U^sd`VVvk5^xaK7Aj^TtB< zUn}`zZ8tzGfXFErJ;J^hkd@OI?Vr7aS40*Q8MZKnX}f3JxNJfC=jI{E1P1V*%9e}R zCa@sgXKCbGl+W}Q{jUCI4VD#cGb3SVPO;p#KW~c-n50wMh~SQG-y?CcNMVjTn$94? zL-|5n6IY3t6k*x>($_w3TrWb2VElUsOauyH<Kio_x3t#{V1NMfJLE(5nLGuyuZhqzNtP~JMoEBHb0&Yu_(KkY=n zK(jDsU0(^l|G4# zdMxQhtK@#jZbRloRM&-L#N}eeveHpOxs?nt0`|- zeo6Ykb$5;-*-uS(rzV z8_z#QkCC$?G&h3$xjnipZ4hRA*u8h%oMi0H7VR(6E+QzFx{-u7R$AUEu z3&u$8_$ofQ*ava|XN=+<)irht_e0DZVnhARB&k34+g6)?6$&tx_j;d~4x)RSt@m{m zbycc_oPDOAfY_RCcF#!Z3Ax{--VNxJ;i8c^-zb%_RPZ4$bovm{s*pWF1MPT0xwd;V zoawY4@k7a~^KjGF4oQ>`X1NRv8qnHKpRL$h-#{dGjQjvxv4OnVO> zqW&SQ9co*FcY|d8(R)F)ST45O=Vel9rS9RSZ*GH|rt(Da1JOS6>eu!g9L68@g^Yby zkYm4!2lK&$Y*or4(#JsOfJTV~=u|n#dhz6hYxchG-$Ld{rGPef2@2eCUSot7?tLk+~>Z&Uf5z)RZM~$4qNfGNBx9r~^a1`ws z-^qKFVRufoK4np-Pb(xkwHoZcJ?G>#@5c6DaPM2Sn_}-_M`afZXcau0`#6_!Jnbu# zQlNGx*}o>)H|0+EVf`K?qtV&X){%_#l3nvWxrDEo^Zi?JN80uD|;AN>@wZ6f_%Rb$E(*oHe(={vLZ{X?!L3AZpVpk5;!-o%HTaBJr zkM55cO6zmIQs_b{t=of0pODTfVQ<<;9q$CO?H=N$N7^da!31<5@5tSqY%t$nHTSHI z`PL^W$mTyDIWn|dlUSwll=db2z_^z(7v!Fz%U0A6r1V=xRU67Gt~OlVOxc##bA}2~ z?fs1*F#-K|&Zpuf7Fj@?*wl(Hy7iHF$*E_ko;0>C-|UooxQv%{^V{NuK6e({X^;KG z_lKK1+s1|XIZuCW2GzyaSA(s_rF;EJO_2MWHA=IlpF>7VP*f3pI(W7+>gRb%*~qQd z#i3ULyQKP$y_CJ4e1QTM-ScjwQeuZX_0_t8=wZBWsa~m0fo}%&aIlYr_4xNwiQj2> z0e23$Dos;Fvm2AP_wxElN+#Z32VhIzTGM{A?w*o z`5EKro;w~?ft6SDZ2q$Xjg$eJSX~Z2B!9T-N8olJEh`yxNNM_LlQdEDWRj7!-yxj_ z)HSF8@efOl+YMDvCXen@rzNvs?+6~f7|)zt;+BcX0kblrR8AizPnFGQ6Y=LQW((QS z&s=Z|kvGe#%FDf0J=gdBM&X)g>}Kx!55!cMUeFPrw0U-X(dL+k#?~XKhGo_c)9Y-T z2kVgc?qxll!o8{$lCf@K+Vd2sKn3RJO5(OfNw>I=-7aYF&w@=9uvvf$jgBv}h1T$Y zm%;Tb;ScnZF~*mMujaM&`$X9BK_*-K$iVeyrK*n>dbDT6t~eySNr0J$Jjw8U)A^=U zbsv~#iZ+`3%l72(HVMi_%1y?RQ3a_~Wd7%_gf1%7Sm5LFAQpG%c0Z{L3NLXfY3_K~ zzZb;ni5tf<(E3+2@3Nd}x_5D!YL9zQ|6^& ziRT**Cue7eqM)G2pN4Ajf40;kRI@QK;ld(PweZ!Lv|5rNL6UsQRXe~uM5i8x9tHIt z{)L~hA8ZO<1~5ynd(^CcT)uz9GIq+Lv(W_8)tEDA+0dJxG7#+F-ardkx~dj2H{QSe0HP(vTY4~oYS(~eGHEpX%EJgMN^wi= zT+|CkNm|o&;o`oni|y+8Ld-#I0a+}{_#m`^)>>r+Zv<0PbgFTx~&{?Uork=`9h@#}G|bP`hiO;uRG*tskniH`&4K zwov}es{OZ_`WmM;r=Hh^yO1ipOCPd`9~6^k$(LyJNsgV4gX7D|b8_8uJnZM>fvwDO z56x{2_t%csCj(D;ad$Fm608t0Hw4g&l&2lmI%qyJ&qB^|+mLtudJONUyPeuJsL#$G#0d0|^X*!}$)qp-0^{(48-Ab&M?CU*kw`peL= zW#AYClXrEBc2am?DQ`wJ16rL{yw5U#aCPvmdh!6(Btx;HoPcJ*6C&FNzYjm{VAn7{ zcuo6rtuK5YDg^*vLEC?_Tu_)+*Xl88&bnqavf;>O`3_Gh#Te8S#_BMpI}ig}r~F@$tdXX>D25U?l7Aj)turZ|{spjV}M) zPuAFRHLt57M$6I>uYQ0E1FiFqCd1x83601vy|Qdm1@v=YN}#+3oN`gXF1 zCn1euqBmg}lG53}b!pvVGs)7<9NgKhvX1B{lfgQ*CA6Zn8cmzZq>2(WnW3c<1wz&w z+tFlK>#Wx^o9g*pc5Uoiktms&eWh1ivg{sP`_{QO8u>p=Bn0pGc4aXu#ud5ZLgsZI{&N z_Y;^2!zD`|Q2f1B)MvlN=Xx}%N1Ty-WCNMV;ZmIi>8<*xVe*Y)89R=7MV(3zrqep3 zp92&&FVF4ku`#$ld34im@-ff=_*+dWvi#xZ?@j#`>XYggU7}PTmL$~5MJPepN^J$u zQ&I2To2jB2j@?)B->tmMW7Aj?i2D$TwwQ*64>AMKfU9~%Qh?_i0qLl`W;+Pfb0n@n z3TRU@3)WdMivF=l7C-LfQ>0k}H3dAK@k{C%aB`sJl}jeO1|a*+uX`w9U-Aq-J?A#M zz?1dLnpFQ-=xEe|e8oZJ7dN+J@<)Y0F1E+rH{q}9ma^gk*aOyNv(^C;6gSQl)6}K_Itj6?L$I#Eih-VYpoG~xTQ1pOK)Qm7Vrt5 zMoWdKl*FORhNM%EH(HS}k4uS1w5FO*OL?~SInaP}UR#9Cn;?UT1uMls9p#}(MzU{R z9BMCMEi)GR;mqdoR#8oS8_`x#A%t75&E(7 zeq@fPN-aP~<)_u4jqxbeL&Kw4dreSSw)BI{SU+BgChFWIF`+zO1HQMK3oEJKvnCK4 z3=1#SN^*jM9Lto=( zX|;5xMQ%K`Rq%^x6N47Z$T=jgM+DF(&si?JRt1|%!}#fW847TfHM_sAgm@$rJu6ix zFu~1vRu|NdS|?3hy>UzV2_emAGBE@#3bU2pYO|NjQF47UvFy#Zh17CvS0$gpLmgxA zE6W7fu>V9#N=ogsAteH&VPWN3MtBfg>*_pjoJRJE;T2&US+!61gq19QjlZl$yp#0> zv>8FaQ z)7z>rEsomjTGJ4}qz$?&ko?Uk{38i`%}9L5`NM@&7iS8RTt|bAf6xj`KZ!<(#9k%c>I|l$#4r;2LISJ1WaGBQp5ig^c;5$ob3p`wk)^cMfE>^G z_0;97b}GZIpNzK3!K8+u0qbSQ_1QRs{_>j>G2#?RANp!cF<@8{e#_Hpy92y?btgOVd2GkZKSkAu!?x|U98y29WRTiy*CPbM(b=i&N zy>^jJHj$r1j73sRK3Tiq7%(i&K*z;CTK<~PT)Ou~#X6&DLjSlZRDQ+JJCPyQ?_ch3 zW!`FbTTrdML|OOOkvT-91D5S_q@df+7IOf>(PcEo7O4!Ss7E^L44EhYgk7P3- zZ4K$zHxYtuc8k@W{$IkwC06;gked$z5rQ!uw{x@J2a}_%gL1}YU4}Reu_bOoFGN0M z%3}}YhC@C)tUAV|0rwqupoH={8uCYQIk%M#N6btXp9sJA4Q{*j#HR>5ffc?jC@v%z zu(bh11-NR+tkLWCcP2ec4Zb=Di#n$$cMVJCCS-nfY%(TFu9NaAhcDL(fQlR!T7 ztEO%h^6>&~GS{!WN~f2oJi+qGCat z^hkoL1g&C_;@(ft{PkR98#rs$1C&tq3dj;kZkas~-KO#0PH#3T4OboxGq`$`2en#F z_3ytn@-4{fMQZqM6aJ%bx1nl$srAF$nZ7xD^0wp-^*|6}clUWfuhJZdpt9?0=t9!% zMVggCPYmsIOAo5rmDH^4!yr8PwWqfW&c%qt%&mvv3rJR0`K%sNi>f;kz0D%~?L=j{ zo}VJ7SXf8 z^5|&!s#^vGe1w5R+W$H$`}XXnXO-{p#uBiU{0Erq`ZmUFb7MR1taBY}jOj}GocGy< z?81IDtjk43^fR zNwdw3ZGvDo)|_yeM22-%!^K(=(zq|8YkT{*f7#|>K$auxZ~VG=S_eWKAnLK^vLe=T zU61=p-{NnB{Xi}&ZIocMiR*N|S=3EivbOh(W5#5|N_FqBn=DP~Q%pi|>V6jU#drKx zeRQde8-;!Dc_mT~;`}t!C-V&4IqV8AmIC*09GO%2*7N{pEo>JNoohFSiaU*>J>AfL z`SCJ!qLwSu(oG|l*1+Q~m~iJC8m^i|*k6~M^QQUt)&|L)jrMPqg~yXxj^FM#^m$)> z-H6T7VVSxBb0evF^=17R^T@w9)*^fB6HMBC`LlhoZbr~Zj`{u&_QLb_;WxwBc6Kt- zj?;Zw|FI|ke0UQM^RP^Xd3lA)=*90H&!OmwP@LP*hW7GI{H2pM7f&6z)?t3)D!+jZ zi37!5_*RaSu~K*BU%MOj!-+p)A+P}+wlN-|qYI0Pp@M@qisFvDo#y7282^Ny42zAO zTG&49-xRmZJ|}o|Ls^*30}ePUre0>88Qc8F5d;POZyn_e{<&YOZ@Ov#B_Y8KJ5rGo z9TXKS=Z0&MZEHW=52yWg&5)ve1@tx?pX7YO#n^Gh0~&`{V&7h ztUrd+1@f}sDm}#3$;TIG>PIal1Xnkwz&amwi-JsLfSi;Bry8kzQm-yb5Ec_ND1W*a zIccNNeo~SxaBHo{l;lV4qfZ*_=2pAfHRp?q{ibNuAPJ8LM|{AZcjTNWBct~^YY&*H zDPZr%{sZ1mSJwVjw=M4WD<92$)SU?@k{qR{*B|-*O0C#QFxRTTu_ysKqGMxu8Vb|Z zP`{C43-n%xn;vGD%_3z6z8|KAtbsXhlYo@zFXyWH~)Rs!7g%g z^5Q0jR;-}SGuWpC_2k;dIEgH~Q6=bgO8Wfyg`;#B^ed`=f-V3!p5^j5wso71k-B=j zQYboD8ji@)4({u0ZE3lsp+OZ;{WPO&JKA-#l2%&o;loqs=oK%mtxR{1wpG#ndmF?B zqJ#cyXLIu|Ke?x{mFy=TFAIkjB_(+|N;{LbRtn$&m86;g$EkN@B@1w&6EB@;= zkp0~M^9(ZmKvajc9h@=cr7UFk=Jl6Oi;gd*bVg0_L9p+~qC1ywN~9Wmiqc`KV;3|V z2$XHUz-jEUFgN#-I`)D!@XB@!+0Zm(9xCM&?eTe(97jEA&GBmUicD9UX(5(*rx^KYaMWBOs96B&SOt5cHv54xJ$* zxqNDwWUyx!tOPnGDxdD9(giDPX@NKN$YD3kq87&&*1R`LrU=Ks-JXUYD;k0%vP69H64o%j>?aruJN` z$f4Xa&!G9um5vfuF*wO&d8Sv9f^Cn>dN7;_A^Yx*UVGYu9+F}te|5Boc_th#G^5&E zaSd6a#rMYGN76O8N1`zKAu28geMuxoN%1h}{q=BQLvlg~oErD6*Rr-QoIC90%RR7v z3_3CvmzLm$u(!#U`xzV7^yQI0)7c`zQI|L(c{rk`NRWq?gfe zi5xD6gN+2qf(s(%?XWqD3-)B^q?QP4o8k?kRfEGhvS)(Dg(EMbS%qHIEx z7LY9n6oXb0*+mipA|N3cIZ|d( z$Kpg(arhMbG{9kiRN;!n>H!jJp&DwdVL?jp951-B96)ifh6bukFESI+Fg<5clF}N{ z$jJjt9F+6GI+lTkAcaP8Eyr}ClWitmalG$ZuQ^w;?}P7H?2_2KHx$4cKEA$J8K0NE zwfcbEL8+hgD9q3A?yXcibo77y4)0WGeD;9y4i->L7iWO~_4?nh%}U+y%*denSq{&u z)bfr84ebD5z?R~+cy5zmx?tCT!ErDXDZAs<77U4&fN%in2Eg%9fc1!FkfToaHFCbI zTm;mETzt-(r{AP8ZF7h2vk8O=g}O zm^0q5s+G&=$p>TdYkX@J#Cwx;tO~1ER(xqL?`4_Ek&|BJ#B_t@7JZPi;+IEb@cAO%VAS`wNUhqoG+V%_Bx6)j57 z{dmX!ob$`ofqp|NZ*TAD^#yk>e&zL%nLypfsR>{>0fytbp_EW4oWguurB?k%LAXhd z&A9m8`qXlDwchljtjmV!lasz8Y%o*0^^1*Fp{ySs-~xOZ&OBup)TTp!D4V+#PX58Nd6IhBNO#EbPkXD6+B5T zMf0lNCN4<`Q4`z@x*b%v9 zlW%BflgKPKn?1I&B2#c@e4>j)X3A{YZ@FF2*4BQ&WRgH7-yby*qD8?aDhcoW3;265 z5ggtz+WOTDheDZ*Gorz4328;cRl~X5 zUzlstFN|xdt33}$sUO-Wv;S&Kh-mcjVq}NhU4RyK0Hl&T?_wsMyY~9X1|+@?HOG-JB)d;q$Wf1oQLV}*j0HXGJwSpiv;$P zQc{t1+i(xQz7>JPuX8VP11)U(9#u_|LXHcX^5&P%OFL*sIV8{*?3rEGD$vCtFWq&W z92?KLI0Y3I6*+nNwmhBhA;_AzCRt~P3j4oy(#)X-XJDyWE(GDk(|P>XB1Y z>e}8mjSw%JmsqKO(W5^l5YXbO_2jb6)G7baAz2q-2U$_LsU2Q&ARQKKKiM>4_F_xr zw%t2?OpH9ugAs7AP~(Cn>gKnmB`H+lQ-R3Ooa!>vc8tRuop`F9MCU)MdUGmjC}n=H z$Re|e$Jb}1v2^l!QZ34Z#M?z}MXAX=?cmkeqr=0)ejJv+>BnZWHWXY-OUr??+#B6K zZ0mvrUX!;UDISW=bKW=hJ31-#osvrYjq7h~Ym1AGMUs@vI-fjAHdfWv9Ie_WzN5HS zp%h8wZrX*yjGD{Tswz+T(Icui>;nS>gX)hsWnP=`gnHwTI zmX`F&`ZQRRVc2<^a4lwAoICMNQamM`9EG|Cc$bh0ya(+SVWLxNZed~5v>*BBporql z$Twle;bgopmMD@x(OZuDvVe3tTeVh@-|ch5R;^TMlHKj&NP2N`^e&mWN+_hXWt5kz zSY;=NjJ9~<@em_>RH@%VPbRL(j!%W*r}Yjzct`8c?r! zpX9i)zQAv%*q02MUXW*}Y3RDfe493%)C#WoQyb3ChXkgUsxc;8IANS@unm$*Ks_y;`}~9cR=W^INx1QH!sCa-EP2I zVEEwiFTB&s#>U2WNk~W}%=qT@_*UKvPbPZRdNzWqA8h(hCIIW|xIYAas`G%WspFCE@;UkG

W%pmbBQZADf&r=Z_MSCZ wf5_KI&6@squ>6n6`F~CfZXHG-974srwGh3dr)P#707$*d`ivchYL2_|5ApZ+@Bjb+ literal 0 HcmV?d00001 diff --git a/plugins/syncthing/example-graphs/syncthing_-3.png b/plugins/syncthing/example-graphs/syncthing_-3.png new file mode 100644 index 0000000000000000000000000000000000000000..a1704be9555650d477546863f4bc86c293c78b04 GIT binary patch literal 41568 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 literal 0 HcmV?d00001 diff --git a/plugins/syncthing/syncthing_ b/plugins/syncthing/syncthing_ new file mode 100755 index 00000000..b1572cd8 --- /dev/null +++ b/plugins/syncthing/syncthing_ @@ -0,0 +1,151 @@ +#!/bin/sh +# -*- sh -*- +: <<=cut +=head1 NAME +syncthing_ - Plugin to monitor Syncthing server + +=head1 DESCRIPTION +This plugin gathers metrics from a Syncthing server. + +This plugin requires the jq utility : https://stedolan.github.io/jq/ + +Available plugins : +syncthing_cpu # +syncthing_mem # +syncthing_goroutine # +syncthing_transfer # +syncthing_uptime # + +=head1 CONFIGURATION +To make the plugin connect to the Syncthing server one has to use this type of +configuration +[syncthing_*] + +env.ST_APIKEY myapikey0123456789 +env.ST_HOST 127.0.0.1 +env.ST_PORT 8384 +env.ST_PROTO http + +=head1 AUTHOR +Pierre-Alain TORET + +=head1 LICENSE +MIT +=cut + +function cpu { + case $1 in + config) + cat <<'EOM' +graph_title Syncthing server cpu usage +graph_args -u 100 +graph_vlabel % +graph_category network +syncthing_cpu.label cpu +EOM + exit 0;; + *) + printf "syncthing_cpu.value " + curl -s -X GET -H "X-API-Key: $ST_APIKEY" $ST_PROTO://$ST_HOST:$ST_PORT/rest/system/status | jq '.cpuPercent' + esac +} + +function mem { + case $1 in + config) + cat <<'EOM' +graph_title Syncthing server memory +graph_category network +graph_order syncthing_mem_all syncthing_mem_sys +graph_args --base 1000 +graph_vlabel bits +syncthing_mem_all.label allocated +syncthing_mem_all.cdef syncthing_mem_all,8,* +syncthing_mem_sys.label obtained +syncthing_mem_sys.cdef syncthing_mem_sys,8,* +EOM + exit 0;; + *) + ALL=$(curl -s -X GET -H "X-API-Key: $ST_APIKEY" $ST_PROTO://$ST_HOST:$ST_PORT/rest/system/status | jq '.alloc') + SYS=$(curl -s -X GET -H "X-API-Key: $ST_APIKEY" $ST_PROTO://$ST_HOST:$ST_PORT/rest/system/status | jq '.sys') + printf "syncthing_mem_all.value $ALL\nsyncthing_mem_sys.value $SYS\n" + esac +} + +function uptime { + case $1 in + config) + cat <<'EOM' +graph_title Syncthing server uptime +graph_vlabel uptime in seconds +graph_category network +syncthing_uptime.label uptime +EOM + exit 0;; + *) + printf "syncthing_uptime.value " + curl -s -X GET -H "X-API-Key: $ST_APIKEY" $ST_PROTO://$ST_HOST:$ST_PORT/rest/system/status | jq '.uptime' + esac +} + +function goroutine { + case $1 in + config) + cat <<'EOM' +graph_title Syncthing server go routines +graph_vlabel number of go routines +graph_category network +syncthing_goroutine.label routines +EOM + exit 0;; + *) + printf "syncthing_goroutine.value " + curl -s -X GET -H "X-API-Key: $ST_APIKEY" $ST_PROTO://$ST_HOST:$ST_PORT/rest/system/status | jq '.goroutines' + esac +} + +function transfer { + case $1 in + config) + cat <<'EOM' +graph_title Syncthing server total transfer +graph_category network +graph_order syncthing_transfer_down syncthing_transfer_up +graph_args --base 1000 +graph_vlabel bits in (-) / out (+) per ${graph_period} +syncthing_transfer_down.label received +syncthing_transfer_down.type COUNTER +syncthing_transfer_down.graph no +syncthing_transfer_down.cdef syncthing_transfer_down,8,* +syncthing_transfer_up.label bps +syncthing_transfer_up.type COUNTER +syncthing_transfer_up.negative syncthing_transfer_down +syncthing_transfer_up.cdef syncthing_transfer_up,8,* +EOM + exit 0;; + *) + IBT=$(curl -s -X GET -H "X-API-Key: $ST_APIKEY" $ST_PROTO://$ST_HOST:$ST_PORT/rest/system/connections | jq '.total | .inBytesTotal') + OBT=$(curl -s -X GET -H "X-API-Key: $ST_APIKEY" $ST_PROTO://$ST_HOST:$ST_PORT/rest/system/connections | jq '.total | .outBytesTotal') + printf "syncthing_transfer_up.value $IBT\nsyncthing_transfer_down.value $OBT\n" + esac +} + +cd $(dirname $0) + +case $(basename $0) in + syncthing_cpu) + cpu $1 + exit 0;; + syncthing_mem) + mem $1 + exit 0;; + syncthing_uptime) + uptime $1 + exit 0;; + syncthing_goroutine) + goroutine $1 + exit 0;; + syncthing_transfer) + transfer $1 + exit 0;; +esac From 99123efbb81805c78f0c20048cd62ff565aea803 Mon Sep 17 00:00:00 2001 From: Pierre-Alain TORET Date: Wed, 13 Dec 2017 19:46:47 +0100 Subject: [PATCH 02/11] Make syncthing_ more portable Signed-off-by: Pierre-Alain TORET --- plugins/syncthing/syncthing_ | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/plugins/syncthing/syncthing_ b/plugins/syncthing/syncthing_ index b1572cd8..8b41cad1 100755 --- a/plugins/syncthing/syncthing_ +++ b/plugins/syncthing/syncthing_ @@ -1,4 +1,4 @@ -#!/bin/sh +#!/usr/bin/env bash # -*- sh -*- : <<=cut =head1 NAME @@ -8,6 +8,7 @@ syncthing_ - Plugin to monitor Syncthing server This plugin gathers metrics from a Syncthing server. This plugin requires the jq utility : https://stedolan.github.io/jq/ +This plugin requires the cURL utility : https://curl.haxx.se/ Available plugins : syncthing_cpu # @@ -46,7 +47,7 @@ EOM exit 0;; *) printf "syncthing_cpu.value " - curl -s -X GET -H "X-API-Key: $ST_APIKEY" $ST_PROTO://$ST_HOST:$ST_PORT/rest/system/status | jq '.cpuPercent' + $CURL -s -X GET -H "X-API-Key: $ST_APIKEY" $ST_PROTO://$ST_HOST:$ST_PORT/rest/system/status | $JQ '.cpuPercent' esac } @@ -66,8 +67,8 @@ syncthing_mem_sys.cdef syncthing_mem_sys,8,* EOM exit 0;; *) - ALL=$(curl -s -X GET -H "X-API-Key: $ST_APIKEY" $ST_PROTO://$ST_HOST:$ST_PORT/rest/system/status | jq '.alloc') - SYS=$(curl -s -X GET -H "X-API-Key: $ST_APIKEY" $ST_PROTO://$ST_HOST:$ST_PORT/rest/system/status | jq '.sys') + ALL=$($CURL -s -X GET -H "X-API-Key: $ST_APIKEY" $ST_PROTO://$ST_HOST:$ST_PORT/rest/system/status | $JQ '.alloc') + SYS=$($CURL -s -X GET -H "X-API-Key: $ST_APIKEY" $ST_PROTO://$ST_HOST:$ST_PORT/rest/system/status | $JQ '.sys') printf "syncthing_mem_all.value $ALL\nsyncthing_mem_sys.value $SYS\n" esac } @@ -84,7 +85,7 @@ EOM exit 0;; *) printf "syncthing_uptime.value " - curl -s -X GET -H "X-API-Key: $ST_APIKEY" $ST_PROTO://$ST_HOST:$ST_PORT/rest/system/status | jq '.uptime' + $CURL -s -X GET -H "X-API-Key: $ST_APIKEY" $ST_PROTO://$ST_HOST:$ST_PORT/rest/system/status | $JQ '.uptime' esac } @@ -100,7 +101,7 @@ EOM exit 0;; *) printf "syncthing_goroutine.value " - curl -s -X GET -H "X-API-Key: $ST_APIKEY" $ST_PROTO://$ST_HOST:$ST_PORT/rest/system/status | jq '.goroutines' + $CURL -s -X GET -H "X-API-Key: $ST_APIKEY" $ST_PROTO://$ST_HOST:$ST_PORT/rest/system/status | $JQ '.goroutines' esac } @@ -124,14 +125,17 @@ syncthing_transfer_up.cdef syncthing_transfer_up,8,* EOM exit 0;; *) - IBT=$(curl -s -X GET -H "X-API-Key: $ST_APIKEY" $ST_PROTO://$ST_HOST:$ST_PORT/rest/system/connections | jq '.total | .inBytesTotal') - OBT=$(curl -s -X GET -H "X-API-Key: $ST_APIKEY" $ST_PROTO://$ST_HOST:$ST_PORT/rest/system/connections | jq '.total | .outBytesTotal') + IBT=$($CURL -s -X GET -H "X-API-Key: $ST_APIKEY" $ST_PROTO://$ST_HOST:$ST_PORT/rest/system/connections | $JQ '.total | .inBytesTotal') + OBT=$($CURL -s -X GET -H "X-API-Key: $ST_APIKEY" $ST_PROTO://$ST_HOST:$ST_PORT/rest/system/connections | $JQ '.total | .outBytesTotal') printf "syncthing_transfer_up.value $IBT\nsyncthing_transfer_down.value $OBT\n" esac } cd $(dirname $0) +CURL=$(which curl) +JQ=$(which jq) + case $(basename $0) in syncthing_cpu) cpu $1 From 5d5651ca0940af39fcd422e502db915f5e4567ac Mon Sep 17 00:00:00 2001 From: Pierre-Alain TORET Date: Sat, 24 Mar 2018 18:43:32 +0100 Subject: [PATCH 03/11] Change variables names to more readable ones in syncthing_ Signed-off-by: Pierre-Alain TORET --- plugins/syncthing/syncthing_ | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/plugins/syncthing/syncthing_ b/plugins/syncthing/syncthing_ index 8b41cad1..b71bb48b 100755 --- a/plugins/syncthing/syncthing_ +++ b/plugins/syncthing/syncthing_ @@ -22,10 +22,10 @@ To make the plugin connect to the Syncthing server one has to use this type of configuration [syncthing_*] -env.ST_APIKEY myapikey0123456789 -env.ST_HOST 127.0.0.1 -env.ST_PORT 8384 -env.ST_PROTO http +env.syncthing_apikey myapikey0123456789 +env.syncthing_host 127.0.0.1 +env.syncthing_port 8384 +env.syncthing_proto http =head1 AUTHOR Pierre-Alain TORET @@ -47,7 +47,7 @@ EOM exit 0;; *) printf "syncthing_cpu.value " - $CURL -s -X GET -H "X-API-Key: $ST_APIKEY" $ST_PROTO://$ST_HOST:$ST_PORT/rest/system/status | $JQ '.cpuPercent' + $CURL -s -X GET -H "X-API-Key: $syncthing_apikey" $syncthing_proto://$syncthing_host:$syncthing_port/rest/system/status | $JQ '.cpuPercent' esac } @@ -67,8 +67,8 @@ syncthing_mem_sys.cdef syncthing_mem_sys,8,* EOM exit 0;; *) - ALL=$($CURL -s -X GET -H "X-API-Key: $ST_APIKEY" $ST_PROTO://$ST_HOST:$ST_PORT/rest/system/status | $JQ '.alloc') - SYS=$($CURL -s -X GET -H "X-API-Key: $ST_APIKEY" $ST_PROTO://$ST_HOST:$ST_PORT/rest/system/status | $JQ '.sys') + ALL=$($CURL -s -X GET -H "X-API-Key: $syncthing_apikey" $syncthing_proto://$syncthing_host:$syncthing_port/rest/system/status | $JQ '.alloc') + SYS=$($CURL -s -X GET -H "X-API-Key: $syncthing_apikey" $syncthing_proto://$syncthing_host:$syncthing_port/rest/system/status | $JQ '.sys') printf "syncthing_mem_all.value $ALL\nsyncthing_mem_sys.value $SYS\n" esac } @@ -85,7 +85,7 @@ EOM exit 0;; *) printf "syncthing_uptime.value " - $CURL -s -X GET -H "X-API-Key: $ST_APIKEY" $ST_PROTO://$ST_HOST:$ST_PORT/rest/system/status | $JQ '.uptime' + $CURL -s -X GET -H "X-API-Key: $syncthing_apikey" $syncthing_proto://$syncthing_host:$syncthing_port/rest/system/status | $JQ '.uptime' esac } @@ -101,7 +101,7 @@ EOM exit 0;; *) printf "syncthing_goroutine.value " - $CURL -s -X GET -H "X-API-Key: $ST_APIKEY" $ST_PROTO://$ST_HOST:$ST_PORT/rest/system/status | $JQ '.goroutines' + $CURL -s -X GET -H "X-API-Key: $syncthing_apikey" $syncthing_proto://$syncthing_host:$syncthing_port/rest/system/status | $JQ '.goroutines' esac } @@ -125,8 +125,8 @@ syncthing_transfer_up.cdef syncthing_transfer_up,8,* EOM exit 0;; *) - IBT=$($CURL -s -X GET -H "X-API-Key: $ST_APIKEY" $ST_PROTO://$ST_HOST:$ST_PORT/rest/system/connections | $JQ '.total | .inBytesTotal') - OBT=$($CURL -s -X GET -H "X-API-Key: $ST_APIKEY" $ST_PROTO://$ST_HOST:$ST_PORT/rest/system/connections | $JQ '.total | .outBytesTotal') + IBT=$($CURL -s -X GET -H "X-API-Key: $syncthing_apikey" $syncthing_proto://$syncthing_host:$syncthing_port/rest/system/connections | $JQ '.total | .inBytesTotal') + OBT=$($CURL -s -X GET -H "X-API-Key: $syncthing_apikey" $syncthing_proto://$syncthing_host:$syncthing_port/rest/system/connections | $JQ '.total | .outBytesTotal') printf "syncthing_transfer_up.value $IBT\nsyncthing_transfer_down.value $OBT\n" esac } From f1afd73f71f837e8fdaebbc2fbe98f727effb1e1 Mon Sep 17 00:00:00 2001 From: Pierre-Alain TORET Date: Sat, 24 Mar 2018 19:16:03 +0100 Subject: [PATCH 04/11] Fix shellcheck warnings in syncthing_ Signed-off-by: Pierre-Alain TORET --- plugins/syncthing/syncthing_ | 58 +++++++++++++++++++----------------- 1 file changed, 31 insertions(+), 27 deletions(-) diff --git a/plugins/syncthing/syncthing_ b/plugins/syncthing/syncthing_ index b71bb48b..a26236cc 100755 --- a/plugins/syncthing/syncthing_ +++ b/plugins/syncthing/syncthing_ @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/usr/bin/env sh # -*- sh -*- : <<=cut =head1 NAME @@ -34,7 +34,7 @@ Pierre-Alain TORET MIT =cut -function cpu { +cpu() { case $1 in config) cat <<'EOM' @@ -46,12 +46,12 @@ syncthing_cpu.label cpu EOM exit 0;; *) - printf "syncthing_cpu.value " - $CURL -s -X GET -H "X-API-Key: $syncthing_apikey" $syncthing_proto://$syncthing_host:$syncthing_port/rest/system/status | $JQ '.cpuPercent' + CPU=$($CURL -s -X GET -H "X-API-Key: $syncthing_apikey" "$syncthing_proto"://"$syncthing_host":"$syncthing_port"/rest/system/status | $JQ '.cpuPercent') + printf "syncthing_cpu.value %s\\n" "$CPU" esac } -function mem { +mem() { case $1 in config) cat <<'EOM' @@ -66,14 +66,16 @@ syncthing_mem_sys.label obtained syncthing_mem_sys.cdef syncthing_mem_sys,8,* EOM exit 0;; - *) - ALL=$($CURL -s -X GET -H "X-API-Key: $syncthing_apikey" $syncthing_proto://$syncthing_host:$syncthing_port/rest/system/status | $JQ '.alloc') - SYS=$($CURL -s -X GET -H "X-API-Key: $syncthing_apikey" $syncthing_proto://$syncthing_host:$syncthing_port/rest/system/status | $JQ '.sys') - printf "syncthing_mem_all.value $ALL\nsyncthing_mem_sys.value $SYS\n" + *) + STATUS=$($CURL -s -X GET -H "X-API-Key: $syncthing_apikey" "$syncthing_proto"://"$syncthing_host":"$syncthing_port"/rest/system/status) + ALL=$(echo "$STATUS" | $JQ '.alloc') + SYS=$(echo "$STATUS" | $JQ '.sys') + printf "syncthing_mem_all.value %s\\n" "$ALL" + printf "syncthing_mem_sys.value %s\\n" "$SYS" esac } -function uptime { +uptime() { case $1 in config) cat <<'EOM' @@ -84,12 +86,12 @@ syncthing_uptime.label uptime EOM exit 0;; *) - printf "syncthing_uptime.value " - $CURL -s -X GET -H "X-API-Key: $syncthing_apikey" $syncthing_proto://$syncthing_host:$syncthing_port/rest/system/status | $JQ '.uptime' + UPTIME=$($CURL -s -X GET -H "X-API-Key: $syncthing_apikey" "$syncthing_proto"://"$syncthing_host":"$syncthing_port"/rest/system/status | $JQ '.uptime') + printf "syncthing_uptime.value %s\\n" "$UPTIME" esac } -function goroutine { +goroutine() { case $1 in config) cat <<'EOM' @@ -100,12 +102,12 @@ syncthing_goroutine.label routines EOM exit 0;; *) - printf "syncthing_goroutine.value " - $CURL -s -X GET -H "X-API-Key: $syncthing_apikey" $syncthing_proto://$syncthing_host:$syncthing_port/rest/system/status | $JQ '.goroutines' + GOROUTINES=$($CURL -s -X GET -H "X-API-Key: $syncthing_apikey" "$syncthing_proto"://"$syncthing_host":"$syncthing_port"/rest/system/status | $JQ '.goroutines') + printf "syncthing_goroutine.value %s\\n" "$GOROUTINES" esac } -function transfer { +transfer() { case $1 in config) cat <<'EOM' @@ -124,32 +126,34 @@ syncthing_transfer_up.negative syncthing_transfer_down syncthing_transfer_up.cdef syncthing_transfer_up,8,* EOM exit 0;; - *) - IBT=$($CURL -s -X GET -H "X-API-Key: $syncthing_apikey" $syncthing_proto://$syncthing_host:$syncthing_port/rest/system/connections | $JQ '.total | .inBytesTotal') - OBT=$($CURL -s -X GET -H "X-API-Key: $syncthing_apikey" $syncthing_proto://$syncthing_host:$syncthing_port/rest/system/connections | $JQ '.total | .outBytesTotal') - printf "syncthing_transfer_up.value $IBT\nsyncthing_transfer_down.value $OBT\n" + *) + CONNECTIONS=$($CURL -s -X GET -H "X-API-Key: $syncthing_apikey" "$syncthing_proto"://"$syncthing_host":"$syncthing_port"/rest/system/connections) + IBT=$(echo "$CONNECTIONS" | $JQ '.total | .inBytesTotal') + OBT=$(echo "$CONNECTIONS" | $JQ '.total | .outBytesTotal') + printf "syncthing_transfer_up.value %s\\n" "$IBT" + printf "syncthing_transfer_down.value %s\\n" "$OBT" esac } -cd $(dirname $0) +cd "$(dirname "$0")" || exit CURL=$(which curl) JQ=$(which jq) -case $(basename $0) in +case $(basename "$0") in syncthing_cpu) - cpu $1 + cpu "$1" exit 0;; syncthing_mem) - mem $1 + mem "$1" exit 0;; syncthing_uptime) - uptime $1 + uptime "$1" exit 0;; syncthing_goroutine) - goroutine $1 + goroutine "$1" exit 0;; syncthing_transfer) - transfer $1 + transfer "$1" exit 0;; esac From cc24efff2d78b2e231915e0247b34ccd50b492ee Mon Sep 17 00:00:00 2001 From: Pierre-Alain TORET Date: Sat, 24 Mar 2018 19:55:12 +0100 Subject: [PATCH 05/11] Add strelaysrv plugin Signed-off-by: Pierre-Alain TORET --- plugins/syncthing/strelaysrv_ | 145 ++++++++++++++++++++++++++++++++++ 1 file changed, 145 insertions(+) create mode 100755 plugins/syncthing/strelaysrv_ diff --git a/plugins/syncthing/strelaysrv_ b/plugins/syncthing/strelaysrv_ new file mode 100755 index 00000000..8ca9bcb7 --- /dev/null +++ b/plugins/syncthing/strelaysrv_ @@ -0,0 +1,145 @@ +#!/usr/bin/env bash +: <<=cut +=head1 NAME +strelaysrv_ - Plugin to monitor Syncthing relay server + +=head1 DESCRIPTION +This plugin gathers metrics from a Syncthing relay server. + +This plugin requires the jq utility : https://stedolan.github.io/jq/ +This plugin requires the curl utility : https://curl.haxx.se/ + +Available plugins : +strelaysrv_goroutine # +strelaysrv_num # +strelaysrv_proxied # +strelaysrv_transfer # +strelaysrv_uptime # + +=head1 CONFIGURATION +To make the plugin connect to the Syncthing relay server one has to use this type of +configuration +[strelaysrv_*] + +env.STR_HOST 127.0.0.1 +env.STR_PORT 22070 + +=head1 AUTHOR +Pierre-Alain TORET + +=head1 LICENSE +MIT +=cut + +function num { + case $1 in + config) + cat <<'EOM' +graph_title Syncthing relay numbers +graph_category network +graph_vlabel numbers +strelaysrv_num_sessions.label sessions +strelaysrv_num_connections.label connections +strelaysrv_num_pending.label pending session keys +strelaysrv_num_proxies.label proxies +EOM + exit 0;; + *) + NS=$($CURL -s http://$STR_HOST:$STR_PORT/status | $JQ '.numActiveSessions ') + NC=$($CURL -s http://$STR_HOST:$STR_PORT/status | $JQ '.numConnections ') + NK=$($CURL -s http://$STR_HOST:$STR_PORT/status | $JQ '.numPendingSessionKeys ') + NP=$($CURL -s http://$STR_HOST:$STR_PORT/status | $JQ '.numProxies ') + printf "strelaysrv_num_sessions.value $NS\nstrelaysrv_num_connections.value $NC\nstrelaysrv_num_pending.value $NK\nstrelaysrv_num_proxies.value $NP\n" + esac +} + +function uptime { + case $1 in + config) + cat <<'EOM' +graph_title Syncthing relay uptime +graph_vlabel uptime in seconds +graph_category network +strelaysrv_uptime.label uptime +EOM + exit 0;; + *) + printf "strelaysrv_uptime.value " + $CURL -s http://$STR_HOST:$STR_PORT/status | $JQ '.uptimeSeconds' + esac +} + +function goroutine { + case $1 in + config) + cat <<'EOM' +graph_title Syncthing relay go routines +graph_vlabel number of go routines +graph_category network +strelaysrv_goroutine.label routines +EOM + exit 0;; + *) +printf "strelaysrv_goroutine.value " +$CURL -s http://$STR_HOST:$STR_PORT/status | $JQ '.goNumRoutine' + esac +} + +function proxied { + case $1 in + config) + cat <<'EOM' +graph_title Syncthing relay total proxied bits +graph_category network +graph_vlabel bits +graph_args --base 1000 +strelaysrv_proxied.label bits +strelaysrv_proxied.cdef strelaysrv_proxied,8,* +EOM + exit 0;; + *) + printf "strelaysrv_proxied.value " + $CURL -s http://$STR_HOST:$STR_PORT/status | $JQ '.bytesProxied ' + esac +} + +function transfer { + case $1 in + config) + cat <<'EOM' +graph_title Syncthing relay transfer rate +graph_category network +graph_vlabel bps +graph_args --base 1000 +strelaysrv_transfer.label bps +strelaysrv_transfer.cdef strelaysrv_transfer,1000,* +EOM + exit 0;; + *) + printf "strelaysrv_transfer.value " + $CURL -s http://$STR_HOST:$STR_PORT/status | $JQ '.kbps10s1m5m15m30m60m[2] ' + esac +} + +cd $(dirname $0) + +CURL=$(which curl) +JQ=$(which jq) + +case $(basename $0) in + strelaysrv_num) + num $1 + exit 0;; + strelaysrv_uptime) + uptime $1 + exit 0;; + strelaysrv_goroutine) + goroutine $1 + exit 0;; + strelaysrv_proxied) + proxied $1 + exit 0;; + strelaysrv_transfer) + transfer $1 + exit 0;; +esac From ccee75e1ebc4f780669acfc9aad32680bf3aeb72 Mon Sep 17 00:00:00 2001 From: Pierre-Alain TORET Date: Sat, 24 Mar 2018 19:56:32 +0100 Subject: [PATCH 06/11] Change variables names to more readable ones in strelaysrv_ Signed-off-by: Pierre-Alain TORET --- plugins/syncthing/strelaysrv_ | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/plugins/syncthing/strelaysrv_ b/plugins/syncthing/strelaysrv_ index 8ca9bcb7..4ea18745 100755 --- a/plugins/syncthing/strelaysrv_ +++ b/plugins/syncthing/strelaysrv_ @@ -21,8 +21,8 @@ To make the plugin connect to the Syncthing relay server one has to use this typ configuration [strelaysrv_*] -env.STR_HOST 127.0.0.1 -env.STR_PORT 22070 +env.syncthing_relaysrv_host 127.0.0.1 +env.syncthing_relaysrv_port 22070 =head1 AUTHOR Pierre-Alain TORET @@ -45,10 +45,10 @@ strelaysrv_num_proxies.label proxies EOM exit 0;; *) - NS=$($CURL -s http://$STR_HOST:$STR_PORT/status | $JQ '.numActiveSessions ') - NC=$($CURL -s http://$STR_HOST:$STR_PORT/status | $JQ '.numConnections ') - NK=$($CURL -s http://$STR_HOST:$STR_PORT/status | $JQ '.numPendingSessionKeys ') - NP=$($CURL -s http://$STR_HOST:$STR_PORT/status | $JQ '.numProxies ') + NS=$($CURL -s http://$syncthing_relaysrv_host:$syncthing_relaysrv_port/status | $JQ '.numActiveSessions ') + NC=$($CURL -s http://$syncthing_relaysrv_host:$syncthing_relaysrv_port/status | $JQ '.numConnections ') + NK=$($CURL -s http://$syncthing_relaysrv_host:$syncthing_relaysrv_port/status | $JQ '.numPendingSessionKeys ') + NP=$($CURL -s http://$syncthing_relaysrv_host:$syncthing_relaysrv_port/status | $JQ '.numProxies ') printf "strelaysrv_num_sessions.value $NS\nstrelaysrv_num_connections.value $NC\nstrelaysrv_num_pending.value $NK\nstrelaysrv_num_proxies.value $NP\n" esac } @@ -65,7 +65,7 @@ EOM exit 0;; *) printf "strelaysrv_uptime.value " - $CURL -s http://$STR_HOST:$STR_PORT/status | $JQ '.uptimeSeconds' + $CURL -s http://$syncthing_relaysrv_host:$syncthing_relaysrv_port/status | $JQ '.uptimeSeconds' esac } @@ -81,7 +81,7 @@ EOM exit 0;; *) printf "strelaysrv_goroutine.value " -$CURL -s http://$STR_HOST:$STR_PORT/status | $JQ '.goNumRoutine' +$CURL -s http://$syncthing_relaysrv_host:$syncthing_relaysrv_port/status | $JQ '.goNumRoutine' esac } @@ -99,7 +99,7 @@ EOM exit 0;; *) printf "strelaysrv_proxied.value " - $CURL -s http://$STR_HOST:$STR_PORT/status | $JQ '.bytesProxied ' + $CURL -s http://$syncthing_relaysrv_host:$syncthing_relaysrv_port/status | $JQ '.bytesProxied ' esac } @@ -117,7 +117,7 @@ EOM exit 0;; *) printf "strelaysrv_transfer.value " - $CURL -s http://$STR_HOST:$STR_PORT/status | $JQ '.kbps10s1m5m15m30m60m[2] ' + $CURL -s http://$syncthing_relaysrv_host:$syncthing_relaysrv_port/status | $JQ '.kbps10s1m5m15m30m60m[2] ' esac } From ba2640da343558959a6988c79a8fa26ac1d28c56 Mon Sep 17 00:00:00 2001 From: Pierre-Alain TORET Date: Sat, 24 Mar 2018 20:23:40 +0100 Subject: [PATCH 07/11] Fix shellcheck warnings in strelaysrv_ Signed-off-by: Pierre-Alain TORET --- plugins/syncthing/strelaysrv_ | 76 ++++++++++++++++++----------------- 1 file changed, 40 insertions(+), 36 deletions(-) diff --git a/plugins/syncthing/strelaysrv_ b/plugins/syncthing/strelaysrv_ index 4ea18745..525a0c9f 100755 --- a/plugins/syncthing/strelaysrv_ +++ b/plugins/syncthing/strelaysrv_ @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/usr/bin/env sh : <<=cut =head1 NAME strelaysrv_ - Plugin to monitor Syncthing relay server @@ -31,9 +31,9 @@ Pierre-Alain TORET MIT =cut -function num { +num() { case $1 in - config) + config) cat <<'EOM' graph_title Syncthing relay numbers graph_category network @@ -43,51 +43,55 @@ strelaysrv_num_connections.label connections strelaysrv_num_pending.label pending session keys strelaysrv_num_proxies.label proxies EOM - exit 0;; + exit 0;; *) - NS=$($CURL -s http://$syncthing_relaysrv_host:$syncthing_relaysrv_port/status | $JQ '.numActiveSessions ') - NC=$($CURL -s http://$syncthing_relaysrv_host:$syncthing_relaysrv_port/status | $JQ '.numConnections ') - NK=$($CURL -s http://$syncthing_relaysrv_host:$syncthing_relaysrv_port/status | $JQ '.numPendingSessionKeys ') - NP=$($CURL -s http://$syncthing_relaysrv_host:$syncthing_relaysrv_port/status | $JQ '.numProxies ') - printf "strelaysrv_num_sessions.value $NS\nstrelaysrv_num_connections.value $NC\nstrelaysrv_num_pending.value $NK\nstrelaysrv_num_proxies.value $NP\n" + STATUS=$($CURL -s http://"$syncthing_relaysrv_host":"$syncthing_relaysrv_port"/status) + NS=$(echo "$STATUS" | $JQ '.numActiveSessions ') + NC=$(echo "$STATUS" | $JQ '.numConnections ') + NK=$(echo "$STATUS" | $JQ '.numPendingSessionKeys ') + NP=$(echo "$STATUS" | $JQ '.numProxies ') + printf "strelaysrv_num_sessions.value %s\\n" "$NS" + printf "strelaysrv_num_connections.value %s\\n" "$NC" + printf "strelaysrv_num_pending.value %s\\n" "$NK" + printf "strelaysrv_num_proxies.value %s\\n" "$NP" esac } -function uptime { +uptime() { case $1 in - config) + config) cat <<'EOM' graph_title Syncthing relay uptime graph_vlabel uptime in seconds graph_category network strelaysrv_uptime.label uptime EOM - exit 0;; + exit 0;; *) - printf "strelaysrv_uptime.value " - $CURL -s http://$syncthing_relaysrv_host:$syncthing_relaysrv_port/status | $JQ '.uptimeSeconds' + UPTIME=$($CURL -s http://"$syncthing_relaysrv_host":"$syncthing_relaysrv_port"/status | $JQ '.uptimeSeconds') + printf "strelaysrv_uptime.value %s\\n" "$UPTIME" esac } -function goroutine { +goroutine() { case $1 in - config) + config) cat <<'EOM' graph_title Syncthing relay go routines graph_vlabel number of go routines graph_category network strelaysrv_goroutine.label routines EOM - exit 0;; + exit 0;; *) -printf "strelaysrv_goroutine.value " -$CURL -s http://$syncthing_relaysrv_host:$syncthing_relaysrv_port/status | $JQ '.goNumRoutine' + GOROUTINE=$($CURL -s http://"$syncthing_relaysrv_host":"$syncthing_relaysrv_port"/status | $JQ '.goNumRoutine') + printf "strelaysrv_goroutine.value %s\\n" "$GOROUTINE" esac } -function proxied { +proxied() { case $1 in - config) + config) cat <<'EOM' graph_title Syncthing relay total proxied bits graph_category network @@ -97,15 +101,15 @@ strelaysrv_proxied.label bits strelaysrv_proxied.cdef strelaysrv_proxied,8,* EOM exit 0;; - *) - printf "strelaysrv_proxied.value " - $CURL -s http://$syncthing_relaysrv_host:$syncthing_relaysrv_port/status | $JQ '.bytesProxied ' + *) + BP=$($CURL -s http://"$syncthing_relaysrv_host":"$syncthing_relaysrv_port"/status | $JQ '.bytesProxied ') + printf "strelaysrv_proxied.value %s\\n" "$BP" esac } -function transfer { +transfer() { case $1 in - config) + config) cat <<'EOM' graph_title Syncthing relay transfer rate graph_category network @@ -115,31 +119,31 @@ strelaysrv_transfer.label bps strelaysrv_transfer.cdef strelaysrv_transfer,1000,* EOM exit 0;; - *) - printf "strelaysrv_transfer.value " - $CURL -s http://$syncthing_relaysrv_host:$syncthing_relaysrv_port/status | $JQ '.kbps10s1m5m15m30m60m[2] ' + *) + TRANSFER=$($CURL -s http://"$syncthing_relaysrv_host":"$syncthing_relaysrv_port"/status | $JQ '.kbps10s1m5m15m30m60m[2] ') + printf "strelaysrv_transfer.value %s\\n" "$TRANSFER" esac } -cd $(dirname $0) +cd "$(dirname "$0")" || exit CURL=$(which curl) JQ=$(which jq) -case $(basename $0) in +case $(basename "$0") in strelaysrv_num) - num $1 + num "$1" exit 0;; strelaysrv_uptime) - uptime $1 + uptime "$1" exit 0;; strelaysrv_goroutine) - goroutine $1 + goroutine "$1" exit 0;; strelaysrv_proxied) - proxied $1 + proxied "$1" exit 0;; strelaysrv_transfer) - transfer $1 + transfer "$1" exit 0;; esac From c594a164841a9e0abd6dcda93644871c3d3b75f0 Mon Sep 17 00:00:00 2001 From: Pierre-Alain TORET Date: Tue, 27 Mar 2018 16:58:10 +0200 Subject: [PATCH 08/11] Add strelay_ example graphs Signed-off-by: Pierre-Alain TORET --- .../syncthing/example-graphs/strelaysrv_-1.png | Bin 0 -> 19072 bytes .../syncthing/example-graphs/strelaysrv_-2.png | Bin 0 -> 20439 bytes .../syncthing/example-graphs/strelaysrv_-3.png | Bin 0 -> 22775 bytes .../syncthing/example-graphs/strelaysrv_-4.png | Bin 0 -> 12203 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 plugins/syncthing/example-graphs/strelaysrv_-1.png create mode 100644 plugins/syncthing/example-graphs/strelaysrv_-2.png create mode 100644 plugins/syncthing/example-graphs/strelaysrv_-3.png create mode 100644 plugins/syncthing/example-graphs/strelaysrv_-4.png diff --git a/plugins/syncthing/example-graphs/strelaysrv_-1.png b/plugins/syncthing/example-graphs/strelaysrv_-1.png new file mode 100644 index 0000000000000000000000000000000000000000..ea26f57d9907faf01080022b22fe9fe53661e8b2 GIT binary patch literal 19072 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 z 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 N{A7!@sl{A>@Gqx>Zma+R literal 0 HcmV?d00001 diff --git a/plugins/syncthing/example-graphs/strelaysrv_-4.png b/plugins/syncthing/example-graphs/strelaysrv_-4.png new file mode 100644 index 0000000000000000000000000000000000000000..244e3eda224ac7b146b1c55af99856364483a984 GIT binary patch literal 12203 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 ML+41Q`nenb2Ob;UjQ{`u literal 0 HcmV?d00001 From e527db57a53d6456a68e3512e7f5aa2f222e07f2 Mon Sep 17 00:00:00 2001 From: Pierre-Alain TORET Date: Tue, 27 Mar 2018 18:04:29 +0200 Subject: [PATCH 09/11] Improve plugins call to status and few other fixes Signed-off-by: Pierre-Alain TORET --- plugins/syncthing/strelaysrv_ | 36 +++++++++++++++++++++------------- plugins/syncthing/syncthing_ | 37 +++++++++++++++++++++-------------- 2 files changed, 44 insertions(+), 29 deletions(-) diff --git a/plugins/syncthing/strelaysrv_ b/plugins/syncthing/strelaysrv_ index 525a0c9f..c5a9fe3d 100755 --- a/plugins/syncthing/strelaysrv_ +++ b/plugins/syncthing/strelaysrv_ @@ -1,4 +1,4 @@ -#!/usr/bin/env sh +#!/bin/sh : <<=cut =head1 NAME strelaysrv_ - Plugin to monitor Syncthing relay server @@ -31,6 +31,10 @@ Pierre-Alain TORET MIT =cut +getstatus() { + "$CURL" -s "http://$syncthing_relaysrv_host:$syncthing_relaysrv_port/status" +} + num() { case $1 in config) @@ -45,15 +49,15 @@ strelaysrv_num_proxies.label proxies EOM exit 0;; *) - STATUS=$($CURL -s http://"$syncthing_relaysrv_host":"$syncthing_relaysrv_port"/status) + STATUS=$(getstatus) NS=$(echo "$STATUS" | $JQ '.numActiveSessions ') NC=$(echo "$STATUS" | $JQ '.numConnections ') NK=$(echo "$STATUS" | $JQ '.numPendingSessionKeys ') NP=$(echo "$STATUS" | $JQ '.numProxies ') - printf "strelaysrv_num_sessions.value %s\\n" "$NS" - printf "strelaysrv_num_connections.value %s\\n" "$NC" - printf "strelaysrv_num_pending.value %s\\n" "$NK" - printf "strelaysrv_num_proxies.value %s\\n" "$NP" + printf "strelaysrv_num_sessions.value %s\n" "$NS" + printf "strelaysrv_num_connections.value %s\n" "$NC" + printf "strelaysrv_num_pending.value %s\n" "$NK" + printf "strelaysrv_num_proxies.value %s\n" "$NP" esac } @@ -68,8 +72,9 @@ strelaysrv_uptime.label uptime EOM exit 0;; *) - UPTIME=$($CURL -s http://"$syncthing_relaysrv_host":"$syncthing_relaysrv_port"/status | $JQ '.uptimeSeconds') - printf "strelaysrv_uptime.value %s\\n" "$UPTIME" + STATUS=$(getstatus) + UPTIME=$(echo "$STATUS" | "$JQ" '.uptimeSeconds') + printf "strelaysrv_uptime.value %s\n" "$UPTIME" esac } @@ -84,8 +89,9 @@ strelaysrv_goroutine.label routines EOM exit 0;; *) - GOROUTINE=$($CURL -s http://"$syncthing_relaysrv_host":"$syncthing_relaysrv_port"/status | $JQ '.goNumRoutine') - printf "strelaysrv_goroutine.value %s\\n" "$GOROUTINE" + STATUS=$(getstatus) + GOROUTINE=$(echo "$STATUS" | "$JQ" '.goNumRoutine') + printf "strelaysrv_goroutine.value %s\n" "$GOROUTINE" esac } @@ -102,8 +108,9 @@ strelaysrv_proxied.cdef strelaysrv_proxied,8,* EOM exit 0;; *) - BP=$($CURL -s http://"$syncthing_relaysrv_host":"$syncthing_relaysrv_port"/status | $JQ '.bytesProxied ') - printf "strelaysrv_proxied.value %s\\n" "$BP" + STATUS=$(getstatus) + BP=$(echo "$STATUS" | "$JQ" '.bytesProxied ') + printf "strelaysrv_proxied.value %s\n" "$BP" esac } @@ -120,8 +127,9 @@ strelaysrv_transfer.cdef strelaysrv_transfer,1000,* EOM exit 0;; *) - TRANSFER=$($CURL -s http://"$syncthing_relaysrv_host":"$syncthing_relaysrv_port"/status | $JQ '.kbps10s1m5m15m30m60m[2] ') - printf "strelaysrv_transfer.value %s\\n" "$TRANSFER" + STATUS=$(getstatus) + TRANSFER=$(echo "$STATUS" | "$JQ" '.kbps10s1m5m15m30m60m[2] ') + printf "strelaysrv_transfer.value %s\n" "$TRANSFER" esac } diff --git a/plugins/syncthing/syncthing_ b/plugins/syncthing/syncthing_ index a26236cc..25ac50c0 100755 --- a/plugins/syncthing/syncthing_ +++ b/plugins/syncthing/syncthing_ @@ -1,4 +1,4 @@ -#!/usr/bin/env sh +#!/bin/sh # -*- sh -*- : <<=cut =head1 NAME @@ -34,6 +34,10 @@ Pierre-Alain TORET MIT =cut +getstatus() { + "$CURL" -s -X GET -H "X-API-Key: $syncthing_apikey" "$syncthing_proto://$syncthing_host:$syncthing_port/rest/system/status" +} + cpu() { case $1 in config) @@ -46,8 +50,9 @@ syncthing_cpu.label cpu EOM exit 0;; *) - CPU=$($CURL -s -X GET -H "X-API-Key: $syncthing_apikey" "$syncthing_proto"://"$syncthing_host":"$syncthing_port"/rest/system/status | $JQ '.cpuPercent') - printf "syncthing_cpu.value %s\\n" "$CPU" + STATUS=$(getstatus) + CPU=$(echo "$STATUS" | "$JQ" '.cpuPercent') + printf "syncthing_cpu.value %s\n" "$CPU" esac } @@ -67,11 +72,11 @@ syncthing_mem_sys.cdef syncthing_mem_sys,8,* EOM exit 0;; *) - STATUS=$($CURL -s -X GET -H "X-API-Key: $syncthing_apikey" "$syncthing_proto"://"$syncthing_host":"$syncthing_port"/rest/system/status) - ALL=$(echo "$STATUS" | $JQ '.alloc') - SYS=$(echo "$STATUS" | $JQ '.sys') - printf "syncthing_mem_all.value %s\\n" "$ALL" - printf "syncthing_mem_sys.value %s\\n" "$SYS" + STATUS=$(getstatus) + ALL=$(echo "$STATUS" | "$JQ" '.alloc') + SYS=$(echo "$STATUS" | "$JQ" '.sys') + printf "syncthing_mem_all.value %s\n" "$ALL" + printf "syncthing_mem_sys.value %s\n" "$SYS" esac } @@ -86,8 +91,9 @@ syncthing_uptime.label uptime EOM exit 0;; *) - UPTIME=$($CURL -s -X GET -H "X-API-Key: $syncthing_apikey" "$syncthing_proto"://"$syncthing_host":"$syncthing_port"/rest/system/status | $JQ '.uptime') - printf "syncthing_uptime.value %s\\n" "$UPTIME" + STATUS=$(getstatus) + UPTIME=$(echo "$STATUS" | "$JQ" '.uptime') + printf "syncthing_uptime.value %s\n" "$UPTIME" esac } @@ -102,8 +108,9 @@ syncthing_goroutine.label routines EOM exit 0;; *) - GOROUTINES=$($CURL -s -X GET -H "X-API-Key: $syncthing_apikey" "$syncthing_proto"://"$syncthing_host":"$syncthing_port"/rest/system/status | $JQ '.goroutines') - printf "syncthing_goroutine.value %s\\n" "$GOROUTINES" + STATUS=$(getstatus) + GOROUTINES=$(echo "$STATUS" | "$JQ" '.goroutines') + printf "syncthing_goroutine.value %s\n" "$GOROUTINES" esac } @@ -127,9 +134,9 @@ syncthing_transfer_up.cdef syncthing_transfer_up,8,* EOM exit 0;; *) - CONNECTIONS=$($CURL -s -X GET -H "X-API-Key: $syncthing_apikey" "$syncthing_proto"://"$syncthing_host":"$syncthing_port"/rest/system/connections) - IBT=$(echo "$CONNECTIONS" | $JQ '.total | .inBytesTotal') - OBT=$(echo "$CONNECTIONS" | $JQ '.total | .outBytesTotal') + CONNECTIONS=$("$CURL" -s -X GET -H "X-API-Key: $syncthing_apikey" "$syncthing_proto://$syncthing_host:$syncthing_port/rest/system/connections") + IBT=$(echo "$CONNECTIONS" | "$JQ" '.total | .inBytesTotal') + OBT=$(echo "$CONNECTIONS" | "$JQ" '.total | .outBytesTotal') printf "syncthing_transfer_up.value %s\\n" "$IBT" printf "syncthing_transfer_down.value %s\\n" "$OBT" esac From 44d57dcb7f65a5d2549c35e2e095978023a19659 Mon Sep 17 00:00:00 2001 From: Pierre-Alain TORET Date: Wed, 28 Mar 2018 10:56:34 +0200 Subject: [PATCH 10/11] Fix 2 forgotten backslashes Signed-off-by: Pierre-Alain TORET --- plugins/syncthing/syncthing_ | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/syncthing/syncthing_ b/plugins/syncthing/syncthing_ index 25ac50c0..d0a94de2 100755 --- a/plugins/syncthing/syncthing_ +++ b/plugins/syncthing/syncthing_ @@ -137,8 +137,8 @@ EOM CONNECTIONS=$("$CURL" -s -X GET -H "X-API-Key: $syncthing_apikey" "$syncthing_proto://$syncthing_host:$syncthing_port/rest/system/connections") IBT=$(echo "$CONNECTIONS" | "$JQ" '.total | .inBytesTotal') OBT=$(echo "$CONNECTIONS" | "$JQ" '.total | .outBytesTotal') - printf "syncthing_transfer_up.value %s\\n" "$IBT" - printf "syncthing_transfer_down.value %s\\n" "$OBT" + printf "syncthing_transfer_up.value %s\n" "$IBT" + printf "syncthing_transfer_down.value %s\n" "$OBT" esac } From e541294f9fc2f6fda52a47a79a74fb72274fe788 Mon Sep 17 00:00:00 2001 From: Pierre-Alain TORET Date: Thu, 29 Mar 2018 13:15:44 +0200 Subject: [PATCH 11/11] Clarify the non-declared env variables Signed-off-by: Pierre-Alain TORET --- plugins/syncthing/strelaysrv_ | 3 +++ plugins/syncthing/syncthing_ | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/plugins/syncthing/strelaysrv_ b/plugins/syncthing/strelaysrv_ index c5a9fe3d..5a30f27b 100755 --- a/plugins/syncthing/strelaysrv_ +++ b/plugins/syncthing/strelaysrv_ @@ -31,6 +31,9 @@ Pierre-Alain TORET MIT =cut +syncthing_relaysrv_host=${syncthing_relaysrv_host:-} +syncthing_relaysrv_port=${syncthing_relaysrv_port:-} + getstatus() { "$CURL" -s "http://$syncthing_relaysrv_host:$syncthing_relaysrv_port/status" } diff --git a/plugins/syncthing/syncthing_ b/plugins/syncthing/syncthing_ index d0a94de2..7bfd0cd0 100755 --- a/plugins/syncthing/syncthing_ +++ b/plugins/syncthing/syncthing_ @@ -34,6 +34,11 @@ Pierre-Alain TORET MIT =cut +syncthing_apikey=${syncthing_apikey:-} +syncthing_proto=${syncthing_proto:-} +syncthing_host=${syncthing_host:-} +syncthing_port=${syncthing_port:-} + getstatus() { "$CURL" -s -X GET -H "X-API-Key: $syncthing_apikey" "$syncthing_proto://$syncthing_host:$syncthing_port/rest/system/status" }