From 83ce8c97b3416218b3645349b17b39abc58736ad Mon Sep 17 00:00:00 2001 From: kuzmenko Date: Fri, 30 Aug 2024 17:47:59 +0300 Subject: [PATCH] =?UTF-8?q?2=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/images/1img.png | Bin 0 -> 50840 bytes assets/images/img.png | Bin 0 -> 45292 bytes assets/images/img_1.png | Bin 0 -> 113246 bytes assets/images/img_2.png | Bin 0 -> 80775 bytes assets/images/img_3.png | Bin 0 -> 87528 bytes assets/images/img_5.png | Bin 0 -> 120045 bytes .../dashboards => assets/images}/mqtt.json | 0 report.md | 256 + vms/client/simulator/Dockerfile | 3 +- vms/client/simulator/docker-compose.yml | 50 +- vms/client/simulator/entity/sensor.py | 14 + vms/client/simulator/main.py | 36 +- vms/gateway/docker-compose.yml | 9 + vms/gateway/mosquitto/mosquitto.conf | 2 +- vms/server/infra/docker-compose.yml | 1 - vms/server/infra/telegraf/telegraf.conf | 9672 +---------------- 16 files changed, 357 insertions(+), 9686 deletions(-) create mode 100644 assets/images/1img.png create mode 100644 assets/images/img.png create mode 100644 assets/images/img_1.png create mode 100644 assets/images/img_2.png create mode 100644 assets/images/img_3.png create mode 100644 assets/images/img_5.png rename {vms/server/infra/grafana/provisioning/dashboards => assets/images}/mqtt.json (100%) create mode 100644 report.md create mode 100644 vms/gateway/docker-compose.yml diff --git a/assets/images/1img.png b/assets/images/1img.png new file mode 100644 index 0000000000000000000000000000000000000000..1e8631fe7aef94b154bab91fdb9148b9f329b584 GIT binary patch literal 50840 zcmb6Abx>Se6Fv$j=-`7p3>F}`yUd`$Ex1b{xVr=xEO>%z1}C_?Yk(ku;KAM9<&yKB z^L@Wtb*paOf2Q{Ay=Ki?dv!nE{d9MPijoWlDhcYVSFbSM$x5oddIb-C_3E`B0O{q9 zzCuCIt5=_1y^{oMcp4u3LH5ME&U|(7Q7hp~b zX3l~!d!rV5jNKwyZ&M5R!YN%7t;Z-`Q_JF`3uAJN?^8!6{ufOe^qhCv%Q9p8U?DCc zA-&G~D~BQS4uMPdr-yEd8#MKFQ)E&f4k~CIB2W&mvYKFJ_5HMw8E>2oI#7FIgzH%D z0Osh}mG;}E5Z8IVm}j)LBNqyEZliVPIgsL9x)`p)mj$U?!&G*S=@ZVjjL;?p6G`Zo zE^O$&M5t&m^pbCTly^V3p1$%woeBnq-=N_@0Jqk|Gys$)5fvZ~#6C0xY4s3NU<$Un z%YQqJGy%S9MFdbm^@$OwsN|7fJ~lo8hc)i7MZYZLpD%-)QefHtZsWcD_5Xgrtd0l$-xaW0LG}N2ut!3|Z?pP`Zn-5$GJT+y zFUMl0#^faAOZ93_O3Pvyou(HJCoiIE)eitBdXV;@(N;B{v}Yr~o`U-B<7#>0Npc&e zoTXUfcZUPP{}xYmi_FzFb8$>W= z1<0cfsV;GbH~+GgmD~cA%64tqyl&{M8T;3hq&-0Ase|mSgPI zx$un^7gcWI!=+MoU_skHUD`zVoZLG2xu&`;koomH#$9ns88&MD#MbTqPL*$%T*S{T zrL3+jyJ37YHR!}nLA2WK?y1mFU;xp?s%PEmr+m;?Jz%qkFk(O|-g~{QuI3;W2H~~S zMRl2#^_}p%JHMh!O>xqh5Egh0M@L8S)rz{69G}dFemxw@cbf$u4#9A`M}!oR^UF9= z9?_p~mjH>PY~(y^zNwi6FzqcM`iRF$c{itbpGWiVW`}0~OXo5eVXgyt1(VmDxpf4>HjQ+7Am==L`<8 zVXjyp??!*mBvEH7{}VGBghw~F9W8j&*Ve@N=z}Z5kZRp7F&^>{Diz|B5g66robYkp z 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 literal 0 HcmV?d00001 diff --git a/assets/images/img.png b/assets/images/img.png new file mode 100644 index 0000000000000000000000000000000000000000..d4b92567d59182a0311ddd485fea9de57b4b6327 GIT binary patch literal 45292 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 z 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 z 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 z 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

d+Y{0F3$cK0D0MkiJ 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≠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 c>Iul8;}s$3=)z84j>FMq`)BE z4bSjD@AJB^>wNAP_j=ZP_A3_aw`b>Z9Q*k0&yLmBR3gNq!+Y@H0ilYryzYYsn8*hY z9=YIPq5tzp8LRifgOCR*@~`!MEw+(f!4#WCyEjL8qcd{z<|Zq<_k~4O`3VayW=5Ae zMi=|{B?9SYyP2wv>4vi)zG*!lcK*V)Sn}=5)hk?(m!Y8#6xtTlTKV^mCdc?SHMyr# zxp~Jvl9P?~-^C>4u9$X?1{w43k{$(5{P*AQvjm`||1La&ihzIDDtgz4Qk4H+rSa!~ zuTEP`|L+>`m$sn)YRSYd0r>A4^1})L-x@JMa7x+I&}H>Z{-m>87dcKN@3hB|6Re&N zJ$34qh1Q(zY;v*R)M%(z7rI(~J@NOwYqDnT6j4{N{J3mu-U4K9tj_e=u}8rJ5~Pjm-_h>);_pL&AZ^{e!_D3c3$dw=`Y7Ek41bzl&?%v zljoF))t%N8wa1>o#;UL6j37_pe?&V~AZKgGhrVZ1hPi*s^nr`80G zjU|R^2?MYx;m_EmA@UEV+5_3e#M%aywLGP=RGk0Bh(0UISl=;>YjLe7a0Rqb$tCUC=FH?W)mO9k=xNZ{iWr$Cfv_d9pz)ljisigy z6YLjhb>kQd6xXv_&~CliV}HCIsY*WlYv7UaiFucj6YRbx1#%#Ait#i51HJYF zLG%W!=2wKcj>#6~FjT2?H%e!8QYei!SZvr-;D=YyhTs;AJ%x(iRr9uC%D6RkA z9uk0D@(fiLxniSJQ^vOssM?NsvWw%dyBus+G4=GEE?S(j&j9p_fNY17q8!mJ2RCJc zj~^RI3qCxQx#PdM6|PkhVvbJ)uAI;_F(tp<^ve8@iOal5ashsG89T`rOARVNXk#u(>J9ey#vY2Xh5JE4Z8;hWVeE3BH)R3mk78<`)<6NV?Fqa zg+bcm;l?PkJ4+DYw)EYYfXF3vHTqoltDi*C47U(8mN4nh9|i&!M3QYk@5+43vAARa zM!;E~tm_`Xjg1~P<>I=DJrx;JRdtL1B~&fRX-2FB(YP7FAnB`VVX(YZ=t(ozPAoRw z7+E8TUUmFK1DnQiQj8y?F@*X<1=bEMoVm{0wk}iM1p%x@V~qE%WrPcA+!DbiU5Qol z?qpUqo@DzyAy{f>PD3EFqDiJ`++%6)Je1V9)X_Kc8O!__c{-MODPI?-o_z~u*%N72 znk2i~2^kRqsD?Am>N^2wO zyEEW%PD*{r)CtIV5M^gmC~E}7=d4^b)YXpBCbmbkMX`toW2XcG`5`9}md;o zFKq`RXY;w70``vNXt|%xYY-%F%X@nA%^IHB&YjA&_#R;AN`ndCyy4Mq^L0W7i3~-E z5V*|7eWhU*m2l9yL+GnG)wxXTZ0A}Z{lZbT*`PMEqmKA_Dn+wZ9kTe$*V!^GQXY^t zOaA6}wa0#k{|RZcvs6gZ=n3l6_KfEv!y3u&a9iq>R6UMb@@z=Kh}qUp*&Y27aXb1&3JpGvh|aH=Kf4FTdSeAH2ONC$^aHy7=W9(o|Q?zs?&;LKipuf#XI- z>;>tr2o-Y@(0{$oLsM3v-{gy5rlS@$HwKC6WK7W?98tQznJ@}FPG7|}7Qq*ILzGFt zl~zjnNSn9W2t;gxI(n9gqoSIvhtqEku|6R_|J|Gksj6C0a3P5`dZySKn~489f_!A_ zy$O2#9XBI$7r-=*l?wiL%Z-noK6~1&wDtfyndZw{2HT5X47;R4<>yWcewvTWs;aHX z^+TZRiccT=ca56`EF3lE!g-(@ycQjo7&6j+G0SGb)te0mD!^A``y7*{9NlUaQsAyf z9y%QdSiFo2QQwrcb~cZW>x*(?y28Uv-8XjCj;k3J%mSh9Y7YAPWUQ=YBs3H+lGjNO zcCI7m%FCUnviqIQREd^GQ#TN~%$RF0qhHiE{-!~QhOO*tmoqe#;Ro?dAFTi8%3bi% zHpwVUP~A(6gdYV2*-^(0nV$*x)zNn`x79RXUbTx~{7DjYyQR$b-y+^VX7-Ol&@az))~UsU*+9A*A%@8r<9pP}HjzPH!R z2RXGDr=;JGi;<8z+)tsO1EsJ=A zDdPcAvXSH+-l7O#G6^$#SV!9PSUsCY`Or8~2lK;2SvT3psdhULB4s)E;q?kHm&G?` zZFd04RzLFSPMN2cB1Q$+%x7*CgqGbU7+WM;e{U5OAt7O;+Y;W7@@NIz>_KdoEB8kn z^wyf=1Pjv8sO|NSd+}hz!4dEz3QH}c_%nNQH5$~|OVuqsB>>nn(@4ClZv+#4kt2Vb=uXsQIh!K;wun&v6#XulHyrONsK?ky#XT#goU3u$sP3>BV`^pHfr@5 zFPjLjxsx>Wp+K>z)rp1rd~1?$#ev%dZTV!3@fi-^UV*&Vd(3N$((?T? zyPy;eIK>iiMm%KRJS+FhBhGTlGgbzX2Z#7w9@n0)W!&{8(rdZxFB$tiJ^r~BGnN+e zUHSMddHHbdN?DEXS9UTl7b)^@oU@zrBt^J}LHS@)|EokE4#g_B;5JIl<5^ZQ5uA#& z;{E;P)Y`qZuVK17v5nay1Lj~eryxPG=aS3olrNiVN>os`zz^TS^2fKj z1{p1^E0klBLgFVps-n5HmMJ645l=DweY-cgjI?55UTU$x1?eu-Hr=PYS7M8M7R=q~ z7=Da9@(eoi7L^x$c}mqAP;Mn@3(6@pC$SN%)G=O+ErnwJ>5c9g9YBqtro>`&9c=lU zz7U>xjXYOZizq7=KJMLVD$1ed{=KX`P$B1KF7b7Eh-7c?k)GU6<`?_-$ss=tD1P|& zxLtmG!;z#Nwax}$d&ud;KHpuEIE~;J9XJw+Y}I>GG+wD~JeQPxsQNV8w`X>eqLMr8 zgRWVUk)bKgQ0ORW*JJbdoH0>pnGl%RPswo|?Oeh!F~yOrER7ulP7#mZ8V!vRDP{to zU{6l)tCp$u_2IrLdh!)w!6F-i2)aT29&ZS;E`Mo)4eQqYw|MX@Ym*JpLrq zmbdt;Hy7o|JFH}0aB|=t?Zg|{e)0>sqa|wwQUAyN#0)>6eID{xS5Jh>@N+a_-;??7 zlCS|xODL$neAJ&}>upSL?+j)71Pi^R{mLJGvHMhjk(t4$mVcDO=7`C@2a=7Y_JMwzxa<9Io5VPwLMMJ#_uE!5I^)BS)p;alNuiLuT^1WDhZSmYB zI`yIc-t)#^eMtGOh)dULc!t|wglIGI=@Y@XmuFjlaBE{cs+gpsRPBKZUY$*xC5{ zKJ(s{lWwo zo46()a&C6G&&j<#L%yEN2PkuIMi)2Gk2{GJyKm5+moz$!?1hJI)!m|!GZC{aGRd;XNKWkQH1m(b;*GkJPRc=RmFK(2c(Br_?cTc1r!x6h z0#d}0T9V&NygarRjzs;>F`KI#6wo;?g*ZkgeV|}leNev`gNz?x|0$Eay$YHB#02B- zAe^zSA6O2TDaH0BUfv{>6#{zjIa7Zv6e1SxWsBNcj6}9I7qN;_u^4wCTAZ*QZP}JM z7t5Z>diV>pta2yiwM6ttK#E_m5ok`FEq@`BSHHmNJ5?#J>}5_oJmUJYx6WiToyB*5;@5g_T$EENLFR<@OUE!S^Vf4srL{t++@%L? zwLdk|5!fckde2kqHtXqB>&Nedf)2NC7tL2Y{auJ0@~xQ|E5 zIbSFSzGW!V`>MS-AC;@^W0V=d+GLHBIB3By__EKZRHyut$lHFAM%Dp&C?A_s%a@a) zGHH5E&x8ST_ihzTem4Bx{<7h=PmYQr=8lfDR8q4V41$`uEaQ_uO`K-c3-myqr)sh) zV1P%ll*|>1Y9fHR)~Ko1S;!^4GBfa;Y&GEYbEPQ8Z4f05bRQ4mEzI_-KfqDC3rrJyv?w}FN>~!l z_fcYWdG-$*!yJtAX6wvqaRyry;>vayj+EX)ajewStQqJX1))9^&&|*u3RDW!@+p4b zS?~;8u++4V2PSbcKUEn+{x&^xf4fC9RWp|ew%=Vn-eq}vQTdr@Q0{1*D^t{y$o3{2 zwdg^#O3iCi$4U>!EqOoVPk&Y*-4m-}`YW59*f7m*{y<^pAb52oj~>ynM>lHT5}A7C zT`VABa5m8Rovd*W8Xl0Eih#HiIEgUyXAKhz2n3O1Lx75wiw4_m`vfv(v++f*EFHqd zad^sZ$ve&IWJAL7Ct;QDf7XJRcY7Z@FV^8=6hCuY?-NYeGf5_JrJP^=TEBa4&an6^ ziYBr}%P_)l_j@cCqz)!TPkONSe(n~7>GqtUU$OreH&2-fZOCN)QH$RymA4BbMA*s4 zcJIQz#lx5FTf5oP-;AVmbD5>t$Riqa!3ZzgGWYd)zpC1ih_=xO0+6B=ItCec+|baJ z!@D0&d}8eM0bdrc0+pOQgbPp{7K@CGTW)u^^nRaAmERM5EjdHXLQl_P$Z0UKm5RT8 zqa`Qz(J?Wp6|Vhvkf&F$c^giHkGQ&VC_jS z0*4GOcL_ppNPE{?&_hjTRwI9Pi zuyyc>LZ5y9yh@^(XxRm;uco09k11aDadT7ykcESrd<+SldKQMq+*c96MFMg>_9h&RC_f)`>&cz`0oJRbO6SX$?4T0W+86eG=Wml% zCQtfBA@=zG{vx)+DJr>Ab%YAb@e;#4q!oYUtU+haueA2CeAVxk$ zx7m=34<+(|3u5l&15sZ$Gp3o`Jo7M!J;dVqe|ez%$If5)W;n4WXy~)MzV}iEMfRX- z<04yQfN^gpPh4fe{v=iEJXUXQu-|A?4gEF!KvflW`x9mN7Nho$i9XerE+q$SHa5>q z&sVYg-yT-+CPb9P_VIr8FXh)OEriuFZ!)cq-|<*)5H}IIAH{o};p1M!sE8P=|+)nA( z>graUed16{`G-SuQE+3!7-bn(d3|8dAU&kMwV7ghT=G*5dxIjtz686y`$${gEMz~# z%J=b8Hpq@pjagd+jNxuf9G&o7H`oWKc5=tv#q%ZEOt+f1B`@FJ6f_p)sP05IpEikl zUD6fV>Nc*I4Lid}76vJIS!M=?#}w+4W#+-De>QdxOWZ;4e0u;DO!Q-teHHZ-BW8FYe4GIkewUun`^>(?9_Q!RGhJ^8ff8?!~tXX9)|!w8nB4_*-i zCKtT&JSYIn8ZlYP;%e7B|I)sJA1~I8ccqQ zyu~f^|F*QXh7U-#im-F(=`E&4=+Hjii=lJwI3?%Z-ImWRKdfs%rdt- zQZ|O8f3poXPjq<;*g-7))VWT1S*{>*mTxt{ra%I~hyygHpVwQA?AeQ~v4QrqIADG# z?tm#6^FYI%#ONDyN>l#_z&?g7Cs7ZNt>C0X&Qn_)Ze;RG%Cm7VqE~q@xjPEhoJO|7 zsc4Y9doGF}GML-tbm2kA_Vb;AIB!@&$NdYUx)*TGvP2_)J4o-VIs8DRI3b!!AL_s! zx}6conQT4GZ37V@#Z*k{XT)4(c00}=E76fHada>tZ$74c%u9S=NL}7;qw}mo$xN#8 zVa3DH@u&b2RuA#Ii^-=%1Tg~=lt_-T?bo*6LhX{^&-yK_{>WChoRYa&S)XS?=Gz z24bMtR7A`eF7qhKh&p#;* zj~Xbo>YH1*mM`Z^kFPo=6R|a2NE%1w$Z7`UN9~#4$qb8-HYvIuBht7(-+n*WB#3JL zoq)1iNkXhJ9TU5}zRM;=ZBj+SJC_3zn$`ydwr}3Oj0(*nbN}7*e(*FpC6?T5bqlU* z`hZW+HV_~P&H74`JDadj=wdVtxCSmbMSI&${MGdpMRfPJ;V^a(;xspf2b_}ld&(^t zHsUglM?vdd2so#!6rfkwNg9Cgjt*TSSDTBtILAM>1`b#v=DjrvcY88a)JXZIoH(Gj z$%LKB0cz?<3hVD7DHW*-QgkyYMy%C(a2LG5Cq^IE|x~MA75p6g)+6Y$Cc5A#2J}7ZNS_dCKhoqL(4B3C2yncz8oMbC7 z*9|P3%q`$W`xb2B+~4B?>I!^Q1iM|MV7)P9Dt(5)2j(YIJ~QR?ZJ}*vmR2h$TxZnI zYYQ8S`8Rryf~!nmjdnm}*O&|@)2_6eJHDd6flLz8Ka@N?Z9E{h?_>?-O}{E}l|uQH z^)(LOw0ZAH!<7z=L{nvEkrgoqvsB;uyj6K_Q}J9%S#Z~8{&59dWJtUB4O4HVQwBU^ zRl**0iXi0H#&%ja$>wDQ|~dsB*O zb~j~#x&&q!Zf-sY;xS2@_X+(PsR=d5?hxBzm|T%P@m2-WoUle%y z-rcf`MPLt?Anv2jDrxO7+9!ZNrT}dKM)jc?A3t&xB${|ad2K)oOG_g1iX09a6OCkW z9#I&@W28OF8!wW-Urw~29?PXQ5&<20v^j_d?h0O>xI&IoDuVl~LsKoAr>>>nhr)N( zwbR=dp3lo^H*YD;OLabWu#wVHc+$FyGioWFT$8KZo0hoL+Y!8cky_yH&90eI1DatuFc=t?->&`&;zS3OoXTFO|_}MKca|N{K~fW!Xq{8kx4} zC+y@QO#{c5f(Eo=kJ;)$!m1zTtOd|^=+6pk#6KyS!8tieS-9$0ba!tKhb5(oRK08r zv(;yV&JL57@4q&?Fwy6@>QUxiL>~-F72hk8|8*K7A>Y4k|Ba_aL!V`p=D;8K<=qG& zj=bU=)~5^8?@!AgJDGYclNrU=jH>$5Imz&4JG%KMR znlkp}1rb@Tn2fnyJaCkEdEE01V|URngl(?*v(w3C#l~)S3^26L$0I!6_0jn7C4Y+x z!$vLaQ~pK{!YCvB!AW3I4hOa0Tjckd>6VsC{N-%YeHYLiJo)FVgLh&yk1?p-kA4PG zs4D^N#h_B%>FvY{kVUtzPW}|1Ut-p;UAbGxL*~(%z`t9dWdlu!KAo7l-#q(6iD|D@c6%MGoI%k}}T&ApHScr>5U35gnpn7@* zgxdn5{=mmOI@rXM>%}rk6afNXH3LPEop*wCbZtw2MXs*)qwnt%z_P=n$b?5*zdD;A zvWSTAQ?zB!nRG$i2-%B9k82sF&x=_Xzge*|Ewxf<;Ng^y)9#m9ul2|b>RqE}41XM^#u71_l zdz0{ldd}ylS=U$2!IhW|gY>wH#O!5EdON2Okq`@_8?%yoMZ2Mf{&D0DiWkq%r#ouK z$Y^#j*cc$v9075yyDqGzMF_>h-Q00E;}<&gowZ|E2WWGQ95r$__2eOZmzlu7Ppk6I zp9O(MLxqJCpVv~D{6f?dXE5J|;pfmVZIFgHrjxgLui{OmDQY4|rI}Dipz6}FkX^nB=Jbh}nGG20pXukQ?Uc(nC3T;&$OFN!N-V$a+t1Z=>hIF%0Rq)um znKNxt5tIaA7OhT@QgR{SzJ?t6l8k9Pqh+F8C0em-vh7 zSSvn5$%gr6R^0r!WQ1Sqt7WRVfj_dn(W-mNj;`nIzpaq<{h0`{C(KHkTVlo!4kW19 zMtke8smSLeF8VkGpgZ3~1zY@%`hD6Ywpf$4I26fZ6LTWB|B6qG3ofEK6ko=q#yTVY z_ruTlSWWdoWa!J>cQ%I3KO`}bXoFIk))swC)g#cTs4EcEbeW3SvGMC^FUL z5A*b|3s_+}J)L6F-(i(mv>+85P#${~QdTx4fXoG_rle(H%WO)?Z>|uI?epdaUHZ(^ z@ud4WSc0$Z=fwr0-cDEewVo@oNOxem7v3Ho3E6}6?5svM0lprNIHdU&hZ}9hsWN2o zP9K^Ve_vD#0CX#7)0!LS%2!s>N370Lou2rj~1E-D*`s2 zP7?0+&Nkb9iNgB+n~!Ox$*CUNOcP2}x>umwHGs2jL0j%#nz5P2+q+i zKs_XP55r&_erL5Fv-FYlVmn0R&8Bv{)N(gE7CB?;d2t`oVf`}DiQso-Zo%I8Tx5$u zCn#s_DlJSl#@+t#24jx@IZtO~D2^vlj4Lv>(2HJ&?rn+JB9w+Edze1LV2bGQPVi+s z|4Z?!_mJO=TYr|CGf^Cmiq2($PGupmuI;wYmrx$}onOac@7#|AtSwTc@_+D?_4Y483+CBL}C!PDNzf(~)4)QMjK!$?r==Olk z4JKqns8`OxL}yh=%93;DDRa+{xiRF|D^l;Ut+|)AHrd2cf-ly!Y}r(onR`4=1gna9o@zY-rDNc_e-V(N;=X z@=l6I`hZSmp)KlnJ#0VLxw|GOxa&_W_hRkV)2o{vSXf5r<5*WzG!gjYs6$WRsxy9!>KEBG-!X5#<_nJ0@@ zUx0u0#{g#@x*d+Z?kUY_@!1eLB|0svai@?NyN+q2J}nYrVHl+wUN-i}NgWI7`cZE| z@yD>pVV`ri^O7(++xE)_D+ye<-)&=aEE6FZ*OzT^?An=>0|8n!vXKA%?k5j;CM^3` zb0wNN_{Td3rlxl%?-@Ii`fG#xE7ISKe!U@G^ir_cBd&6hbAJbjIz{&EY;C|(0iCuO zWbpob#aS_oSt3YBT0Jc1Y9&19`@d2+4(M<6;G~Z-f$46E)e0L+Kxbq-KJw&o%;?S! zXcPp_L%PPerSma2cBqCCAqu6;6K2QJnR~4@zc9{RADQ?(S2|$Rr}C%uMq1o;pEUt+ zK3YSLt$ZXdDzAdpVAF^rE0oe1BihOvQ>bg9kazm1~F*llfvVpc%VQBWdH97 zS3*fZyH9Jk6v08|vwhTpxicqWctc|s?Z?@ul-1+|)CIF|(B8w-T2}?#f#aHDVC-{q zPqJyI+feE<5jM7$m~o$99y9yKl=0m~Za``aJDo|&7Ow%LakkKk_T>zLh@R=Yu<6>n z?>Di-2m#Qe4dDFuUu`IFMrxS}6vsM`rYE0wKV||gU+Pz9&SMsrhY&cfG``)Mfc?khToYFp@l(5afpCYQN!K zU%Zmc3L=W=DfUIT&QHs{h`)s7<5)+*D>KVYI7bKLbZaZ+NeVyqDd*GEmp3vxSNjHU z-Vgm+;LjL@yO3=(*XEHTIoytZ!f4?x5C-G|+mi`bFCd8DH!vBx%{h;2I>g zm6-_ri<9%!tX2f zVSRXSxnzBN_Ez|Lr&06n?(6I0iQvJuks4#cB4OtHo2VJCFVjTo*!^qvzj!d(uPS z*K&o4sv%pCQhg5&3lMF46fXtw*XH6+Y_Z6n_i&{=eO!{!IUv+ zPS#m70)i1MM>{FTW68qw%xn`UTXwBPHnN$051r8=G3)6AyfnBt&_YG1MipPJ z#SKdV>G?tj;IKv!O)!Xhu9r%xnjD>?@7F+{pvb&#`cqXI#0zj)@a5+Drp#(t=k>&b zpY<3T56KAm7fNUlgF`36YNX8UUo(ER!|BqFv+}u|X*{~VtW2i8{n7f53Bgy=b(NVJ zX=&ksQTiiSIfTXZBggf{bEYc^rm-r<9&fo`R4cvJUn$y9xTkuaD7OCS{o2O zD(iLk@WvaG_LqM zuK0|g6fMaVA(8izgNffgNZE@zB{We6O$hRbrc{(nZ5(FEa<_^4MV=QG(&oH({FEbl zRef$Q2!&@vz+J5GnL`7ndsI&V3JynaJ%df!;bJ5~;s`sHC5vQqN}SLrgk>Bo+`G-PWR2Fat6lW zd>b8ik_+@>yZj`-ty>}0#A~U-`f99cG{%VCdu^(HM^*Q0uNL4U+4-I=j#8v5xJIMJ zU_Z$}s8aC7P(!1~hs814`#H*_8F?!5g^|(xPa^guR80KqT6yV(c&181R6|{3260`j zU%;jR%pBJm9GG1jeP&5-cjzQ{-K2k1TQ1L~){Z5^bI|`4y=yAQj7%N!blxL_N@A|4 zhU-4ThgX_yzA*g56psg4TBxjmO)&vzPWs{|_x~Gr{l9?l^#5Ps?*IEn3TWlnJViw- zmRHsZ4T&vTSuY>`8&n4?-aC_x&k@xfvJ1Qu^9F3JMSK{=bF64@6O|9cJtk0(y>IBf zz?Z#=?8SyboIZ|pHv_0Z3wmQL(;%q^e|8((KG9b}oBe&^`4C?wnLYdqA-mOf3eijg za{5%e2%%d$2QNvf;&jH>Pki;0nzO900AqCZBLMxg{C6iqb6CW@8J zVyLFctH{e2uqi?m?$bGRF`-igAklX;6yqRMiO0vs8jV0L^cUFw?=O0B09;N=)pKN| z@QrY|OUnOZ{?X3`GywOvk+t`eJVJ?7ugd+LP}%=?)Jsns>(|0;Y}`CL;S=xC?{`Vh zDG{e}k0gAqoD?-KYYUZo{xQx3J}%G^n9Vt{#NB~qMwatS+cfMI_Ra-;4%cU*0Y#lR z>^3)VW+(nxGrKNSDg8aHJspbfz=ILRv&yP#vtX6PrkutJNy?9 zvr;;6Zf%9cBqqNH;tm31gjEZbN<91g#S`0mH#L3dJK?Ol6qUycx!z zitiNBXx@Et6!4+?TUb^#-mO?A+$ay5nDl^Kk~AMe`HZhX$)~1s>W2J&RYv~j*!iI5 z{pfqY@7Yy2n3xJ|+=XP-#nkRzD^F(yudPd0y@ws9P<9m|-GVr<(D84PQ`W1!PLkrn zVV_z=F=K`U=l`sE5)3JL+mV@7S6eM_hi~%`^NYb~4{U<&oiKVWG0|)JUt7un2H!dO z<2Q+^ZV6lt`&@M*>c2+REcEXCLN_T|GyU_M&}!#$hlb858QT7|MM9!m-fWSL-V3>< zou8jr6!p4_c_H*fic$H%-QP#XZi*LY;Jre?9h&5;qcuNy6LX+9+*UhEhqU{q`Fgs- zzQxB)xc!r+-kH=0PXG!16o6$M{@7jP%I$i6&-eD6<&^NaSXA1C3z{|S|Kv#_ULw+# zhJj8_%admXL(MR&qFCI-NG4~^)Mrar$5@RK5-Tmyz1G&Fk)qz6n7oMLM zFcWm4J{TU)hIU@{R`@6V0S7*ZK5b#zyF`bk> zB>+AE^WCYYLE{pZezkSKVyT$Mjm#y@OpIn5_s+1&FE4@?kSoZzSgT-+~02Y{>`1M{3V~nxZ0Y z31*Wzzo+F@#}MpCR~lk|98z@q)2%^Z*!QY60nRfviq)JCFGpO^_;7f$%>91s?Jd2h z0Kgw3m~@4Pu$e}GV5TJij9Eo|a!yI#pi|^rDQuo_U%cN<$0Igq@6n2WInu_AzE>=+ zbkdgYGIcU#o}IhW(VI((8Nj@_6>^o6msjgYH7lc2Gr+;b)}p)93a4g1G|H2DZ?*3v z2l4w2QE(*4)D!#p^~wi>@v!yZ^mReQm^JfP5@LwB^345s;4%840clwu^Ga8bz38MRQD@z|1Yol#^MnSeY4oz7 z%<{obv}k}C_t;|w+TbwkvD>%_Cy%AdTz`W5vB*Cv&H)b7A}LgTKt9BUOBsm75E93s3DAU-)BuPXRImBzO4mN2` zdY%=MIlNY_cHoj-r1J&}C@X7*K~f{{A@p?t^b%he%@MZyUs6P4U%?j^qD!IvZ`qZ4 zHrGk503H zB2zz@E`)u|mF!hyXAvo3NJ~VPs}qI9!s@3^WJJKW67p$;g}j4uPP6@=?VT~+$UppM zb7RfQJJAr9=Ojdys<*UiRpSL_WkrXDY)epE(lZEOk(erBfD+~QHe(4NDvyp;t(b4+ewRVud`1y7>EM{CFx8?M~6}H5O zRGp;kP`ymweXaRiLs06%yo=Na*z&{tg@RtA0LE{gPQRpICLQQ0{mNdcuX?6S0w4Ja z#~<7Z`kvZm2)Fzc^=d5S4DCSVo_~`_US2toK>S_|4Qn?MO3wXpabWvi6)zHF%u4ls zX$8^2zS#`U!!B&N&;)AEw0r9u+j0(?1c16{`&67RCHzNmMjez~f+Q)X){TV07o2RS zMl*;mW!KBQC_KN6u|p_OXi}JkkDbY}a+B2i(x6U9iSMh2a*b-8kr$aPfs3AqL3hbt}wHSQ2 z$iZVzHF--W^d2?w00}mPHYvSSozCz6F<9Uhd?-znz|h@=ujOu?4JWa%jxL) zdlRQyeC`N=`7+_5v)nB+v%CQy!DdjHnm)a^W_w?;(=@*U8`$cnWI#nLkF(TAG|q}~ZjC8D3S zR$=_Upv5`Fm3?J~JH+{wWMdD{R*JlwRZVA6BxLs5IpX4~YjFJ0dVW^9^RB##9@(ntn7j#pPMwbmL#h2hM;=cF zfbHgmAjBuML6>lgIC1|aB(fwAFG-d7xjxX%O}l$xhB7HBi62rIRi7rv@CjH4X-W%X zp6H~er=)N+M6~CXwGwjg{2rH_FBz6vs?zT2>(eB%=SU~2bN5JF-@*|bxe7{Vbk0RC zZU4a(JUY|zwgT>P^5o#9AKsYuOpcR!<88t|)zm>eLs}Cb5#cp~3PkppQX}(pO?Dx} z#ZlFblBE;F=wmZFs8ZbrB1+`AARc_NQwO~P)YYp#WM;A#ASdT-P8WZ0VsIh+``9|l zF?P&*P&?bN-`TNFrcWGlb0Pt>j7(nfXv4u6i<7!J!qQ?(^<{%OHJAAiB3oN=nS&kPh9 zX>3Dt#{So(hleeF`k$M*nWaZhf04thoA6t^95d-v#*$&Q+}(5nzjO%FU;+dq#U&fA z5BwgA93I(PIkQVyo{oEVnH$E!^wGHs`YP+6D*o5fcjmV*@2SdWqG>_5?Xmqo+%O1afKm_S= z%}m5X4bxk!nNEe+STBR7g0pEKWb&dKmW;$8v4 z65}^%{BL4XfR&_s&g^5BFg^??dHsaXFGft!Y!CWq#@=2$tfQNW>)Iycvmxv;{K`Rt zvS?nPznPj1X_E41q%<(ef%m2!eluKu${Y0q_y5#O5>wxZb7wVo%<>o!R+kZ%szuOS$R5#_CPk_V5?526b7NJO3{M*=iHLJLt{* zHDXp{*88PbgqjiV5ZB?dE!%EC%_R{_3?ERoE4nBLCfFSp0RKQvgs&%f@$HSjfp+AV z?{fKsaeBHfK|t?;3HGbT+U) zMInaaBU?MWB{unciJ*pXPEq0??@DmIAO-%{{-xRx8AZ)SI6-*WsNsIll^e+P-CJyl zrs2t&%1U)ByFD(c4XNiE`{`N?g%`dtsH6L1`M)wld9@x?>70impzHfDhAd+R8m5I< zjT~48A@SZTv;vAg45wIX$Bx#V?4J?mtf`kxxg}S=_H?4go6sdiF+aK+VEELOR8%R6 zD}uG+oxVT9_)5!^k?c|6@?XZp-jBROhSc5Dvs9YW<0tfUDU6Jd49~RX-w749mN7>% z#{tR6Yb7U}PCh?9VGk&VeIuxU9lB4Ttnk`} zna;Cl`Mve+t~{O;&xkVNY4i}!BNfVUqX}I+Ej_lXm-XRlHsmHw@ucPY-{*Tz(PuFl zaZDCi9itcfV5e3c>D2hnqs8qlh;#VdDQz{TEKjaz>dgTx%RJulQ|<<`zN@WJ;u+ty9^n_eR{gl&%<40Ocg$NK7*%JI)QAGWPz*jF-g# z-`-17!%6@1X8?*2tzHf?<241G#(FCdThY6&|5@{Y>plOi@&7G2-OC~9!b6CTyZ5$W z`Jc+weJvQ#e|Sr@Aok+RCVKIWO6;q=0?_%rzto*aKRtc;9~#^Lv8VSH z|4|VCyAS-oR|gZ(nj&iJ`~RHMIW)9Zk{I6Du};Xh_(X;O|J-%Ga;eWBo2Q+(DeJy@ zp~c2AlK&V78aCraGphP6j^>(Z$&mP;;pF5+Hc9>DacSZ$bIm~zc29OIZh5eBnJQg) zDjj*SI!QdM9!AY^EO7M(M6ItKzq{8UVDOQy8HHQO`R>jaP^uD)6g>EeH^0tPzbj$x z<8j(Qf+u8VM(p-(8+m3)eo=IH(7BxNqKd1c{7B^q2@Z+>-jgS9HZ{bbYshy+nb!lh zJGN@xc}*j|uAl*F!2CM7m2Fl~6!Lx|^X! zI;0y!lx~!emL5uK1|;{}1o+et0l)nm=$Ny|94)FY-`n)3lt4O~Ux5DFj_j|)5&byioF zz!%Y=#m_X9Kpy3F$rB*0Vb@+OJ8l^cv+*+pCmibKr8y<0iRcsbSxF?a)EI*`!{L46 zio&mf>QfgAgfdYO<`={@;9!n`!uXwVEVB%TELEMV)t{%kZ{ z)qn!=4roRp3-q6`1>{kJyfpV{5K9O=W|0RHPopSIWCqqGR}{9122~FNU)JS;aC9P< zfldk!fc%aq@X;`MOeY26YY1GGDld&b{6Q$cBz_TPgA7kB_Hdc$`%<<1 zJ5qO(qZ)cAlPQMRW>Jra{b`aM4WX%tOmR!E_^|ImY*a8GeUR6@@+wK22{{;^;u)O{ z+buyuRy%sqKR1)nQk2x*Kgtz(vg}*&HrLsjVkG4OChqHGHE!NtO~O=T;>&lNQOBDF z1@&j!t=lKl6ho#)D!?GA$+W@49j_*%<8c9%F_+NOhEiFDOVM)}4Las<|B(qz;H>5N zExu32J@?&Y2Ca#jtEfk&4%JUTMu zv+?~3DU>ud>^5y$giP!9{U$r&fsiJ_~vRf z$gx8<5_H2kMyJ`6>d}T5y!vtQRq%}u+R-^R zO!#EJ6eS#_g?98EgWV+BxaA7|R{VUlwN`UnUZRSY`S2F|-+YTl%?hRHQwfMoKa82| zb>0yGN1J5V(OVSZ$-fuOc6A~M!5h2utiYPHy$}g$0?_gG3$AVQ%)(@w}&J% zc48=PBIZONGc^a(YL`+ec|Vn6+LzTCmL-k{h^QTp#K##y-&?4X2=)iD@~=AAa)hEm zw>Tm|?RK^}areEnZ)gm==I|#Y7TVFfQr<+Ix4W2|leU}JHmvyWh|H1Osu^~i$x<`JSi&#gvitfcGlI)h93BESo zLC#$^TtaPeQ$8x53KMFG3$uP}-9fm%SV*58M*Ko}C z!&N<0?7XGbGFk$H!us1&(j)H2(7m@11dOEwc(hV0bdEM_A*(0ckLP%a?SvKplcoqV zwZ(hDxf6QZ`|i{%u(SMVlWdmb^+ZaYqWYbFNB64I_@;bU_G(9ZAx-HSJSz!Pv98XH zQ9;G^SbVT3)=Ye6frX#k1#u<1*sJEO8SB4P(_r zk1zD|2r9esg8)e}bQ2Sk!6rA3(o|q?c?Z;Zzc)8?*&r*)91rf}_eQ|EzGS|9F+2sA z776Gs6uHY$-qCVV@G3)Z-U}aW4O(r>oDgMUwQ3_WfhCrn@ivn;fw?Z`=EkhuU}FA<5oAP&BEP;vLDdR`Y}I zF=69&q`{xqhY`$G$FH*6(aLx~#Ve`2S!ho$EBAmkx{a0P?rO&eK|LNmfylDWrvv-Z z*^P}@50rfJ(-R>+R%m1xR3_ZtWsMxkZ)waM^Q7juV%3Ndn7Gmg*?7?R$>E^-rXtH1>wog=- z_69e+uw^^!!&SN!-E5dsy$UKn7L!$aMU2T=P#{P&h!BPzk`OEz2Ya86@_UpSI{ZPg zq;i`^xhn&+GTLhJo*=k!=?(R)OJYW^D?HtQqL2hKJ)*GC4ngEaJ?;iMRs7Ja@4Ru+ z03rf5x7bdyoTF}cAo$@%k3P+-c!zTH_M<0S@aU&7Kt9KK#-sD59eGH0w-8BY9$ICI zqG=ae$s$e*ueBcAYC!9>dYWglq=+L#)c`w0L0Y(F5Eq~G)Y?HOQfF=tfl@Pw z?M|{mEn}v@xK0?)lT538*Y^I?Ct^75D_tCsATR5UlfrcxSY+tK&Z*$WbSQI;3xOGR zex`vT)wbj(3fIk|Hf>|%7DUiXkpX~Lg$s>R2#6;)WUjRP~p+KuL=NG0JR9`x+*y@w#{yLP1~A7 zv9o3m?Ipg%N3N4vZGZcGB*Lc=qM}$QJslVcx_86Gh8;xJ_U!{N*!?iC)Roi=opo?T zBkU{taQQNB?Yry>Pf4K?S|tY=qH6B`*x{*ot)bA^%(vE#8;WK<45y*cLH$&`JT)8e zut~fS5pM&o_1X)`x>&le!tOaO4m1mzc7{OF0`c3Z_YTa+)$dAX3%3N^W6hQxOW&el zbq7cFZb3h7+k&gX5W3kY(&i5958blkQ3LUsKp+h9Aw@jwu|*^$;Z(AgQ>;3u&f?PjFG_ zNCveng;c;;n}qtXloW}**o1P+D{&s!SXk2}%er@Hbat6D*gYWkLdSUW{MB5giiTy5 zg0RfX&o`{xL?3b{=K0ug-E#Rz;K0jxU&1l`rnVJfYX(Pa_b6ap;ELEi=HP> zo&*K1gLQC1t$KLgGt`w(xLp(%KO)0eGXW=Nvx{Rv$an5_zZ?wLdbhO5D7OCG9TTUf zEptA#+=nvpO(GL7FEyp-NqC)tL@SFnelr)Y&CL;Zz;W&Q{N~U?9^wAH_pk!vy<(L2 zkJbzZim6VXQ-%vfNO!1Z0I&D%Q?P4ifw9+x8u$RGgNQQdJonbRv=h}y$kJxjRPave z6h4y_Z(nnNjpkGZ&=@Yx;*{FZ@S%o>C&%ZxrS~jhNlC9MxVhghv&Se6?}+XD4u$sj zs46?C>?OnKe_x1sAs|LYVGXuFo@DS9Wl5PsTP z0dO>+Ss8fC9McHfe|hn3F33~-%bmmqLw8s?p439dYGIj!+bmqmV|t$9N}9*w$MocH zmn1{^DOm%68y7H_rrxJPV7(rxX==`OE+1x>zu~_EwBJ4GAWuU3CCC^FllUGW%~3e8_rjkUFRT z#dKV&B}J(J{|Ej*H4iP(p!R;nCl79GgUe+BSWl$+k)XtvlvQKMWpI@D<>m|_3E4Bq zEcFiG`42&8DzI&rnejHmW##4f0L4JIB@z@sMf<@nt`zlt_oZ;)gJ^QTh8 z%<-e?q5Gp?c}scb$Hhm6UnBePF+DGvUgB>+pI{CpKJ}AF@4~usg#~hwdyS@d!54KH=7X_7Ge}-kE!*h^?5pUw<%TBRBNXJnm!}kgEVeNnZZ@ zCuIJs^4v5hPaCVThxX(3Q@+F@mu*<Vu{c2;}N`Sc>X z1=|Fj#K5xRa=9(ipT!RB+GtSX~PtJg_N= zynL7E zUD!WDs(p@pT?i03r~rp$Jm5XOekoW9=C#1l#QlpZKyBwI02MIw6 z?G9=D_~p8`s=fnM_gg1?kRrmrFRK5Djep+d=W68t@_|Y5IFJk;33$D26~n*lnUUnt zHdYx;x{Pl=s#i>>nGe@Hw4ku9x$|W*`IMN<;VaC!w>sX-n(2CasB)M`kHV2hfHe9u z?X}vS9x?x9$em4t1JrbmuTBSa2nSo zOB7szgxaZAA7>$E?vU~#sXizM6jkzltYQ373tCvZL@B+UhQ#p_nr*w_z9KgA^+DC7eUIsGl=(s7l_;(SqDth& z8AprPF8^kRc<5#1-QczAD>2B;5GDcNo0e*l&;`fK&~iE{=-fe2cl4l%bM}qccB$S> z@8E`JZ=i*o)$w`6T7!OS$EP9t;8mhZAB4s9#o^W5fd3`X7+}x;o3c9H-DNTRma}Km z8AUST+Q(AhL6$nRVXUzQgEfy`Bqz<3M0C1xvo|e#f_B_<6FYsP5!>!iy3@+&LY&S} zDl{`vB^Vuh0RFOjUPgu9KU&G?ioE4w-aCDA8nr<1e97*i{C5B%{Zzng6@*{`3~v4~ zgZs(T;oz_P`qPjD3UN0&#cahk-X1%6X(JP@Oqp57Z!tF#Q)%m+j;MQUSK4ihKc(^; zEesdKc)m`*{J2b+etCX17uA8NXbJ~CyTq9FKgB#7i_59>#kEw!+RIY(e}YD4NBm^c z8;u+!`Dv!6Y!$b-;_y>Jz5kkkSEMH4hdnw(AhTY@QJeJkNQ`K-+d;PLyvRMtV?uIw zytX1?sVI>9WdQepH1-rpsxCbeL=lSAWMg};OBw}^HZV3NE;({?%u zs4HD22jdst{I~lyG%41;%bpdkok$(u96O9*dT=EHL7a2@IIoFWLbY?>`(xl4oe|R0 zPlSJY<8;?Wz|3pYby~cUJSe8;$wVXh%9dXUf_8#u)l-ocE(=75pU&n(AZnbCj!9n^ z^UTj&I9B??7?C)0bbHP5l0czZFQD-1M0Derw>I;CGl!e9NdK< zPVrpV8oz;!ZWSwOh1i{p(V5h?lEprb=y_Dr8Ve#csN23!H!|b9nh+xkn~WcQapPzU z(XR90YZcOMLyyL&6@|Bb!aEi14L)7h+ea|?^HeldFZ$Ya-)L8A@AxF^FgQsNW+Uw+ z!JLX{#8^hSR@g5<_#1iQ04JQW(V4ipc#h!I61w5p@hIfsBK`5T!5ET1OHPgJVw6)@ndkvkErR zL#Xrdq=Eg$o%>oc~lzktr>i zyoLJQenA|eE5pmaJ{h-1uAW=Wbo0h3SSyYW)}`Lk)z>rT>;%Kx z=hh3PD8{-WLsTwKScLbBEsrAxB(=u`K|n%OOtxJIm#EldAi9M}GNwGx=NF zh?RoJ^FjpI65hj$?cmo#VETynwNC$<5))~;t2tJ5nYQt&|YstqH> zy557?xq@=;?8_ywl5mdnwiArFic--F;D0_Dqsq3^IxUan**I~!(fGa`$UF}o?zqiE zy-znwOjv~fiywHR3MNJ<&%Fpuy*OUnQ%WxCeK}GSM^2X!_H^a)1PWIruOpFc-1;`3 zQ(8Fi;N=7rs@|cCKwTZPG(7f||4s@hamm$V`@nsCBK?M*yZ{r?qrr+DGLV5(Xd-xR zZvcFTUA8&(^24Htjy=b9n@)aVX=wf^-*`3I8#Vp*jAB=7u3p(>wYV;bk&>`k-xG=R zORL^m3&@yB%z#qgS5+UM1pzVs(knhli2PD+QzbTO!$ie%{qiS1oV5lQH?nBggAnT{ zl7#W6zsN&Q`hplybxUS^Zdq+zEyU#MWwTP*yciz$pVLeibs06H%pSt4C-F%Ye z0X`Et+>i=Zof??iuiME=jgi2;T>5@PQSmut`xWItpyKlE4s|l$*wO2xA=@J1kcEZLkJ)Zh*l77$B2~~0= zhGVQ5e-ZPqF-GnyUD3b;O=9+e@C3l5fYPU2NY!y_P~fyU_`seH)b+YdPNdqE!iG^d zIQjKpg&SVlDQ6Z&5zqJ#Ri#UZPziz5R<9tLak!jq7Xj2t?c1les_`mM;?$^N0@mpX z&4iF8yF(LAqno{~5f@5hJ0I@l<7_OPRi1sKTt`Soy)7LH7sMLQQmTu}n(H350hdlj zHJ_=Qt$d|Ov}C!z)iN!B7C?Bjkajvk5@W#lBO^7dCZkwwzsV!3%(a!>iQDf}3yG>@ zCG}t}6TTFig>w4I+a8j=SWC#~br?ZCyE*RC1(+;POF9=JBkTj<`W6_EyrpoC)du6b zIQT}G<&l|>0%>kXOjA4x9OYNp>n#aLpEq~zl-xQ^VPKn?7$JP>S09fCwUPrU_T(BG z1F89+B%RNi_c7zRWi+p-1m3)3?EF8t>K}~fr!nn6l<5EB18DK zs&4*VnN~T!r~dv#(*Kf0Dovw2(0^Ly-u9B_9@^kCoT?9W9Pwb_X>QW6zDJ}s*S&T4P^D$C_>WQdau*~eju@xeP0skT!6#>=x$#se|0YKXW#y$wN|UL&zCbn) zM_P_$9ioK6B(MP|4`6)wlh7r>9c*4O3k|F*0Q|DL_Q>QaV3_^6#)59kjiS{C5f9|u zNpbWibxovf>ISY#qW_iEgXSef@I{=iimnfuignF>j6f=hv z8;s8XFj0${Ly)>n7nOC?9{M4kGA$En5dxeg?oqRU=A|DkSmi4UbZn@81Ahz(;{yr~%%5>Lupg;A3 zy6N-V*K!0NomAAMg@d)tMps0_SjD@hQQ!QjrJkes#FQ=I?2eNVX@JQ)Qgkp&Brd7{ zQ2YDqMbn!!j;!hhYxeKw3Cia2n;fL}QRoU{xylRlr#D2TpKFZa<;@IB6eCusj|xF zeTo8iB`eIMac*BtKzsbl{e`VG(1k!VL8*|$Bs0#iF%xqzRbn@V{j4)4mxC`RTw2`j zZe2D`md|ddnJ72r*3|qrcXbhBbt{}Bih>ZXUR&4M(q|HC<~3dQbw%^exyp?lf4X&o z>2^e#TAODlh>dT6W)zXQ((bWCwmVabW* z-M99xIQX#m_iOE_=h1^(+}yWCo0{G%ZtrRkEiAqNQ_KAykwwR#eDAo^QsQ)-&F6IW z2)Rn_48t->-Igjr(m^}Iq`yr$Ud6_wS>5L5IuQP6V(d?Q&Yx-ucU~IR4^2MJYsgv= zoj8Wl&li;prfrO3NBhR5gfeXdj)!D4r@LE$_s7fx8PA*5fO74h!|p9H2xZk|#o_VT z@$yvb!WsP)we;1w`uX<7?9N7=f7j03txoeJV_1q_a#^fWp%B{V7-}AP@{*tZOCgkl zGyitPMi1fLN_*h6qTpX3)tMJyY|I))CMoRClor-{{#eiYdrc~eh-_>`!(#=Q$2G#2 zD+LSHVglP};`-(Mp$Q#9;Stfn+9U`v4C-v`xX`W__BJt2ee|~S_g}4u0m|7gMdTM? z@7pLRzDmx^+jw8ip$y-;>YItZK|X;+A4uM)8g^ZjUtzTR909#QA+!yl&)}-W_QAK` z<1u?nx7CQNJMDcD?8OmehTDHKje7xXg1RU^WD#*W+`h~D9l$EPz9e$(7(jWS)ifa(9 z&-$qsIQ1E9S={M^VyTZ{kUvic2** zqr&10pgRr4BA(v`M)8H(atO<#!j*l0k*RQKQKS-FQpTWj@BFvis6~+;gLF` zj4gW}%VNc3ny~juPa_swkl`+LJNM?buKBZk!}2pQw!-8G>U#e@0Yz_Hf@1#{%r`R_ zsTwjcoX$HRsKlw6f?dcO-8N*@pWl*|_}^x0SsKoTw#aZ*s~^a2dpP$aFOu+_@ z&`3_zZtCs;slc=Qj*)QH$;McaOxaN<(#x@gkT*O$`ZiOpFoQk6>Rg%G%&TXxrXNnX ze-!8j6>W4Snfyu@!yOo&uQ>%7#-8G>|6DOg5xY0h+WH0S*qIpva6y7xL8iOY%Xp65 zwFN)B;QkrlEc70OtBM#4P?a7Jdq+uR0=4uHh-*`1J&5}~yelOwey;xs_=khggSr+x z2?^uf+bJE}-{=4AUjMOZDas1~7SR*TpF1#t`~`7dS{%<$5?t4!>Hpy+&I#dM_ZUgT z;?iNMpDA^i*12J6x)A3DsMYcQ9KKGK8#a*Ni-Vp1BSrCFUnx`WNd&x4$%ht!Vjxbv zP%JzLNHDy-qNv3i6KPtHwF36YrGS(TY5IfJdhp4;Nihrwx-G|_LW*S|sY}1}0<5QD z7*@1OJI?Qo5+rA5s949Pca+!c`px3g9d_MFy}FidkET{Y3g!5h1vHHtzM;OwKn%kEpL-rXd=cs-;d`n+hF9QkWC|Q%_wVG7kaTVuX^eMk+nDq@vGnD!(Q(_- z8cf~E)>S&4@y0H1kJ8K)J4q?VRUoICXlv$SCf*a^APM)a*6D#YAa_9BdcNCwe6m`# za|2gOO<@}S&lpDLdVqtT?X~TuRo>CVjeDljPqBcFVvh~t8=-!P z!*pAel-GGx*?=!}LfjvAVGzUfFf(9T{39^mQQIcjgv-e!A{mtIHYw2f1mVi}t%MKy z!6G!ggCW-05v8)4R@fhNdv*3R2`#9%7Is6uDC7dCd#=^&+Y|_&P5?biR{b_rOE2$g zSAKRtM`;ijA;=%DuHuf-K+IMSLNpavl;oYHIkdG)z2@j7vpkRBbHgE_yGq{+<$RapW=zxMV%x9+Ie`I^APe>3T zP>HP5{ZBp4z9TeJ7wdPw%NiK9)=|*k#S0Poddp0QB^v5v9Vp;ogz2({VNwYVCn)`V zn+83>4zgy&!OnoW)r{%3b@N*u1M@yqIayztGxRYrij$FH^NkB7s6Y0B@lW? zbLY}-ct&s0%TSCNh0KQFo$CFLSf%>PX7YX=>Od*|bwb4DqF2ie-KsOsRDGB}gg{ct z^c6D`;q~hPaHTSb_6gTI=ZjNj{pM2+I>}S4I4SSQ)dO)v`PKd@Ed@pT%g^?56{9aF zElTU1c8IUZ#Xn6I$rYvF0La;fWOV>&n8N2Yr==aPeG#&`4hCwz?{&skDc<$YYp&A} zj~i*|sjsr}J6l&>EA4lA@MuH=Q*aBMH&36{zc{$Xnigpc$L!GyRtQ!3S|S!~Ms5(- zd_X|1MhClJgc?A9eu>QIOz)gy_8v@bK;v4w_iZ%k>Qmh8c{GOmKz3JISk1yy@Y(QL z+aPSz*cc|L-?VcZq~8b}N;aCq$3a8i%x%a<$YuV=63+(=b20$2+NgE$xCOAFcEYUr znWEl)uC~gC9&6iGMb9OdbWv~O7d=ywi3>m8SeEU8+bQLQgCt@w+~abX1Tb~=a9Qz< zI`cR0u*kD97K6AB`wc#sXAo}zUe%4;)AeAK;ybP;aSuC&<`U|`rfeTH@^IgGMUpoA){?@t-?za}1K~-7xdrnOm+dEI4lbD6;jwr+Gl6N|T0faQb}o zM{AfkQGU=TW7$RFW_V6zH9B&CC3Que9?i6pk&0~Wh=?*H{LO973eXkl`giW2YX`DK5K}ft1mtr*dbS%YLm)38X9ZI>BJ*tm0_ys!iXuUOi9mWgVdO z@%$FhkClG1eh-=?;ZMi$UT5+naoB*teg85;(`NbV$3Q6SrYA)JR+7ItS^U9ZJ(>~) zeNPl!wYzdhePmzP^&`Xg+2c;Sg#i)_z~e)~7N32zB;dTI5N!H|^OWLoet3vHV=h(} zEdSAc#XbUURr@YzN=LG!8@4bA(KQqBeh_$oeNWaY9F$}~Ray8E%tml2#Tr{UQ|*72 z6YiB^Xbwp^EvzF)NZks~pC_QZ*v2l)@Y(Q8Z;I_`tjpu&RQb>7 z{~d_W@&Nr%J1oCJELvjKnc8bSV(2r|Uj}}AbA4S_zXX-+5sS*?r)R^`w?b;{#rqML z6#Txl?40cPEp0Fq-Sj_YCc!rdYGZ2|)R-WYG>GJ8AJR2j7ZYq@IY&(Q2w8ACG1Qpe zFF#EjLixCMClh=<*^_~^^*h^4lNpIC10C~|FCq($cS|7 zbtSGfxI$?Z+cV}5k+B0aG-TuU#k>v2BP&k`Cj_O{z>Ex))sZt7$ z!GO`K13Fa&JTD0ZP|ugu_|b|(>!X0OeFTSw zNG-YW}s9osd6l%59F~ae}p0{>j)9Z4L~vkzzqO&fg+;+ zcd+OW;q3EpI2VudiWozb%)2!mPIjFwUW4mKra#BGNq|zjUa4koNzTAoK;XRdnQr*z zwV?WQ$b5YdK`!cv1_h9;53xG=bx-d;z(FSU?_~gZ4lEcI>#C!tlK?_6r7B^tU6z*y zKWIsAXWF^MxIs4n5WRQJN0+9^gSiU%aU+mA&`stiKECBFIG4O*pdb^vP+Abc4^ijt z3OBc%yLf;3x$trYn4l`Nol5fHl!Uo}PzI+as7+~OL`Oqw7ArIPIS&D9rU6^rpCx8L z(y@QHdI9UgrmM4jA+pH#M}Nb z8Lml$7}6UabS)-jHaajKR|t1RKPwiGf;V;`e>Z(t{*aH|hL;+P;0NK0^X|Tbm9DsP zw$GQ+?ZKyDzy1qHbz8NDwn-IR$hHv|_+zjonOV0 zI(jZ1bM#W|p*5H_S%1N#Y*kFI9=34t5Az9-LY?DBe1z~l@qb4p*m&nS1>^@Ddi>uD z{_dDstfsM_Y$6wSl!A6eWf^j}= z18%Wv^gmPhyFY4qa{L(mx;_J$j7E~Ay@1?#RA$tEdvo>eNQ{Wz{4KtZkpvcTFyQdr zN*9j|*uSp%yJzNaqrAt)#Zjza>XLY7*9;H5_Ky`-f4QJrpMHTB(`SGQPn#a*uZnUy z+7vEpwUhjb9{iuj42*GV4PcDdr6RQ(81d<;8+78{n`9sN9vad`-`d$&9rkC^vD^1( zlKv5U`|lcTi3PRencI5Zs|AUNheAmQse3n%zRkaHR35nF;mLC+xS>G(iW*=5Fuvdu zRJr}l!ksdp*s{$!b{il9eE_GqS_jNm_PoxUkGbjCBHcu;y;sDwr0sy+U2QA2!vD_9 z??Uo_2M)-k+q&Wjd=-8jYWs&VZ8RqSq8ms!wvNV=BNu~Oq=(PNfqy;Sf~R751f&I8TS41I7S ziT?gPx5dQgH7hJP$fBc5!w~U{hMQ6RQ=v))h++FfkE505gZ-HK?s#mvo*iL8HhzaG zzTAEl9tDf|k69Wp1C9VCntxe!{17(*McC-VWKCGIVJk5$XQ)K?`>((K_VTv}@-kY} zfNy8IM_r}Ab8|w}{nZ-1evBE6JEyRI$V~Jy^zQ)ecdPM#U&WI<5Uixvwbh5F9Z*E; z>t_{csVl;dy1Ce0!x}!<=shu*lK59*=8pu#f2SDm_v!v!kzQB$9Rpfxi4Y}<#cL%6 zcSl>JeShPhE!|8V4f3Nx1m?YZHTH7!(s>`Zem^D~=>OvRpmNZrCUfsfrg~?ou*fKs z#Z?65c7AJxj@e5_R^re7I@Umu#`A=DJ$P`g07l^LWi}=+y&o!++_`$n^@JyK4M@mn zG$3~sA~Yik^)H)x0c9PycXdi(mPpvz5#9Xaoap+bH+tAIAe)v^-UagEQi~hGb%RZW zz3bEA9{~mzBvH^xU>&aLb*5%dX{TuZ3NQcowzW|+aZpVPW_)s1IMU&VdvkL*h&Ajc zU;+GnJG(N(a5?=bxy*J2067@k;efK2c073L!dLg>jC}Qfycynyn{C&yj z{#ycIbyKhp)rG@>@-6?v@G?yp5S1HLBrrLP|`w2I{C3rJRkVyjX9{g`X_L8h|GedN=bu!OWE&kwGEErD29br z2p~4aSh3~IPtXnxPH)6XH$;9evm{x%E3=X+sq-``;M09B*%FTK(pA`}Z7&>roLoLO zEY@bSsKE8^LfZSj2Yg>^;!NMKiQ-mkF^^JwKfPozBxlN<{hhr60e@+X5Jt}~Mt!L|{GMT&L4~K;{;-=gvyJ2lcJ8J} zpQl8`46%#XW($Q{XsOkF13UQBD!p9r-TLV6t3S9adzV9JsF55aF0*Sirm^D17A4KN zSVW|NIJiM>-1+oIS-MC_-*7@Hb+m!1wA2Il=R-Db< z&~Zi8kaB$RmNUAtOwkC{gf-rl9h|c1`Vib2H8hOYjH;7xWyDWbY8ur1{%E8M*bpRt zR7$4hz!fIQ^~KC@*D)Hj#|~*gJ{11;b;OmTS5@ZWFr$8>L|9@wIGGENMW}BMzLEqt z#t&h1q%QM6x#?C-+D4cb{Wb8Rxu_XXz!^})>|WvRAxZ;x4j(WG4TUP2v&qY*i3e|3 zIhtH4i}RV~<&3T7l%E5sk=+Bil5*uRMgf}IbwZlvE7U`wF6Qpn(UC=Z^={UJ8aS-- zmQ9hM#AeoK}0vWvmrfomqdFWHm}#I(sWvp zOkv{LZTbDPAJ#V;&M3Fllz*s7CdihBomtD@IC^o?}%KOtP(1rLtj;i*3p>(6X@8B`UOiMZmyNktDiKm_w1m5%GddUnP1H7@)Q7!pV-02_Wo|9Gp?U%M`4(~4X&vO?ubtOL zU9s|>;vMm!$}$^AR5SMyoZf}dN=NK`_X+L+4tb$Bl8@>`W|CR6L%;U5&b8~@2(-x4 zW2EVl9CzMl%1_14A#cI=l@hBngiSBsGlwqM=S@Y_ycoz!yD=i(3e9Wg1W;i&+Yi_5 z@8RQm7n{dXqnQY(jr4i9sGXDVPQF|w)p~asL9A>qez1T+Ug(< zZtheCZB5 zI=sE+v_3i}BH4J8GqE`mB*UmJ5((iI^&UBpknUQF60Wq$#TLcm3>7VZxku5|l!&Q!4%5r?nL1ZshbiGgue^&c-fN-+Lc&9PX-DS@LRRlv zM4GOzUZ+OXCsPF5hQMqH-_^B$S9VwRu2m`aPAP*0D>B~c$FkF*K*^Gh`%RN(K3y#t zoP+5g5-_kyFJs^%mR{7Ltfm&yXWwah)Fg)1Ku4dEj9b7DuTkLy5`iXFp$++VgoRa~ z*1e?qNyhe6TqOH#-7coF;`kZwvXWLl(Y6*C$joZX4CvIMMhWsb(qKBh_{HNYfcN3A zu7x1oC`c7I9}&UNe_{1etP=(*=6~ECgN&@SD>(3}r?rH3(EGF=V;7xDY#v{dE3hVNS>;jZMhC8gz>=PP5*L(Pqn{py+eL+G|7AZR9M>=9y2NVh>&1+%>k$} z0vcER7x(^Cydg{cu(70bQjg87?llc5t7CZFgUkn*(SI=2KW#ZcLpx&&I`mC<mp2pf6Kw5&ExlQJTe1O~l%oS+E zX0z2y|C?_iWg_NT&j!cOiRL+Q+*~^|(0W25lbn#yle~ntet^X9he@`nbGCI&bZS|X za6ETjIWsXg~o(ZNOs_3?#z-nZ51v=T*Q1&)R!Z zBD}V$8H?^sn6&^4?T>W>P-8%0V0Pq(D8NLXXlXlf>WAxX@LIIP>G? zW}53IT3)#S)ETCrs=z9@wk-?E2e>JBMO7e8v*@5u zH(D#TKJ80_^?;J6akRmCkIsI&8fGT-_wtQB^&L{R>P+3(7WK(N9~aU29%6~*6F{B@ z+RQ(NkiWwiG2KzB_8vSrRQ1pos3eL zEt9_K&@FgY9we8ygE+c6{VdFDfmEb6K`NHF55^dVcq?utdvC>SL`iQ&{eWGkS14s!&IDQ8%mX$9_J`^W9`FgHQ=!d|4IAo{RJg&2IW!@M~^(eImYncs6`;YrtR1U+%S+^#Y{KdZbMh?#j80B&{FG{o^fVy8Xdxr8jQ|zBcA2D!R$yIr_2Yz9 zoI`DB&Ze5EZflv$#)eC$c4vypUQTy|Y(FKmWA%u6tN=Rp-VqqJ9ME}vBRFS@^@JiP zO-IZRtKr0Ava8p2Z|Ku2_VewIR)_JXuLO|Q{r*;QcW&wWdhaxxf`POG$KPlSBvnF* zPtbx3sXjtGBF+QbRYKv*QFmfxJAxv~bEYy}(DFl*Rjjg)oa7#BV=_HtB78%cYe=nr zJ&txZhH-O|3qK0Tg%A$#64i2tg3=bvLO_BqHj>4C9v&<$&u<3BS9T<4KIco>)a+P( zUri{){r;KBo`x5x5ch>hdeC&d)a%I8w=Q21Tyh#?Qsdq!qaUtFDm+*JKC2~zeI4Sz zF`Mm)e00Lw!?tp^Uqt~ToofEsR~~R)4Dj#SAB$sS;S~ml$W2I_zyELN8mLe4&nI)?TCK_%7`Nr7_o7DnE6yZ=#bCs2E=Wr?E>KYLMu0*&}`}%lU zxhI(HdnOF3`c3oGsp%2R35NpO*c6sro$4;HTwSU1y>L%dRjAHA^ASeKl(t!;JA%q1yI^Zw&sN?_UgZ5#ATs$H~#0gRL{#O`4 zDh)M<(EF*<5nsRVO88|^g2(o@dcE@k=OSrhS}(W#It_3JW`6$aDy`<;XQ!)APSMeH z&@UHT&by0GJJ(hHEDB&PH*x@f5EY&DB_%A@U~oA`hnkJt^yx@x{fjfoGDGj+kCEs# zY6}*F%O5|E4!;(a?kVAFYif@dI^S25gJ=&TV6G)r(k z@3e53KAPlPekv+thz=Nw4KH;>ybOJ{)iYXRx4Y|WoXa+)kejqmmn=@&4Hg&QmSw1q zChTf{@Qrnx@rs0ms*Q_7isn3TF4cpVr0As1v4Z5P$|a1HpBI;ap1Z4A`>du{2uqPF zktfx-4&W!JKG#@by8dOa7ijW*{nJG}Z{pLPhp$d7U}AbX(7-7t-#9yq?Cc7ny6Rn~*{2s61=W02JDQvp9yXqmWd{Dy)WWSA zOY-Fi0V-&Z=hFGfl#b^%Dtf5pvDR1oUbU^r`5|5X#zP%(zk$cIgEupR=JY}3v~jZO zlHQt}+8skm>x<`{rt#2AMD1C4-=r@*?b+h|hVGedP(al+n?x zv=}}L-y_|il@pQhr@EBM2YzY)VqjC1H%XfbeDW~*1GQVj#OsT+#OE)g$e&e6OBxxl z573L|joLKPOzLaUEuxDtiQVA!*8Hk!>tY)#W+;>Mq~7~T??nd*ZQ4783jGsd6=;vL zvdS|Hl|+6?SDLx_oyp4L&Y_)013f+Sq2viOer+DRi_b_Wm0$AtFW#LLL;otm5vMr} z8-xp%Kx1OK3!Oajwqu2|e1yDDp>yN}p+mdq)Ac7>2;`T(7f)5A-1NC^go)0+I%j5x z7x{wrR1)DsljX6i?|V1_Z;5tJcx^VwtrfC`B^6cLj^1_W>81lxJd&}(t$;Vx`lO4uSu7b; z()|7A0Jn3P$};J5(JmbcH<_DmyRE@{M9W`1Iqz6ziIIQC$Gomv_FaZdlBKOklfai> zn+CTXmw(|vjn|i$FFy`M?fv_Ss$nxoarK2O?tMwX^5($Y*P$v zKX&7)LEPlHT0uRk>KU&Tx@vc*cZcWx1ix%TA1g7=<84U?>D~bZjf?#6ODiQ zsL-UH`OY#uud3kI>0-WaBKKMXwJ?XBhGFz9s>3}FY>ggO+Yco(C0=GH?X*wn78UEa z?~my6a0<=?4)zgGndP@Hwc7cBb2>Mw=<&I;7@nr7eo5&~OHC}uApia~?gn2gnypK( zg`sFcw+l=3+ijJ8EEiOe2wQhOZ)sDvXioh*G7OCT5z&W<%r~;%ke}F{`&sWPKc}EI zdJMaNQy*9tK8w*G5Z^bbO9JtV4(=?VRJ*nV^(09zpT;^oamEd--eMHZBr17;WHOlu znEyVqg;~1J^4`3h&QY)V7Mw*Q;lRsw<#q0mF6nxM^%U@Sz4POFebQUHJ~%#|XZyv= z<7Rf1H$~|N##74I8?RhpOFb@z6ZLK+&GaYstoi0SB_AKqii`SdjZ_!8Ha4k!?Vkuy zc=}!3C^n2{Yo-Nj!<8<#pI5ME6 z+W3fI8nce8p=l-C%m(y{9|MH(99=4q>k1Ms@mp0h!Mmx z!0Dl&md;JR=>Djd)e?GZLssAR%iCuHMMjOd!=Jkjfdc_Y?skt!YZ>5_<7<6%ef0Ha zRg&YY&u2M(RbJ=MdR|T!PPbeL0{NY2=v1Ml2<~KG6paxjE6i$ho8#$J7mtIkVvATl z5ri`It(~w~=%8xg3`U&a5D5A#E$_4Hn`s^D{I`#vfj-_wOZ=ogYC*A*_m;58;+a#n zivxwPNa(^n|0Rk?j~xqBm^yG4mUJG8+*^_feV}tMOOJjdbh4r(pl!8g(BYyf)Y--L z-j#TR*E}?a?L%#Jue4zE|3lnchQ-lz(V|Hp!958+I3y5U1}C^faJS%t!{8Qz2M@vB zU4pwNxVsG!Y;bqGo%egsJ>NO^JooRZA29TEKXg}D)!u8Zy?5n8h6(cH&SFYsyVBz8 zd}>_L3y&3gq^nhmem3*AS~^KA@CU8at%Pauh%cC578mc-`J_gFREsS0O5ePbNY0QQ z=0KT3?}Y+U|7)@W)0*sHOVyeO<}EsGtePuK_q&B*b)2l0=Jw)k-a%E;)Blps8eOnOU|zO)pkrrvOM z?d8JcGLKuta`{PDdu5p0Uc{|&OuiXzAA$a0V9k_V^p=sbj;YUDYB8q~0dp-??o)i` zm__VC<}h7vOT8~Te$AP9rrh{E4&xsSa(ko0%4qED1r`TeX#lb1V-({+ zZ?8j^O5Asnk|dDThNeGTdbT-c!)YJ01^0bCd+NABWA2K(5a~7^pB2i2EE5IMSZ(7J zDZTFun@W#mv43#i-IRwQU}6&;;j2=$=MU*R@^_<0Q-7M41T1aaebKh5zXcTSM2@>EabLHL~ z2co&E!HxKjJlZ*-u?oktv%0ZFA0|TUmNesj%#>7_G_b~Q4dcSAGTNgglM!TXe*HX| zHv7ESE4`vWk!$Dk7!H{+1+MPNO5re$jF9c=mK3rAuSnBQqFH*-)*8er8>He@Wz0fj zokX0h$QJmJWI`8|~Sm)uuvniHrskZYH7c)4)~46m*c;&4DReJGz7umaT@N%Tqzn_2zxAV#Y%f zCrpsV(u{r<(Q)Vxp8g@edZdlAO#JS)N@Uy#tDYV3UV3fU;5^eqx{nE?_4h2)oEzbz z(i1hhptheLn3|-t&kbEi6H)guA=_EI3og#((GJQp8-ApYOl-@qZtV%0SOE;Ppg_=M z^Zfw3sXt-odgCiZ-w3|l!!k0^BP{Sg>i$0T2-us}nS_e2SmTq*4VPj&v zWnRT=(G1)81@SmJ<2l#U!OI*;p(47_{@+#28qb(?n}WTicdQ=3(#Le(ZPHHUJHg_% zOEW_5;anLc8C}^j7Xeb1k2e!1^;M!KLxQP%zGz6_io*wjTATW{eb>+O$KQIgHd}-IOKBg!Nx=ymwP5EPQ%#{k6 zORYq_Q5)X9mLk*J8w^ZU%)ME?-I)!xRo2gqz1ML~FIp%K$`sF!ZC6&2xP^a5Y6XmK zW1ihXDtX#kRHSqnueqABxCmhp3d5%82=o5rL3gb2#wKz2yl8`>SrJ{brvAxqd0fd9Ut*0J6q(|Eq&I7an0+^ODIXMM;PmoRd0t%gmpLWo zV&1{hv8sg3PlHv;m)pf>sCPhF_zi--ZZvB9SfY@T|Y-q4sMK zYk=*5kxEL^vKgXu$OQy7_X$iOPk29xmGLG_4{9NrG(uf%td;#5XAkwsp**B#q1va8+^U zCL#K%@pHDh$T%ZS=bM4gjgV@F92-A1zdCHAPuyBlEVWpv>M>#MA}eJ|D%v2vm-g*c z>~`+ak9kqLRs4p9Qh-R4@_mmx)+b&LO=JQ?egZ%M<08okJk=J5W`eT25gIzd5}bci3ekYb$(_%XQrgZ--ca5EnVnf;Dk%r84W< zF8fkMz$kjT#?C0_rm0i*KiayeKT1yzjK&03)0@ONOrSLL-+W5Xd~a&?dAIO313W^O z?xh|qfmxKI>z-Xk;=02i8<~MvcKT}~1)NbF*{{}!yix)RqCAsvG9qk$><`!z1@mmx zA9?vd`n^{Rn&R1ZZ~ubZC*$O7Y0I?z@_mYOiTDV@@4VXGRPy0T6Kyp?T6{Hm9TXFD zOi~S_uoAuu{acED)*ogb_{gb|rRL*k z^JROPOOEK>i}UZXsnafG=Q(|Z&L2%OdLg~C=^P)1`7l=AIF@cWeb~lCf%noy77Lo1 zrWzPFKwLgNZ}SSuvwALyUEh|!2OXEoskwq3$fi!miCSHv96P%;%B zQ9RAPoV$L_sQ~Jrm?b~;U*4Up8ZGoeh*-h$*8JZ*u-wK7{?Jcd5f`~ALAo_eBzism zNJ8Zp?Vd+E=jV|nSE-5Li(YW<%u2`8n2Oux=LUVx+KJ>qAt6ZZydXBP1Pc!q=NN01 z%Q29y$+9aoT7I|Oe4&-!=yatsWC6kN@{4Cn6?PXF;vk^6_?==I-mL!9Nw zu+px|B~iOh+iPH}8$K9;NH*am2g#GRrw1zrnMx1$=5OgEzLG4%80=?Ms{OR_N@k1C z{Wf{mK(ePFBkp{KR$ilG#VtEoP!^Apkj_+U;5$cXTUK0|UzXOJ8Ui~Z8$tKeLMThy zV}n8aqZsGW4{b`^>~gYt$0sBXj*G(47XG|XUp;mjmMZz(p9Lc_;12ag97m)Wv~siu z*t4ZgNyIF$1PLZ>Z0-N%Sv!OAO z)=YhjJ63JNb}O>B*nSJlg*Hi~U~{#1R@Z{q-BiJM3C8Xfu1s*QPp8} zOS2D?(r$E$`9IoEwY!K=K5wGT;WL*NI?`zD{Pid7zMwO7!lbZ^jt?desUi#%oToSU9<4{ZVdY;tk1 zWKR*@yo|5ysWwDfc9;ugc7%CFX+>zyYEX8L_W1$nK`J|s_fRh1%iH7swk>5KfFA?e z!}5O}#r;dU0qrRGzZeXF^!t149N-}TU(@t|=|s%OV@dY=`lkytV2KO_2w|X&-~H=w zmc(`p&&+^MPC^0FZ_ou5ma5x|{hA2FDowxD<>FY}!mX4Zp=T2J??pCm|6OaVgzg;* zE(P*Mm6YChb>$E?*~A~bZaRoi6!+{MTfp~(Xft`-(blkKvM0s=vuSAczdW~^^s1SW zQAE|LOhAA{u@Ueu`wOs}wC1@p8)`63-(bKGh$WvoUSHCfQ$Bs9k?7qTpPE3kYmc6` zv>}ZKxPrBD9?tUIQq0Y`h`EgPs2eKtla2lgfM-H^f9K@jbAy>KaL2HPnZc#Cz0g#< zDSjm1)v=16pC4tpI93Sh>*wZcWdKkRi=YFd@w#Mmd<<5ae;5&f!6Simz4sZ`*wc`+=Gz+ zjLI^p7xl1a#!q^B!KoldI{>mVYg{??RPRWX`H;(&A}q2;Z0@0jkr0bkr#f)D=)r zF;)Nc3|FYaX=-;(?o5d%*-)pRNYg~=mj;KKyMN||S?wi!v9q^O=M0N8RO;!k8$1ro z*&d%3_;x-dLPC<*vwB>Lx=nq}n_X7_v`WoZ9adv0F(p`8>#9tV91!k|kroo6sD*|s zt}Iix@HkWF!#0YIZr&iSLiQ+yHQKj=VbR3R}5C^Tz~_Tq); zNw83&<+dE%#@5@vJq)<<)eepy-5j`2qfFL1LYKe;8KWW=!URA)zgA2XSWgeW>KE!P zWlb>>g|wz1Z|Nk+BK36)w(Rz5X;)Fqc=z!!=BG31k2P-AS}Eqt6BB2(JMlH^t=e}o zU6nUf+cS_5!r08>!d!_!rIB)ddJ8nqq0h)aMd}nXrws@+^ob$XuF1TiFX%l)XQ= zm+M`D&GwEbs@_vD-(xENmKVTv^T66{fiHjpq|$elEsjpr5nmb80q)etSbOCxWNuM8WmQic`z<;(*i!zs*~VFlkCArm;u0XV;4N3oxh3IRh$=sZ=0{X4{*redwZE zpSCLU<6`#|2^3InF0S=9WR#MX8SdFQ|HBt(>v15f2{9ujN!2H&-4qARZxNA;GLUPm zklZ07MJumI107^2)%3LR=cxa2kl@};xvqM^Q$)eVQ(M^e0c{TqcFY_e@a#S$20DImZWmq-Rr!<~`y zB{5O+6x-&-bV*cnbYl7C$<@jeo<_OAuNySiACghN>USc^88X#Vzw^)%)A$1O))VY^ z&z+s`siDLvnqOwmqUA4J18g6KacCET3YB6tFc#C6TIhAz0_ro(h@Kon~~tu{i-P8rfsVN5Gv_Y9G(y~#QO zdM>3_A2m4b-A0PtQ#oX~tc>cz+w^5Ws`-* zLFdVAo*R{$eXytXF>nq5AhK37f-BC1f4;-(#DWY%vgc)@_uliQy=mFr~hDC*gpi8}eB zc2n97x_i#4#wVX_+(r+L?XWhqe=AN?yTC2^26egRMs=Dz)>*g3O;O;ZaB`>&o~q^P zjShe`ego2(_;g2XSjb$1$@INSWR3%Ti;SQg6isflxfo=tOm%d8Z+XFj*68*lSOzdS zehmQ}YO=PQk66WADFz?k<(nti-wt8?UVW ziVj;Ix5I#4YR-3QA3fv4qMP&NZI6*N&-1-8B=lSylLw)%!YSoNn(gmKW_Q4UjBZ{3O;dlv^)C+Hw$o==WDfy=Z7N!D#LbodLh~>q;C4*+ zW|i?nstV_}k1U+Fg65gZ(cVsm!^HyCj~~+|#(#&?&PHhY#J(En?MYo$N@HBwF0-w6 ziehq{pxZUwg_tS|Q6A4>ryt?c^kpzdT3kU>I=6e=KmL^WB|(#S^52g(nEy@~vacjm zD9-55;}M0FOXPjxzR#X!zHkruDo1C+yOSY&v|kP>mbPIL?*0{KsL|vjq0(57D%l<=joQoU2 zTJ`=pDcTi?enC6x3EPG7G~Js5GAiob#|a5XO)k17?rg0_srzK^jDs5ZZlejzlY{o% zT++OZ!g)i?>n3_Z-o-Noo<9YXMl0Jc?vyS=hs;}qa%nS3*yk0x1%J#2c^BwgO|}(V zGXFCn{zp_n&)5N}H)_`6U5Kod8fQ5*lpR!`jwmkpXtWnlOy^3ZDEZesp6jsw8{@zV z^_0wz{nszf`X7-Ge~;=2{6~SlZT;_a|H68pEo1%5z7YZw?H3^301f`|-J=tW=vaq1N+u!#X!*K z2u?d9)e6E`+fq~bezRLPXJJvuqJ++a;*F1R-{9p zm4&F15dsk}Eh`6`U;Ot6`^kBus3G%pe|WaSIr@mPo7;;Eal+%O**cx0u+@DRXiaTS zixIN?n;T>o2Y-$8=c+DpMiv$%jHW!ums2xFS^lmv0z?c}F$S=R5kFCaU5K#E7vc{v z_A&bnLZ6%ZCsOd%wol)p9x$bVQ*|=_O8nP;E4GANvF5-(u^7j zax|;F$W_9!aWRy|WyJZedghM2)&tR*aIJDS^5XH^a}JH^%v|Req6nge0}5Xgx_4c4 znk6anOq_{5cK60>uix0RL8&~b{+HpRZ{ORN&)(n#!E|SBV@WVl_f+ydmE>>qMsqU8 zvtalZT;__&t0>gbxWmd(A7SKjgQ9SO-zB~M{Ar(O>G2UMm4H-O^2q2zs_&P)HCnMI z_$sbS&>>JFhD*RdGMy^XKvzsu{X^=546DNhU;^ylA{@XhK->`w^@pF|F{8(;*HtRQ zf1g-^Sr=!cE+37#op!i9ocxUrL4oIMz1M5~2qc8W!fL{A|KNQa6LfkhEBST|+z|3x z1)o(n0Yk`KQVh(zetFQ#%?6Yn9N|fAxnV5FeA7M6{@fku=ud&~BdPfzad~CDS)DWU8w78wM$X?UaK-B_$OINYfW!Nv+(0EPWVvpX-4D0<~ zmvQ?lYVABC!~Wr#ph~1WdfFKWtdaibe2D_8W=26?{0u`S!NGQi;MJ`;i}x)B6El=* zW*+2OI?4LD-)^6!JrK{hzeF|WvZbNB+y6z!{#DcH(;F=2R590WWC=`z?mQJqr8p9F zv_*328IqpR%@l5a)`;}19PZXrEPnl66S&0rtAAJ85W(*UI8EMBae0E&fk+)nM_&Xc zp0qr;K7YMmeUlvYEimI`Jx%%-cWIC<7z7iwGh@+RGLD}1BHA7$6L)Apcv02laDGZP zk_9NOEscC~@wH6xJ#D#n6vH}a$fdJ?E0@9aM8*j$RNZZ1p>u%_r^xa>@-c>l zg^Yli-2(zR*vXI~Yq1X%q{|<0k1fRAAVyw$i>#2!AC$cDslhFXqWSD~Jbq6M;Z76* z3ap$l$IF^=J)M zUg&B&O7;$pVjoY8bX#4XmuZC_L(c*g|GZ=Jy`u{^Yv^9u!pK^jCvz}rdF}^VMwYVc zo|@kys2KiYwfY=N*6fcbY9obwJgvW-b#)%)Ryp;1ECP=4Kdr(d74!}>;Z@bzj!8Xl zn&|7Q#Vv>PYw-^tfiUCQ$8Q;ABUI8N^`%<6O|9V*1x|NuffYcIBtW8ng+m5hAC3bWJFUm|P$NRL!edj(Rn4teksr%CH zNOFFIGd0axxU>ZP^$MJAzRU3zf7EDgY4-XsWf86r=I6W2Z(F7-qLxTzo!eLtNNP=* zW@Oa3&~m=q{)q2$eVcK8(yulZFwj;TC~NTwGu{UE6_?qV^Bs^sE>0yCjVy=iLF zp0G^iR8O_2$o88hp@PsD=^12@6>U!a4sj+vAdepjaRFkaX+@YU069 z?P!g&vKWL_v{t;%#p3V8+5^6(u>tLUw$8|JqSSIVM^;q|M3q z_d!wB^q9>tZTUz&m1-A-H@YKlg2T-z4^$(boV@@!squH8jBG%CN^|j!%ia_Lu1Je2 zd`q1oYw@HW8MaVqzeh+b+da*~@FX`i0_#fpDM7u@D15j7W(dofl8y((K@F_|dPUzf z@p(0gCoCn(Hk+0ASsgvp$=_8I@w{nz>|kW&5hFoTveN#_Je8RH8MBoRcc4l3-Nr2U zbQ&6xRyz}FBPqUvZJGNHn*!Och+{MeH&?t~x8or!I0m#)y;dSTxD-L^eERM0t(Mm#5)w4&R zv$@{1Ib0A3(8$X(;NZo7xqmEiyS~s! zR-TY=Sh@FO$UDBsJ*-3HO7a)HQLTMsO~IZC@t@L2qToXca{7;Ghv`f2pw)h&x?qJR zukhc8kYD1oR_hh(J7CvO_`9XBb)@W@g{Qy_W_e05#mgjTNr$tN_I99y>}4emHf(hH zJYP?16-mA056REF~RL)SI$d@cIUDBfk$~jpvSzP@QB+bpccBzB#(UZ?JyakC({zgm!5Cx=9Oec-a<9>Qji2{4cGb4R*BjWfI;?53eRZ*5WzE7F9`?`Lv)0^h=>CWtX*K9=e?;*X zYldoO5GP(?yw5_=Z*x&-eK}&0yT%O-i%egM6Gl>&widG#S;VebS#?TvxY8OGSdMU9 z1?HDpd!O80YvU5t>Gw0(&E6U1_nQ83IFsng9}TzTRUKU+=QjnT0K?-vEDK1zp3vnG zdcy9ByaLU}C%nUzme9`c+}!gr5yE_KW+YvCy-yt)SM6PmH(Epb*Efg3j0#K&5<8!phEeyYcU?gjsgUa6O*LVp>##Ov{Yr+&I z>q{_0Q<}~gmkP+^bNTt!!b5p&Y@My5;@lj3s^)EE6-=;FZSSXlnrF0jaBy{ZllNyd*)(F^7XQ_) z{8q4m4d4BX)j#{_vX*QRODtl^qwQ}0)!j8DAW@BbfY)@(;L1Y9u!yFE;xj{o?bN7sy z^Ge^P)?8!vv`(ZXfme+w{9u2ISN$rDZ^>lw-qhE#*v7%tAt100Q!?sV123Q83do$h z>8|s4KjB+Qb6Tb=)|Yx~{{(QV07C7{ucrtuPT0 zp0*?}hzCGT4;=>RT^c_YtY`4gDx|*idbAG|{Os2cxwXES_asswB2o}Ei4noB{&5L0 zo+JfDu?#@H0Ys{`FlJZd;3S?Q7j0~B_1q=d8}Q>lYa9T?(a>S~l~diEHO~%u)Bo&T zJ^5v{JrE{fVNgd@P-(zeJ3YNO&8LdKNy+XV434H1I2WZ@L$=9)iC}=+JD=v zRGkc*)-PqbpS0Xou(HbKOGE?+1!c#==Ad_Kij{;Hii(7#kW*QSs-TcQXJlr3D!9B6 zM%rv-v;GY1YB0B_N7w?~5D-HDKW+#$D`g2y26-#n#(&Dh33~d`-JL4GAb~~5x93-< zzX~#PIEy=(oh+nPx}l)jwFiXu_kO(pXP4IjQjO{QGklcJef5;6t<5-NkK07)IWv+L ztwp%}^59}LZGlH?3d9y-WMf_>ASR~s=6?a$yh!G6z8tXDi`z?aczE{8i_}GIY{VzG zB-EQ)npQw&=I3~lt+8;%)&Hv#fqOpRq*Y|#T(tCiuyilR0@v~nXnq>4&P9QCQBf5=uG1WCc!T*Pwb&`ca@Khq^6=bik zgED^>ZO3&k_Q8#)X-)qaJQ|vv>MsWs11TpjJzGnfusE0hzfViSIg-1TynZqF*mUmk6XB1*(NRL(q-ae@r9I=I+_(<>;XCD!odIZ z_H}5Wc?NU%W zIp^+&viZ^nGcWO3O&6Dilv?%=wwe3#8&K z2dCL=+S}wRu3EfwEb%QrtYnlkyY7$Mf=Z{|`$m?<`CN#}6nRGKcqKJ8cPqPxmP~j6 z?rX7A9TgTZ-T`OXZfh4q159?IaT^h9S{+1; zW21o%tK&u?EVUt-VwST#Y&$+a4^D7hmE~`Jv05Gx>w~*7n+wcg`FPRu_dlzA^z&=c z*wpe{^_eCs=vOA5R|Gis4Cbsv@m~y$===P>{MsCx!K>fXYaii~y6H9;*bwWY#4JQj zz#J74Vo|aP$x4a#6h&D9Qc{epju6u>VYY_bb3vOPYy}~$da;FDwijH$I+Lp%_nQY z9ByN9(@ilvE{Cq+M^)6eaWy53j%i0ZtN1u zdTlx_-zOg#IBC0X=|jiYf}N)0w?VG4Ki}AS9o4bixtWHLoG?%y+uNLw67^9;*c~-- zYKt9orO*bI6cNYTWpG+;w0f{-m}}Y>huBhxq%E(J+<-O&c&(0(YB?8|zXk_qxG31O zY5nv3f7coK*-sikp)l#`iCSH5JvzRa_3Z{C@Bjj);$&LGw`bDacl`0`)xm*(aRvFh zyMbje2FVLd!__H`2A4;YSG>1lOFY5d1&8YcKi|I=bMGE}O(Z^)zcG-{?9JRJuw$q|ZG}?^TZ{H-SY0O&} zv0nA)o{b4O5QvJd_nqkA=lfbBw7R~fPhO1KxB=aD@w|+~pg~?Zb6KSKD>%P672Gbo z$mOblE?c*N0C~UcACGQ(Jr)aQZGB#BHZd@81>YqShRWf#cz<16Bg}++`$d;)WNi&n zOuzqDQ{y%58-2nichF;dM{a^uwt6`)+J|`>Ff#L8y^hH~;+=T!S_-$IY8djvBFxao z8uv$QIahSOFUMzg;xS%(f>!y9IWj^Mwuop`sSN215%!kdWOX?Ors59yuVBmXw4DL9 zF84H0Sw-fK^K;ywV5}@4^+-X%PDRuL+{RJ;>3PS99v5d>^6tc}oNCqC_& zmm%MUebfg@Q5Bl()KWvUOFrxFlKc2En*>r4UFgZ!d;({c*6{$Qo?_k&5V3VE>+h(VvgcTq;T|&jXV{MlW+TwY5dWTfl8o1=$d{xAIz^Yu7FF@mf+; zm>G#8kp=87MO&eD$Ah4bm@orl(@jDqQoevw0u42lk)a+m&%Ma?^DKv&h?R~&W64iR zjb!gH&Jy>FB@)YwV3#3GDIH7pXrEgzDlk4%hj6q}=&h6a&y{kWhckWty#G$(wmF&< z&zcwJbb2nyUcJ&@r(6 z)d6v`Hk28{l04tRMUE9GU)v{FCT^_4hx!L_TC@C@!Gw)*0`Ps1xVbSN8>N5dBGuY3 zsG&DLi<$vnT1&0amRM9#gZbN4V25LZQOb}JS!z_(7S8#ld}dA?>fL>+q3wETtLZuc zNaxqk5T(SO$EP2-7%)uYIrjrm4|lAE+KXB+2RY{wJ{QD$;dK9!vY-i-uz$1Ann1)= zi@p@F`VEGf3<)P8jQb+yqsYlJPT252!SJQGH7-DrpK>A;zmm-{sPBGPLOck0CSHr- zC@Tle-QlJXPUM5rbYTC*)r+S%C1`w6C^B+E1_&rw4b!W$|7Q1lY>stkgz0l(D{136 z=vsNv4pUINuPFL~D`+I&%tYd4_sIQlRs#R@sWU}{U7w)Ii~_{e;|0d%MWF?#du$b% zo(*rUzVrN5hO!N~IxT)z@~dE(oRp2cE0!W8vfXh|q+E-6%u#|AiEybr{lb_0h+S0+qgbY+Ne> ze$5NL7+oJ*qY1}Q$f4r1cV5t#D{572T^`=hEX7Y%4jx(S=AN7Qmi=A5CW@q2%#$bk zh3IN)=lSQ_I%2ZYkAS;K_7{?m_R^6xNoPpr7)u@}wBO^m-E1BGP1pRuq(AmyeQrWr z4M8F3X`SpzWjds~$|r2hrT_#2wxRUeBN_0Hu(I6`Vk*WJMcW=z!$x9A(1nr+M0Nf# zX#l{Ai^RqH1Z?u%nN#;6vuh`p4TvF1okdqK3h|+{@w9#8yMX;0RBkStu#pZOn zCf=jR>y_)o1@KM>N9hxf5A# zM*FI=H@>tGl)B-K96A@3dg^0iKq8@b55zcxm5a7twtc%2FWD5|yjnH1BNZvVG%Ogw zS|cQd?-Wa>HWOQySsU)*1h?Ei=Xh&caacbEnF1yr&o5bT1-UvSQul^nhj}jwL?ega z7KHjAB`tYhJc#08rvy)2zCY(uC1>hzyGW!wpA1!)Gbgy+9b!}0n+KhUkBP-uucvR z#O;Li6(Xul?!d>-xSh6M0hlGCCm(c;6tF&#cV|b|bl?)8G4p}RKq!&~*hzY;lLjv6 z_}t&LsM1#jZnov0eAfO)#QWXleqBc-=@!fE%dFd}iiRmdBqu(hTu@7JimU+g&zh;8 zBPH-+osl@4#{;GN&HFL$Mzp4DE)rhvxAK-sl|G_m1|U#{tv3DeRPIfg;>Q=t-)_gR zg2sj?*;h$lln&Qg)pLGeJWyRxf3?>u%R=GZz|-tT#pEMIMBJ>#NU^@zvdkb-KSp13 zRYN(V6$!I-wr-oVL~ybaDE+`VRkv>+E-azO4#Bi zB}akB=Y)CN`|%1~Ds}{^ngrvr;dWUhG-93o=vB)EJpOF@PX)td);aRcgBX7OwS`6W zVu@jK^kjT4vNky`9Iuap3;d@c@EM*E1f}K5<+1~^Y268tK-*X~hdJZArs1YJiStV? z@-A(iBTOsq>)fouHVn(>`MtA4G|z8p)3_^{aW6fGYOgFKVd?XQM`^lfu(r9P1F}|7 zvrBTx)z3j*LJZ^ezEjrOx@_oF zL>e7hmCT#_%G1)cpIBNA!Qy?mf7pmJF|(;WUz>i(u&gm-?uSI%ZVv$F)viQD{U&;X zszQgeD$1X+W{pPaS)lNmN99ntGT(cF6SsNH&6#5_0F}Uo^RMnENCsd8ASeV=ez^4= zV~NIt5TO(~m2m&fS^bJ2bg?Md{FIt$nK$CI;^YYz&L#o32S`Bt&hR0B%*K@q)Augp zdfVU$ul?~}=y*>tIpYb>_hHYsH&&FUGG?soind%%qtn^@*pM`^rF@c`Yazsc7+mVZBHA#FYvDts%CUurU!nA zTlNtpB2E!p5h)05pR#n2CcJbj&CAfsf^2idJ4aW--jq`9j!mjy_|}rh&biZO7nUO= zb>_>TmcC&7q^?o|IV!t&s%1drDf55l4QlG=-G9J~`Joc_tw|6H((TxvLO*?AR#Jpgv*NZol@S@kWAzwiOS-nCjg(Pr)HNOiS&X!vh;h z_5HoUtAf`}(oeBIK3U8d3BlP?LV<{_B{(dRh`wP0 z1{A8t(?j9DP!Vababl{bE~oR0;C#tw{5ObuY08r}&(tilD(f|8KU{;)cWCvV5s>*O zAZ}(iU12xTSL3|7_ewNi(k@WUy6e!tZl{ID`oO|xff$^c>HqL;D2N63x-&G~Y#4F<>(ODk{WC{;lZ@?|x);6X{9aV2)QhL55{SWKDdC>2 z8o{>1q;bgcUqpf|O*>gxkkka&;iY9FkS;;QAalz0{5LNFxumyg%;xBJOg`wK(oe;n zZ343<)5Z{#L#l@S{qZhb6s&^+Oa2toiZx=@IR$Fi2VQU^u}J-8Ju0k8UZh^Z#O8I= zOSA0KI#8&vKC?)D+FG9_p$Di*tAo82-#CY=uzyrk7s_$p!v0C%^xK&HMQmc;rH+Ok z=jBoCL%d(huKH`*HgWjYV}7!288AWx5#Ney3McB7+`0S4(#lrlQshQM7 z?&9Pa57~&RZISNJN-C2nOC%4q5`t(la-u+nF;aj;|sPe&R?{;-99@V{b+hc;$d}$gLm4JuVat1 zV6KqK9tDVtAr^Q4P{%jd=c4u7oUq5+*{3c=p$9v9-DV*1tkLU6u>vy_w@wg*P`zTfxxw=1JihW&Mr`_;^Fu~kz)fB=x6q^?x5mM%ISPc~vsu>3 zXas{4fnCeQOCCvwy*0K0wX+HGDZP7*B{G?=!?X!GJ1mz&2Qfnt%&!;f6(}$lBgK!; zdCe8qk0;)wCL4S-{nJ!{+16uq2W58~9Fym@dukO8O`J0Ug3XIMI)#tw)+T8&C`$O# z)W6QG=<^*hiq^v>w$(5oC8#(SbbCt(?6Zg_vo2ZJHlkn#MYp>K<9bLr#ogR%vnUW(@5ARb9PK8 zeWg1h{W<}*3JM@v)3d-&0lyQnZA_lq{4P2^!w51^<@%;mFgB|h7y!Q5soT3cnv}n# zAt6ca92#;Mo_G~$EXOyRm%EY3QQ^ZW>$Z(2- z1YGu^=}25%4gcGB5u>8yrlU?ZyQFM3 zLZyPqOGSo$jZ$QJG1G$1_QxZ&hM$iX<96eZnGV|{35W_%-P>X%NCEw1CkvLbWb$Io6~&w)WN9~M8tv>|re ztqqCs{xWtDWu|~EVe4(N69RJ@-U7@kY_m1lHZ z|2i9!Uv$N!$g?;&lrSsAB7rj5V=;@^NP$zHr>qD%kft3ciqsQB^xPvI>*_TEW_!%n7e6O1JaBOYvPW@jG!Eh3lqv|53 z*Fmqp2MnF+LucMlEWw@|08zt}1vy%L@ur@lYlnsp3k3|aeMPvg2Cy57>Px z8$mZW&K9J4UDk>i+5RF1H|NS&SVEeu!;?j!fGgtgABQBv3%&)1`^Cg`bGz(kqfX}@ zkE*v|VoU2RxeJ_!>n4iATDLw@uB`{}Gfl;>> zTFmN}L+p4%f47Nn69(HFXm-)%koDRL{WdY}(LS37$F%M1<9~YR;~A4U8#z;FmfN14 zvO^?$H2n~JtrcefN0)M>}n>4mCXwaV>6H|_Yl5N?9(9R6A{j1VB ze(&dCqr@Z(YXr1US~|!=q8V1nq%)x1wO8^mJow(Ou#&=i)B*aKx1=x9=0R@1)H2za z-;`elEx1I6eApG0|9-XW|GMUMHAyvUtNcAWhFoTj@U4QAmfn#9QbWM&%v=t9ANA4M z#_m^_%b|VuPxH-#N8DA2qj$dDuNUHl6T1-KtH`jj1FhQRCpud-4ZFW}Lejh%)9zvM z?%_`Q;k>umXtnt^Pcz@3xw(tW>YbR0Ox2I~)w-q)%z|_W;eEu3F;|b!bqNPL8&c7l znW<=a#c#)xDTkk!R5{tH_IVGb1z(st89bx6Hj0pBysE-Y)7@3owli4~b>C|8BE_a^ z2-nOEm>3Xvx5)V`TECwj?uK&JeTPOT@W9^-H>V$XM_ z74feUm_OfETQo9s&Xd+~$=4;Lrvd`1DaJ+pYT1H@ z{y2V3ix7Yd#*Nrrg-{Lqm9%h4k+~m<3wtlFFx* zV60?`pOubsxO*m4RC-@>4ooMEO%Ww~%v3`z%+%|qaPe2e_EbC?`%`m+g1yocnG~@R zg|U}8DWQ0X!q@gK7g>uFrZYb@I2_L5;>pPxL>{93>n-o89htcskyOP^*$Wg6=$Hgy z*b|BICv1YXSTxm^;mZRYOZlQPVBxk0+Zchiqz7x=_V|13i&&5*bH~KM<9x)zHp@~m z&6T4k8nD}L$jsD|Rm1P{cHg0~NqPN>H}R;V6=d!tLN`We-riO_Z~`{|-!nDnYcM*p zqgkE;^Vq?ktmlq*o1=C~{OLOS`aI&|oHaG)gfF;xEUb-_O&0mLC;(5h#m+v_*8aQ>36Gcb!7M)}FcyXaUQv*>hvL+(hKxX9gIb#3iC^xn3bQon`<=;<%5TxSME;m(*X&7jqd8z~Al{pcO&AxD zGBa4&=BS8&Go#Xo6uV;{aOLl{zv(cizm=MPbRYl!koML=ZLQ(EXm?9X@fI&$DDE1Z zB88$U?odjBV!?u2ixzh)5H`i#2?Q%r+#N!oxVu}pYw!I#_nv$Hx-)ksGfWaz)>_~C zUVq-_^^RyM+k`JfX!_Y$tJtyq^({`%poQI^!$af*ZTiW~`uST^L63xyC$_es?t3>} z|1AB;1y>M6Ia$AIa9ju2Z5~fa2g2;cd?m2j=TLHy(_${B^80sz!w}s>A`XQZjAG zQS&1;e6`HH)q_8Ur0~Rl*6J|N9RQlw)`K`q|2ePcw3{0LjOI&33-cPCs-JU7R8)=` z2V-MF>bEn8#?9C}==;XYm@QuVX7)82vy%z7^}juaMI?}Wr`}^oWYfMZv#C3&a#Scu zvRlY%US-yUM}Lq0!5mY}`n9r@>p!>lVlfdoBOpmHNJE~ZfIt7e{FwenyuOdB{?A7k z%U1L4<(>OI*FmjPh~&wB@$&c27YNFz-PE7@Z0Dm_$35LyD`=4OYXK;DcS~l5*A6rUnaLq3!+qBB{xd( z3RoP4`N!c6jvw;sE+r=MNjz}0pj|4?=Gj{=wl;TQ;}&P&2~mkCQA=yk*hb$&QXR#8 z!rlCe#iZTOz6k$B!T#n=n^X;lpTk=ZlQ)Cf{CV?Rw4b$G!CGoXsd+xhd}*})Qe{x3 zu&_`5=+^gMoF|+9V0M8U)2DuStf&b5%)mJ(vj16UGr#|(#KuPVwO|Yn!aG7l4fngn z`tlaeqxrss4MRZ?QM5&G7j)K=wBgl#O{oK^$d`1cQ2UTy_T~ON)09K_NZfD8#OOw} zLsP*RbXJJnk^jr_8m(czNxB4{8B(f0{|P*8)IK?cRZ|-IkoMo9$rL&Mg%>bvpuJ@P zI9iDazymCS+0*l&q_VS?KKDz%owoo&__S1P6x#ip)PuxQ%ze8}&Fa6x@sCK~$!#$` z4>(%($jLTT{*L!hFFPbPGBL4lTHw{xCrx=81bGmB!++s?OExzl1J`dyst~|go&PXh zx}{^GaMx%cHD1lC=g@Qzlpn(Zc6#Y%%g-0$V4~TM)ZzwBEJ9RkybwcJi#ynmd=5=VA?@A3@VRy*^xq>iv(w|MdXRfC$U_Y;Smfe_w;(|ItBKArPe~F(K?t-HrX?pY$@yRzJm1Bk>>mSNm+6F^xxvE~%=x={CZK z$?uKExaoF8=(Ffoti`uu$xS*HY+`hF8tS!NzbP0&tz6w$%1jRHrTSTB>oZOG?kTtG8Gf&6*FcS4b%*lT$9eX&tCJM-4|l)rSA?S%I8R6-%l1R5zM5gK{2MR@c@_s_|=Omjhfluab3 zK9JWfj$4+Y!Fdc^H*cX7WXV60`3YVkusT9j|9zy-Ev zgTJObunk=WTA0zl?r}EfghgdsW-Q$@8b;O*c&qQJ^=ge2^p+{yXc~V-3)+5x=nsXo z%m}x*NEpuAJf7Whh~To;WLWt@e6yl0G->e@ zo=%CdZpPkDYZ%D8&&l;_s`g1^+-c6tXgmKN_RUR+U6g#zJ&XGyig1-@q?Hh3Ig{ZZ zi}Igb1U)@_9R%UaT#Py0Jmlp=1n05a4d%DSrXiIHKBT+~PN<%?OxQy69Og$EE6FT1ocB4j(5oS4~-vJ|Hwkeo<*y`eu{}b zVjto7A*5Pe(iZnzm#lQ($T8Zq?_xDYUzaAT|M*-6o}_5h{ zmuo@}20;QX>~ZZ|`tw!|S)WfSBR^ZSNcsHXTJrV$p+R8XWS8OSNWd^^8k*EVqWxkK z=l^_i8~LZpf3jU7!BqY&ZmZBOw+908<_BBI5*jAv?!SgEqbw~`k}s*a$6HqD=Ygo_aPr=QL$xD(lr?!?>ISDS1Nh@B!>3B zH`8#*`80p+04$E);1-!r3JDcmuakj4v5KBZKCsXmd3Q0Eh?}{*HBCdkr_>;7ueTMCJrLHF)wRj}$s1!NHR#Ei1!3<1!4_jJ zpg#+KY6#qrI5SkNF&|e!HqCi!y0biClbi*sN3cG+t_MgehkEqJOnvNQgfliSgUXkHgr~;!6aDSCp#ynwsPN zFr(-b?NU9n-|-e)#D{1UPAEhO{S+E$y85SBzGKokmN}^c`!$~sJ~)bBxopvK>*Dvj zn~Bx1^4Y$%A&0q{_^*Lw&4+eQM@mc*^P2Naw#f!!tI2ICw(c~1@dsa8D**3q^M7-$ z%>MFyo{bFf><=WiG$fVipA%~{bN0o2wSAp>djCSZ%4#Ln zPry$_LFH=WgtXr~Zd5}dnqY3@Wwnjsk_Ci!CQJ{+k%A-?bk1^ULkuA1HO6Zwwt#-p zTis~QZSz)I-~ulHUl$NIy3fdQPFL>6+=Fk&EY;`0X{W7U@QKYAHYHP-y6RFAD>l&C=h)X9QsUB<8uZc zswb@isJ0UZgsvW|o*C!!4kV;8iTdPx^o*hr8XPs(>@d%#Y*=F(-e7_gaO4+P0e7iz zIq@Fg*dHtp3!qEboyvFJpLzYCBD|27g#&u8s@AD%epufFPp4i@BhdJp_4?SDV&Ffv zaS}V=NN3_zYY8^ydd6WTm0x3F?H383(R-COiy|Xbo^4HMhHI4`grR%}kX(?Co>*!y zi;$aIA?i$OS5Vgj^aa)89 zJg{bBUsK^SJbn(wN3HGtyCH`GImzmqJ zf8!H9M|!At=s&x8(fB`?+7tM~kGZs&Pdy0qX+J$QI7f=szqP|o5(tx$|Mh76On~1u z0YWB#T`Cgb-~jel2YY30RaPS`9BAD>L1Y87I}?SwU00E(cclJZ0l`?61$4FwC<5mFne90QR?R@t=fy z5CM0D?+G*px!3}eN`*umT{ssyHBvq#3txRA(}Mu9r zN3>gMQ&SBrjUWyQ!t?f7LSnqEzULE?B-LCiQl+Fz$C_){yMK0&&-4FT&ws?sA>cV` z@pT0ug0tFHA*qUH305(-w%^sk`ZY$fE;Y@PQZFP=QZ+u@{1Yuiuwbmtq|;?<#v>Y? zJW@JoY0)oP?bywU2nfIXoS2mk&PoYpZ?|@>g;r#9ihW=27qCI>Vi~l~`Yfh=Ue8q2 zKQ#ym0a2VsjcXXI)rRtC`QGIAz?7XI5xxIiUbZmTar{+pV9yghaE+lGq?cN>u^^WR=Dym?rEwYMAE@_%X0Nc zp!*HePxhFE4=zE43x49wcU5Utiv%Hjv7@Ilp~*_U05(0LiBvtJSdDL$P-QtGj=NVr;H zg1dNMqiapRHsNMLPrDyP1p5&8WPtKL?uT^lRTAN=ytp{>2!kTt^ot-Iw`i|3jn!K# zF?qFvFS2}!(b)24qWg?R9pS93{?4sQ#AGk`Y%(l&bCaT#h34L!6O$#!zjztm@3d2c zZ?Nzj&sW!k-~Ky_>S)yN^=3E^n=uSc$^Sn2w>EN~M&|l=$gG zfR_6CS%ry$MQOpDKzqi&QV;}MPQgPN@mZs4V}=ahq+eE>+40*?D&Mrp>LLd?QXN4~CW#lbq@!k+e{pCgucq2p^f6V^NK+G$zCQg?qi(myl z(qbN}_}k;9V^h6@OlzI;J#%G=xN~pe%A$y`j2jc1=47bf^%6aLNRWzW1`SRHO*BeE zI(x~Y(c1_w|kXpwlVGG1xc3gC)~w5FPfvFq#UT?ser)Q z=zL3D*{Xt`Hg)KJ!N$7e5?@A#tzP3fu{Y4(q)UJw-!MpSgWX|QL4;t z-*01RyX25=Z?`=4=UG_kEvL4aas*i~e-mcQFJL`>Z%)GFiWyv#-A5(Ktr;k2W@pn@4iRdP`<4BvY*p}<*T0U5@du}-O zmq_9yTr(p{xfn{5tUH-Nx*XGTCX#2$mzFn_NK71;sII85ilbj;R+wqDp+CHAGP zs{B@isFP?$`1H4ZG_B-7dycM%%f&NHA^dnU>d5Xh{x&+*ehM{{)^5k-l(|}X3`jkg z{gvLFwDT7_wwi4R*#EZU1frwj0L{C3@hd)1$hY&|V}*wPYjL!uK%n4Ty+WoD*2DG>sL)N%&@b`>W+?pn1v=%0VpNylDwkaBRBTF%GxBh z3!3A^())luW9lnz({2S?fJy^1RO~o*LmyHUOA(Cj(%xJ9v#8z0Iym544mMKUp6~mj z$s4DA+vsA|1}J>b7PT#=B^fVZ^ue=dGejw|(ZijX4oh@J-~QM>AMK!DDRS7`=#Hvj zimb#Z#;>|Jhbmas>}T8Ue~r?0TSP-RrPj{ZqEQnqX;Fq5Pt12^ZKDn>-S zqcu_TJ(Pcj8N#Bf+@-u9&?1z0RI8*^V#vzP%E&ZI#@sUlOxz?^+NMerW^o$ri8Gm( zQJ1GGSF`capkNsp=>iudZ@BQL-g+`Zjya)%Iv>XCZli)A^{pa_mKHBy>dN}AVo7BG{MW@09L^#b z|E;Un(mZR+^S1gN}$Q6c?dXq`~WsNsUy1B}I zzckIBlo3g_!pF|S<`8#bNbj{oJRb3*uoyzm{Tc()^BS83A3+{}LRnO7ohKlb@`1Zd z-=Q%W4^_JrFkXoCNW!ri;T!)TFJpu~hUJ+ERdd|hqh`9X4ZH9}(@OerDS@qN^Q?$A z%J|bSF0klIE`?1q<`pbHt#K2Y02qpYTo@w1>(Tu&0z0k~+5L^Eblo>j*Y|c(eqn+D zGK}5G39tWWv%8p~JB`J_EV+esRm0AwzU|qOG-TUGckr$qWEga}Za`+JJkU$ywkO#= zJteyq>S<fBXTIfTOv|N(LSysjsHhiE%Fi z(;TS$7%VI7ImAGWAyT!#7+H#twi)lNM9UeVu^m2zBdl4Jx`({NUPF;BwnQR+2BagU zn}o^RhN%tE%mYU;N%Sl^0)<)%8aNZrV*Q{%z~=`Q6Hz+dPxP*C40?~(b0h!roXdyr z9L-#eYvY|~zPTF_3g=cbR3`0lSlQV31>DSy^WyAugVpw%^QO6K*S6P2F6!2OgItz} ztrJwDKG7X3Hl5ziA|*NwtCQQdBlcQcT3h*(TSc~8OstGEFMg!~0XmE!x8ha|d)Hf? z%_>+H|F4GprR>khw%1&uzh1S!QFG@`N$r$o@0;6?^(nNZxs(5bmgvI-4L& zqB3dG{fPT#RZ+;oeBD{nFdizv(#yZ;V+9sn>!(ONil$|85}*Fl!MYU$VrT)J}Q1ye|UZOjCJX=B_VRS2JCfj|h`{uv$PD zjV`~^R8oA$$m=(bU|ql(f+SsNg6gJ*v~(upNl7Bd^(DcPSyfZ{9~Q@y-TtNx8**TR z)jM(nnM7$!||51wb!0HyNi=a_x@?bF3}IoDRx`F^E6R%)WPq ziodREBnFkg5!1RH932{#h@Z{q7TJ_Fw!ktoIbEPBJ$jvE&W;ikOw_K^)HYD7ZL1y0 zJMAA6jMcKHRQ@C$xfv%DA^9_QrJv&GV}|boC4xaA<(lU-pa>NjMaU zA|EW(U8|Kli3@zi8SVg`+~vDdua_hl-WC6sj=e}fjdf;y^hE+KS+oups3G!Vswvle@l9q8a!&HKuiwNo zn{gR+Rr{ElGsCsah4+V(Li-Cm^0Fp`G!t+X;^~WwdAX5!*+`%?-sl(kBSWs)RXSHI zTJiQ`#^?G-Y&c7F;G;gFJiAQ?9y=_hy?zLVldv z&DRDFuXvoAUk3OMj}G;4doV$9aHDzBxrnmUfw1v*nT!C1FMjv!Tz?{pqo_JRCdcmn zshXV~Q!hjOS@QngY-{lJ4vdv^0{O6tNhEV^EFp|h>@zIQRSpZZ@ynAuUjca zesyWmf$@xRQw|PoN+X`Mx9g+E95NBXsD@;{zkR+=?LJul*=%9!hUR`j~b;`8_X za!xy>d;C;X@RhAV&`gwz-KBv>hYw!Td*f}t;jBf~kQ5r%xtFazXC#<2(I2$cRZ~};|`xzk)`%3QR&!6#n^@H7e z{HH(!&iRHT_gpmz&z7?EgdtTD6MxsijgT=`{Qxtrt%855_MLc?ZXY7RAo zz0&EVR(UXlXx4*-9^OMbEf)mYh!=E1e@Zxv-&a4j{rx8D6!1EiGM`xY3>*6+uP=8*kj%3rP?PTFbXD<-qmz z+DfL5Dsy?1Z7rBcn)_2*c$F&F?0MX{d4OZ$Fp0M+@hd@NVx~b*ej0wvXpqP*DJe~8 zXo)qrj+q$oK0e|HYoAKjkYmYDpqa}DU^;%U@}5z$CiHU{gY*+tm;VvW2-Z3hX2Y{ zTGg{YfCX6!X&4*4|GqeNh54@Fkw&qu#t-rkB~dtP!h5SoO_nngr(TIxyrntsv;!|s z7dH*hT)+}Tf*;CHwfeO|TD~6pcNzN-!OJFQZi|;K1pr_)-|0vYsZbsLC1Eju!3%Dyy98i(Y%gHg`A* zc!rmi4?#t1Ksn1FvNs4>O6Z+`zrY(NS6!WG{R?b(_}g0rT5l z&>e>5pD<(2%F&0Eh@HeJNXfk+V))*a|{;u`~xU%1|;SbKAy7F#Dd7n7re zVe}}a%-fk>w|dn@E9Xz3&U;F|rd5sv=IAj)@<641h4%&^%9us7lU}Up3e@lDC%UQP z^(pxa94nfXuNM7d#6Xa0TNFiq?&&;AwpgrOq$e0BWv<1HKhV5K*z??0&0&{ra0)NU zo33$}=Hxu5Cu7k&s7iACHkQ=PZ_i|OVTz(9Q8dtgHgvGxZMh~fGi|lkQ zGj|-u>`Q?JZ~5;|PO|&2!ejh-X#AW$*Bz|%F3Z-g$u0lUls_!jEKQK*t-}%0Sf4~m zJ$B$W-4^^dn9VNU+?b+rzR(?*WBA;aXvxufgk?KhdP^}DfBey-ua6Yvq_xi4J+7~^ z&(wZ?JR-*g5hNU}hK+N^XAIx(p;}?3y4JU0%hvTli?0l>)5=V=aOicsWRDK#F!QX=dG)pc-UsR9e1yKUzHifCsWO@1${;Mb3Caf~+s#&kB>xAlX9 zVd3p9c6v==?PFNo^Ge6nyo*9NlYj=c!gllf-8al5DHsGHxV~66FY0g)GgsgSx-0S2 z_K`~JmGL7g^-l8&15bJn=Q=|UG<^0suOdcTdMPFP$`9;n>$}$nPJyz<{n_d)O#TWvUWle? z`REbb0o}@Xy%bsqVT*aNG#Iu6vY~w$iJ~h+dCx3+VzYbFulK!2HZ$BJs`uNNJ4R-5 z-K(*K^OHTU0sJYcT^1RlQ7NjnwC3}L3H=)##I$0RIHvu}>@xq{LUT%p0k_@SsC~}^ zU0dsk&O@F}gWWKv479fW=AskMhvo9;VR>dzt12ss4fvw)MsZ-PnACVr3w zXIjsVSH(NvC3lWnpV1?`S4|VROw5kU1l8{)ZN5tNqYr+s5(rrJs{7PHJT3hfKjVOwJAJ*~Cs&JrpvnjBa zn?C&3n)Q9Rc3wAQb9ntUg^a5+wcNd>EWG~H!rG|r56fL+>6s4)!AzS>i@axO#yUoC6JB2!$ynejk9ID!<3DdRTx+fpWZYAqW zDf#uDT{TlcUpEqK3B90wDf>y9^O{wirJ%p=csRFN{sxA5z048{!CS{@7--qZI39eJ zTk*z{E%K7C(G_!Q%*I+m@JqlcYx!YLp6}P26OB)gn+F5dpW>m!a}VF%vU0)16upZV zKO>?m$9XScO@lv*jeJlrGQ_r`;dyK*nR^^9MR)9&o`Mo~l zi;s`&bG5SUD(~;bgK|DlGh*C~m5#O7J9!Vg#;zWpOV_uiD(039<>WrRfVIBts)wyE zrx1`2AHlFtG)7WjuqAQpqTjfm*E!PLe;BCB5OGvh3aF$!*ozu7{fiU3>@*}pu-2M= z#?Lf!w&Gr<@RvEooU6Tj+!F&^AMHaLiTJA6hCzO^AbSls^=(1`Hr^9*u zt_T$fGA&oGbbVYNUU>d!%uW|K2?ux68OAKEEL@9aEWktSSBTG~^(XCxe-EP#eDLr{ z@v`%F=lFT0t)1Vz9Kk{zERi#-qLoW!f|XaEsVz0UH~(Js@^uUdVB?Qtt1t=LEL}M& zqit|PBWhJsM4T@Ef*&lzvWW+KNNkc$q+p>W(F=s3scLtaejSq4uP7hrjc}M9)o8jq z7(Irs?D_1cut?{;20a}b!9soj|x!^cvr@tC!%D=#5=N&exYW)C&`F6e&2KI8ZpTfFAkT(w`&*&~vO1!aAS zs;qhpsZuM6M(rTTVMX3Rsp9*=+(ys5?7xun^9lgdNp^>w=;1`O&6bYN;xAYWa~OCq z_0;d-m#7*H!Is%m6oOP1m|k& zNoA5OeE%UWF*mj#2+JXDdz6!jYUXd5VjDKa;oaQ2;^$JC_)E>pRzVP@45-r@Jn{oY z4u}=`w9cPUq^@)PnvXB1torL)uzLcXMzH^|lEHw>@#O_5!zz1y_Z16&2xNKPT)+zB z)kfU}#tZ#X3GmiNq^Lkld^N>Npm+g9?2MtlbcW|HKnG2o)uM9yQG@c?W~rgKE%&ST zQ>ia~!<-pG9hUvh@s61^3~JfGhnSzcH)19(>y;e!?PRwI;DPG6$Lau|!;+yzB1hvo z2e%B_Gy8{*gtgn=liD)dutaf7XyG#{Vy^HGtIsAckDkD^MGC&~>c#3d*;kOceo<#F-F>9_V+K?na8k?{ zAQA9=IIf-ngmO5&Z=z2>XLw8iiG`g+nm`Wf7GUg%+CvP;_42TM(=^363+$GFC6`7`#^yd=9K&;xpgb$t)1ih^`Q;!G>_ z;AM>eP!i51E>RDP8O~>oHYyfT_`=DV)`KJ5ik+z{vnx4`u!X! zepb^jN2lW2LC@(q0jSuuSoz`p>$e9l3r=1O=Y<|~L#kRNaFU?tcO;Q~erUt;OtGGe zDqe&BQ>@EN-isanAV`dGZS^S6S$MY3jKDMSL+@%J%ER{OwuqQ}I+w{!Jd(hFt-q>F z>&@mw-6a<@{30QjzdS3VqyXx7vsyl(JitRc!CAfkM%O{H%^FBHsGYB9-dsAK9n*@S z5(G#PsMU*LCv5SJIdsaIO9+Jfze@RGD4YYTnS;gg@z1F0#RbWW7bXCEz~5r9-L3R>$)x)p5g!kN zx_6$56`7ygCO?LK=s(>KE1PR?J*Fn^3VmTBHe7Wal^c3Z$rdL$723!rqP77*hkQXr z0MyZ?mq)yRp!ZlD}2@ioa*l2-NHFTuBZaO?#_WWzy_ z-M@9z9(oU9GcRcB6(dw{nIK0LkugDUBVx(`-qdLvsiWV~X7OiW$ga1|mSxiK`G}ag z)Pq50O>+cFY&3ks1xNDUjx~$BUUuEI{|H@kX4Q~pzghbZ;o~I~J&~037TRa&R&mHI zvn#;govs3CEYP*k_~fLxmzVC#S4n3Y-_rL0$87ST+j;l*9VF@X%y#vm#CSwK%zrV$*dfW3a-^olK_t9xwf#T{OK@{7Mu z-%_&Om)FNo$by*tWhQKjI0k+z8|WGu<62wTYpv(4FlNH%D+zZDkctFYzxwuK)W$t` zNW|SyK9BS4g_iJbgDGj2gA=C(;)!|Kd9*xU{+N1i;fZA?X;SE`$!bTP&BlnER~w~v z^TFqF$Fbmddbn*ybTjz^%A^gBj0graZfzK`D{ee>AuopR%@KWZdb%S1S-T?1TSpD7 zSFB+k4IYD(fb-egtyP*^qXf#1s;*G{ zvFb%5?eO^Z=V{7G$?uW%f|HwF%lXjXf~ASw=&3c#My2(J)mKaJ6}+ER`7Mrnrpo)d zf=KkMSoQ_Cav}-~9hmqTuxxmJozsClN5Ko~zelDU= z<^01t)6=0j`^1fuIDXEG)X6oEW?TuB+Uf6O-^uR5gT_4O($9k4YMBIzn z42`^imDryE6xOj=IT*TPo60q%n9wxmdO(U4tIiv-#cT1Gjb|$|ZA{q5tZ+Hr(alKO zF-%kcrU_4x{AlXV_3fsJcVV*cEaN85A^Ku@_eaOCV5!roHJwv?rEms;`maft2Tnek z1WrFZr(J=4Rc{-=3m+b(B0XDc$3~D|NTG>Laq|I}z`fDckGauc;=}|fi~30`yUHb% znO~+U7`2M8-??5mkkbtnExmrc{4pv}|pz=ZTJ3H#ogXL*LJy9T*;-r7)q-xGbhr$5E1 zttK%_rbLq6r+BkA%1IwHECI|JM4Kgysuur2Fpi4*1%{z*=w&ro_C!1Sh(Zg&xD2h% z?3iGfWnq0#?jG0lUfbZ6Bfq+r;6bCUh{wh=F)xGOUTgEu4-7QM^HxB!_!Hd{b8Cq+ z&Xn%ZzHl&OjUPKvXw1ZqjX=@duhE=jA}sgcKQrdWskel??gHT47dAfhGyKg)TNfe& z0_q-hi_!`3C(0wx(&idGc&1Re{lsj z9U;$6)j=78?B4CNaB%5+>7{ zu; zZBcCnAfbzF5751oR%xqJ{F&c+$Sp=g2{85fH|HwTJ6oEUG)z*Qnqe)b?7S`h=D4T@ z!eds1Z2OjK07HCk2tuB1fK2;6-a%^|%Np+{3;?{D%MW>d4_q)Gk>+Q&`=Dge2d^8d zK|74^jjCpMF;sm!fVsur`#Q!>FChh>NWS)YK_o806!{KqUaOo9ovq+$WS@n=ZC}Ev z6l$VZ?FNt4-ehQWi%F**6t7#;J~}aEV8F~A^En&|;t}VQ_g1F-Z9&})lt4(}e^V)m z&5W5Cs}vTn+dODF+dkW-TzKp6z#Xip-q2V$D4SVOiu5_1YYZXO9aYly!=5jK>B^5E zR(a$0F&dxY+FO49LV_1upG71L+y2ak*=C?uc&*%UV_zPG)i7lyQ_nQ|cnJ2H zp+k;`C;M!LeJ?LF_!dldRFAK~J}#?|L|_LYQm_WEE222{cV2eSZ8}pSKmrHCBHO=> zbd8e`18}w{&sH^jg*t9o;aaUKTlvQw%;ITXS8ujGuKpanlJ>j&i)kdwJWmTg-9zrc z-GXR}NPX+D8b}o|Kj(jYX|!bY&0t@3y9?~&>dLJ@fy^a%!`GsL@Ozqr)1PZOp*l>v zAg|cq!@h)U`Q+SFmEKJq}D0*adkL5;qsxW3qJTPxxA?+HX+ z3O8HeUB5I5VNRQ~mQgH4{SGT>+nCN9*qieX>GZ~@@J6uud@rBx_uKyD;J-B2z5+6T#* zL*J3}ngrY#%hlyK+8?PGj-wquejMQ}UqUBosWb2}q#hT;;;=4O>ql*4QY!|oR6UbsrLx6GNNMd-kg_CS z2*mqxKU>iz_R90=3R#-M)E{fEC7)j*0gpH&4ej)}MWDAkYtP5V#ZNpKTeIg9@u^k^ zw>u{>B}zWklBeVX_^HOuDCOJ2??;x`%r2WRvyq|8IWe1(SXb{_0FtG|@=laQj#0}E z<8`pMM&Ot*1pLvFID6TNAD;XySk7tlpklV#;$hGmT=OA2J+Ov-%*k39@nt9<$U24p z!Kwy5a2JCfzD@4P$_b&9`|ls*h7KOy+UV40OLIx_s*^~n4PQJk8OLzHOoOM-CY!1^ z??0q_#Rfd<85Mj(@PKK3^R$Ei28%_QTd*IU++6Io4H~jXkE$+*n@_$8PDiUaEB(w4 zP2_{}Z1{Vr=vsO1g1golc` zr-*ke*I!I{NE9D?l~>?dHrK2u`3%_XIqtewfVi)XFW&9YRqOtl(2w%AW)7>>)(lUu z*}~yOkMisNC$~i>>&|QU9}&ac_8ScYn?L$a3hD;oG z8U6i9Aftyk1Jp$)G!E&VN(A!jS*2v&9?U$4e$eD5LU_K3MS2GDlW|oQwI#%#_;p_> zxx)IMOy(=(q)|-lqm8Ypd!|1u2@l@nEFDehUXs7R;0%U_=b8=(xs zPA9!1QjpaP2JO}B;Q0W+%Mbp`$u*}Q3E@o2fWZ~;okt^Ff zceJiuPI~Tk_b;3JU;q}5G?S{q{b_fP2a&u{hGa_ozPYgUs?RdFD5gnyTXc7vfJ+)& zb7p?M{OsFj_dTnTdAFZNWs%v)>!lNvyZ;K(fsvqXb0r(=$I5~}Vyo|FfI#DF>e63m z_;la&_9cxe{?>{Uq*bq@zne$(GOcB+OS})y3|*M-qNzp9bZnW-VrFx zpz+ql(5CS#GL`@$WaKd=TwjGB>Rc^Zms`_%1WSXzZ(CFE7b9aRVWfmF~c$ z<3Br$^0vA)55wRLpocRaF52GsbBNQMd_&ON~T!vfs2%* z?cww7I6un?t7gE|PyWOi%D0?)Lk4+Bu4ujcX3Kmzp&c6;la8EBg%HfO*$D398*NVK zES(XqxHR{r9k-b-6p?2~15zjJQIvb+HgBAF+_dt%g~Kd%XI(Z752Wtm zC^v_Bj2NW83G@s~F4)35g-#4B2lN}?%kt`?7GkN*?NyslJ}uFa zdXwcH6m6sXIfbF&>9NLq%`6X!RP_^qIS`kfqQTLHE|zk`5dEH`&$fXkRn*J}I#{fs$$5j<{GXc_}qrI^I>E z-M2m9G0%XO+3mA}T{$|*9=hC@ln1WR6%F3oRH`o_TjtMFh25jkM&=UE!EA|<$xhLx z@vX}4G%hxq6wV#Zl|meyX}JdpMzip=opP-0+be2Q#Q|XvsZdI_Y zVcTmD@2ex`;mjucqd)C2~zGG|2qChA4 zrZ-VG(nlaW>Fl7nBktTd7lX^^+NH48!}7f9^bD^X8G+@JWd#G7d8xpM_0172RzMqr z4RqX3%pc9gkdv;D=pf%|uDu3G%gb_N=ea|#)9-pXh89g=OmKQUBupv`&HlzOuGB%{SGg_=6Jp-k_az2htP%f(O5OKv{~ zN>~mTMvB;D=8$n=!(%@zr1$q4&+t+%BGoffz$Qp(h|eh|{ETuf~M3Axb=t<0UmFt98%7+-(G*t+dxesgk_kap;~#JqHw5lq(h zyW>%lY8;k{Pw#m@WXW-jMz5me%BW>3};g%y#n2~t&;0vjSJyM3MRki~OG#02pUR_-;xR?QcTylsGYE(K{ zK&&BU_ zw`?FC%*}C!$K5nPkEHG?rx|wnTbU`ny^7pDBvkI(LaPohXLD4m!G`9UVkDH1-Hn_; z16!|5gQsA4%T?BlUPvtbyfqscK3b`#r42vo6p4<4b++a|xg%1c-n?Z*GC~=EGaqNm zzzN=c`YvZ=!W?1+TWMb*W=mi&y(mROi4kQ;U|P2C!47_c|8vN~U4Vb_&4I+>D+H(U zTTMU0TErvroB^kgJ0dVt+gF(gQiz{ms?V9ku+}pfmb0h3`pi7_pAN1MdG*Z<@KFud z4kmBYez($cg}-0JU+6e5lK!j@{a#Mhxv*!Q`1`gq!f;Xci#+7PbwN@pfF%bz>+m9A z_G7RXO916ev@229&)oyl<4+v4-iyM`lTZ2!DX3b`a0?8uvp2olJ>O>fz0jPYHRs_b zb-r95-R~o0do1XC>MMvQ+U8&n8ZU68kW( z=+JuB*poB^*+^6bOXbd=jgFyJ(g;|3TPGQF_@9HFXa5&;S!=Je_rA^#c;9a{JzGs@;R{-5NyQg`bE$CIGUD zj~CveKf_DY`;tbj)zdOTV>eMPug}J3*E-!k4iv^lWOCkL2^}59)MOI#n#}Qo-?48z z^|^_>Uay`ld+ujIuhFBhkocwQb;OQ8K~ki64c`+8h}@!2J=U9?CCy7UhnR<}{V)=X za915d@47#q6~Kntbkv^PqS9?Ntp&H*UQ@Ovc!= zp)SukVq*p`Ufb=JGRwU;KoFv*-2C;M!~*G{CIurRS}Z8T*f%WV zKst4d&?e^1WLoe#fEYb#z)sNJC-N~x4(HU|iTfB=H$hiCt}x14?HhL7)eKsTuL~~k z$6u2!qjoWb#FgMP{)4sSbp)3MY&P*HOr0TB6JswDTr(w3=f`R%lD3HToSB&VDE?oD z#Bi!J{n0*t)rE+1yE*Ij8i?*o)=+9B55;f2Gd}sagIJx1c6YMHV%_f;s(rdk^bW0h(hD<8lGB2vx!Y$ zTV0IBu1jEWUzA33#DRj4|$MTg+k{;5E^!drFQzW!|f$>y-~Q#gV#3cBs_;% zMY=v?3R0fz>tWXQ@tv~6a2l!{pGy#MY;PvTc!SX5%pOK4$XTF?K0hzdeRh!J$&fpKGGX7_ zAetJ>(_&Ee58`NBcu3p%x=`g z4{U`d1-%J8x(rB+4&GoXAhuOMef1$y&99Eoc1B) zMpLbIuE4+g?879QNS6m*CvOt6 z7PFC0eBUmRJC9ifIx6%rm6Sq8X99lQ&^u@l&oG>qvBqax5*5my5g%l0@6MPFh@n7b zhC~l4OMSolSZvLc#!oS*w>s6Kf~>YD3%QX2lTm|wb@AI0u5%}kX47D-9Fh{r}7_ukLbWeP5YEvX>@SSpvG0c<0R=C1qM zWv1|F)SohplgK(NI_%*;85tZ!L%x64;S?2&S$XhHwJ`Ik=EZ{BV2;}u*y0__%7R{! zVvEFD?s2z6?T(pPmY%e{GPl{_QbBK^1#bAV_!PVeXFKUn_#P#|-+Sz%&q{-?=pTM$ z4OJX{3iwHYf%Wf7safg62}2?_BFT$hRoU3OBa@uoB-Xc^t);YDTp% z?fk_NhpWvTPncA&D1a{C2q-aC&FMh)=%~w0IH=3W^IZ&o?K)NzkiU)+zsB!vYj){R!)w<3L3R&&ueAFh|*NOTdkS zGioEHSl7kujb&VWPw5ynDE@ei(S3774|N%$H)jo10mm^wejr4Je$?V~FQgR& zd1&=|5D0PPY6Xb2Ubb6T^HW=(EsmZOhTlg%A8@%=w|{kl8PO6tS;dm-Z5lk^xCtAv z142}`Pw0Y1jV5MC1i|uF>`vk)X-Z80rEKCxqBT+ySYOR3U4QlqGJL= z2#39sk6i*fXAzibMLYf0nYDl{mYvIdIn|m7P5=}G@)3NdY7}bWh*6{JS^o+PgVtGi z8WLknq2!pYDf({=>nCS$w~u*H@dhH-Lw8LLg8l&IR@=Ws$L@pjFZ9#jUy+4FDT7Rn z{#RrEeFD2K@c-|R*g!92m-fXu#o++|&1L`WEFPl)2TXRjKeS*0-D(p%ln4Js0t+|? z=mf_WBk1-Q(f&V5hbEuBCjHz%v9}}`C-)q_onR&E4`MYOx0 zb4(~<7AXm0#qP>Bn%m~dg6>o7zwh&Q(jkrw$8veMw#FHNHfyxDA0@t-VeA*2p#wOp zR&KD8Tt7T+Sn@^=M*YR>hqTEWGI_cj)#-``G{al3{$Rom=qrt%^v8+XeZVP9?6Hjb zj13hlx&QE&eeN+O)DNc%{*52Yp-_3e8mn-Kb07CBO4$W(mHVo5< zM=R!loBd;2NdutJZFBL|(_!AY)Zze9i+c&V_Ta&1FJMWOw1KQ3YLuN?{CA8D^&2K~ zxAPvO2!!ZS%$5sLPSqR^bv>!y;9pFQ~g=VQOjEu*P6yTYXB` z-)7Y37ej11qJ5WT36z8|8umD-k%z4gJ3Uq()Y%1qkmP?1z(2fYpBsnM#>;z~+ip$l zFBIU3MpshlG+cUqIk)-Z-!Bos=I+LCk?ZLEhG@6i)OCZah+VX2@cd0dDrm{w%F0G_~o!qLJ5)JDL*yH{>@+S{U2V3AU;fj z$?%AALuxg4e=T!^o-6$X!~^h1KFZuJT|b8gR*|%|LU5M5!rMKnavQ1O0tw0bxY{_L zuh?5wau5?Tup z0fEmy^4M?-;+`>ASH)v(z{Clns^?cX_^ydJlTIlqZ*VMkowrBG56lRhTvYjgq=Ofy z@IubEZhvA_!J?HF1q|e)iPjt$ny;czZ_zIPnT#>4S?cs%UuUKNmtu@}Fs()+quF2T z^3n$|L)lTlO@aZ~XI3+OEE<+nrOWJo`9t<~`qbsvgkCyGM@psAaCI$g*9}6b6wi0T zn$3bi?R`(_nA2Kjsz5RHbj@s|#NXkz_obPAobtlOKqLtwat@bmKqfmd@&y@cist_= zp@N*<2>Lp=IGM|(Sx=5%@XLy-{5o{5^e^G3PJj?)Dp}oO zDUnX$IGW1N*|l9*yu31NXG<5vY4zV8n9D}*r~6ZKPC`X#$Zm`uC@9C>`)aIX{N91$ zV-H`f~FU_NQ`2Xr^0 z$)(2=rbHKPP(~a12Fia!$;+tIGc-a?I%z2tw`G#qZY>8JP6-QP3=VPIw~$(UhR*dQ|&^!yAnMRmi} zLSQP0(xZC9OX^JD8+e8f4nDSYIHOs|-cYeh_aj-vf-|CcNC%gRYTY+=T6{|g2^%Rt z*+JXR=wtIX@3ai`JVVL&b4==*3AN`DF$(EG@ffoIQDFkk_KOw6v8c-;_-glZG!oUJ z#qEn_pD3ME(oIk!C3U4m`hY-iQdEtPrI5#y4?L+2t2**_5fsx`s#v?v?>-QT4VLcD z8$M#*CA*50^m1%qAwn{Tqv0D_Pajn3-}Bhydst2$sz=^ls?9v|F$qh2csN6qQ>twK zjml6}XZDZv{YPAp{+{-nI(SjL7PsxX%R3$xD$Jk%7nPu4CCcAFv6uRPd|}|bR?aEK zNGPNV^|V+cfz1>$s92X#)%g)*a%@S0cyTy()6b#``0kg93b0|>N!$}9c|k$CHo?$nMm`V^m; z9yU@&n3y<2%Oc{xNSR{3Xax-@{^f5B$(!endWZLY50KLH64&gq8>`1a-g>FA@f>cU_W=BMRGZbhwGsVXbOahbucZ?;r5Q)@~QB?ouZc^8C!q#`KA z(Q}3&P>_s|Ts?jUqTJ7LN56E!|#W|0%T6M*E~2UiZyD;~W? z%)I(TWTDoFLOO=upH^aanAK@%m?8qIEl{(bc~4UNY4LE#a^AF#tTl{f2sAlBgVcZf zU@ISx(Jhf3p4m&XpLFoQ7za<+y+mEe?dAs>d!pFdDw-xJP;tu8Ru-UqRDT)26pELd zHZ}f?1KS{k?DtlU&I4S`gwp4MzASRB0AX_iesaX@>&L@R&EKzk}TG|xbzH} z$t};viAX?!PEVDR)2uI*bz-HVY^iVWWRFP5ya{vixYFt@&U zs4)q@Mi=Juj>URJMJ>Pgb2Zp8+>ep8ne%|@r~UrKCl{-1wsxklMW88J^;`JotJs`Z zd4;X4!bed6WnFe~`SJT()T_ciqJo0 zj`*_sE#@Ek*xwR`XkCZ%j!>PU$(ne=_T_8DC+bAyb-dSg*Q)|r%Q~BJmI=xJnq7&g zTaqrJ^A9f-3>}gd)d^JZ{bmpgfr4m_>R=dJu;sCk-Z8*olcz+eeMh}n&s;~2Qvm%? zMJZ&(qAT1EubB(5yjo)diUrEp*e`~`*W&;KiHnwu+>;0T35eNGT2~qRuV0!~iIiy{N)jx)E)CZm_7b`o+>3>4S=lYk2cX7#8 zr+BBPT;6=Kj*2?U% z=@*!(XX~!9mGbUD2pKvvH8PY!T3vika~lkFSc|32It^^ z8Si-N-dwFfGLW^Zow^|FwZW7$er4!p|5bZ)`vVt0aOc_2mv}f7RhaFP{;w9x{Z}AT z2;|rP;qruFyUlx3z4=52#Kmy9aoeKs4JtV@lBT$0<|;?b#jWN%)!xnz6zaf@!5HL- zYU!3igda%Bub=_En31^SAe1bKhYwwF6%^>?wOupZY`^R8(PB_;qWSX~E0?|-o0Iwt zwxXH((sCG2Cv0|}rzRz-#5cfVEIv&k#>W_>1PX@W=HHQ!4(&gL1wiXaDO(r33q1Sy z2OCr6QW*tF%!&i8(?TJFLRMw@3x3JB=n}3|9A$VvvF}|EFLzUSr*d(HD0ARH zXrOa33n$?90!2{XzF~wgl}agk!oWX?aHW1DQ`3q^sUH$E=!>6;eU^#%mv-K=M)4!? zWoLLiQ}^kl6Rk(iA1-#jgD^@DE(DVjYH#o8oUKnkUI7DfL0TF`MU7xB=z1`NL;i!7dO&_c;}vP&dUIWKxYBt$hZ`U z)cOJI)MKx359$D5{li!s(CIqnNtD`*bF+UiV%WZR%SXPo9e8JXNdT|y;%u<JnR9?4Og^g|##+*#uB;6}EP9l*cM6B7LTx~M@CeRkwm0*MVC7zV9v z*(N4$_2z9ceTNmbZ&haap%N-d9ax+o+J+uy%*rK1(i9F#0h9F~^r~|*mQ*;dANKh@58olN2(Z02 z&DBg-o#a1Zf6#`G&Q=|U?0xL=&{thW7LT4L$40DN2})n!^VdCo#LTjM)Yn^qgr$&X ziNCThViBI~M+ZJ#-4(DDZ}a_L5MNWuGV;;?Z_;K7!R0}4__u3VjZpGt*X1;MXy z+Yx63KXOOKg1Rnj{7Wi}o=f#Wl@@scMw;eE-}JSkR^-Amk)i}B%O--Ilr z!#cc!%G3~E8wmew(eILDuslWsP=8jwTEqU))y8Or*C@q-118 z#+nSah*D^R05i5ZC#8{cj#?DI?R(>E93J3lTAR?k60A-HGH2!f+WWqOA|exGH-702 zooiIW$qMvai(40cuVoX|jZ;-Z%CxP9?B;7O_o(;2tnT_T*E1tOsy(YGV?y*RiYd|X z=Fg#kU>Czbib@+_Y)(D3x~)3z^=_bbsk}|^nP9BtmgAaiOSmwV3sq}nh0)#SM<^B? zxcb|vDUof|E}*Q(=yKi2e0cEWc!<(yz2(0f{;_1#<+*AN(yWkxJj>lc$s?!ZU8jyV zoZAN7?{9Ja(^hlu1_C5pO}RCbMToiCsm$*H2_NUNl8%=B2_AEGv3Shc%7hPbhJx4w zQPbD#@n?8w#;Jnmpp}w7y@I*1v#p(5KInvz3e@?yxN-h{F1oL^2H%i5We510`aC_+_Jhz^CE+t9)-{(0g@ zoNwB3=?g*@JK8kDZ17#>u{{%hgXdzHo zd#Z08Q1WmLY$lG8y9lo$OefB03%!X?I^7Q3uXq z0ok64MBjnlcZE@)^^s<@nOFINno@jc)XiDo=o8E;y2clrB2uPz7G?u*=HGZ zH*m~Pg$4fda85j3AEr$2F)|k=oOh|G9yl6)x?ZUo`oFG4ljhz~O%!$cAI;e&YS#Mj z0Mu`rB4oj$Cb=-w4zHkthydCB^H;pVjsWTT{QyaqTT6J|=lk3duX$GK+^=IFKy9%? z@U`n%G;m|J+a)DqVQKAZhxURHb~d?|6-wt)+9-8B-Efn9M9K|ki)lXUDXS0=D|4)j z!tk2{;y(rOB2b>|5wjL1KF; zd3wApYpLUzt1JJ=G$M|U&gwc7m_=>EW!|=K|4`f`G>h7n;{U=-KS>`TsZ4uy37=F(t@IQVid0z@VL!#1#PjNq9vQjCluc z-jVtVKSN!!#ds0wFRl53^0h#@*s>XSX6k2R)IqFYc)VK@ODW3EoY~e}86eA_KJ4U( zt;Dx`ck4Nd#CaD9>DWjV?E&fZm?U0;$TNpWSZ^nbz%3#G`cl~J6|TF%Qz;F7@tf&p zD)D?6F9JH`#PW5bk|0YA-WX9F z`1rXR2@ES5gc}u)i-*}LjTpg;wLP5_&UM)Q;`3MG#m6aDah=`ro8R*2mwMEB+kCJ+ z8GV;jmm7*;Y9CHdX7s?;kFQe!ay&|AVmTUxuu1xw?byu)lk3I_5$X!EbyM0C?*~>% z;^R-B-6~;X#O(qQ6UHl3uD_Uf_ShcG1rr=lY1w2Y8&~UqGm^3HbSH;pD|k*0gI0)J z_Q7O6uewg1Feh``C%=YI7>5rMS$y$Ec~nL_BL3TP{g^zKI>Qf>$U3Ks3=N3dOP#*0 ziSOsPfI0UIh>N~3D%r~5Y53d^Su2l}`QpdCfpPeFeNu@`aQ1+`PT;eF?*nV+#-460 z^mU|<{H`8}Utqi&QMDG~mscYs79;q52Sz9&9@JoO<(sb)qV?z!H{p)etjW{NUIdb% zLFPJFb-xmjIGjpeSH+@dZ#4J6p#V zYF=RRnA|E^VJVkX+DRFh?f6_TxM>=E7`?T16RAovFSpzC6g+a{t}$|`kkeO_=MgVR z?i_-Z2q?!0>{a&-Klq=v>>b&^vyFW<#h!I!$MuhawO=c}0ssKDS|e-T&knwKH(h~b z-;?wsXPW%|pJR22hrF{LX5a>N83w(NeQLG+ zF!6P`Q-fS`9~oB7oeTM?(bngl552wRuzNfINg-ihfd46F{v}KpMk6|A%zDlqNlJY0 zt@n4v&nlOl%s26YC3Bko@`tvinNWa5fBB+KuEh|w0*MmVSU}{Vr|*%G^ZElyAR6h~o;j-tKLi`F0Im0RB*NLt$d5 z)pyrLpv#;I{GV@)gJ$SkKhY#;`ynG?Ch~K z&$vv)@wo=oTZbP4tot>&5M1HR`sMg0h^dJ3xKcTsvwW=%`m#iQzR>PF4}r8H*k0Zu zJRn5>Uqz?CSzPkJxefF7Fvs>A*JFVM+^#y90-lMrzWMJA(O99-)({i{66n#$6!}tAatU&cz+abP82>3}W&~$@d!5%>gv*J@XkY*hkiAS}7ma#kb$Oa3L6R8TaiGG(?~%(Qj6zxp5p!rJlAdwL|KkoW zETj;ueRRIKSKQkPUG9UC-aVBww__(QAHm+Ne!Ao zSa#Gewu~NL3FuFYa1)sOj4Vp4!@(~I;>qgNN#y}!6;Bus%df&L_zZLMafa-;GmB`4 zIQAY;S$rNh-QUs36kdp&lL!E90fx5jIDYp>BbNz6)1e+NW@}WW2R<%)W2|FXygeJ6 zF^1(g6N5@29U9%eQ&Gi}e4j(`J=kVrRHY&A`>EH$Q>9#Mr#NPYSihmV;ci! z447A$TQ`Ry-Xq_^_+F;XLKrdmQK`bbv2e$50?uc+j()fAphHx*nPdc-#kr@r_x8yp zZhr}8k{(D`ViJ6pwCBdLS ziE+V7-9x_S@M3P)QoZ{Cmq$;GXhj6y&zz9`&d3lA3gqcdQX|{BLj);Tyx5otQ)5}| zo0Ib(&eQA3NWRVZ8D32?ykAR=FPlcCotiMo6LQZT7EhWRA{Icd6jfgmjTWq# z7szG_y{Ym{3r%{5yFo9M+GVoDeKp7f@#W#eX*6@{;@Z!dnq%1N7xboMO~z z=jBV=SE%p0#orx=Cv3UB5oOe@_im*()9dQfS zwFh_%`?AvB%q8Obobr0{78%V!Tf8*hv31`ez9UnNPgeih@LolhkEYV!-56T+CxdR{ zzpC9i>Codj{$`nHxAVpdi4?~iLso4F#tPsclE6YC=7vLEb}E?75=%X56~b7DPk|T5 z5m16pI(-PvU@9V%qbK^Mk%nB`gG4{PUg+T;viYcpZ670RyNF9E))9@HpDJ8keREnV z#UH>6L`8D(_QrGwQ9wpkkUO6IY#=fd>70cxR{NaV?T;nJD_E17pHLTo6W86mI_1#p zfxp1!7d8qvjob`R%h3d@yd0*6-9@kh_+RB!=<@w`n1X1E-aK#4*4CWCM4>fvF6hBj zP6itfNqq-}CS~06+>+bC!@+-qeK2(|PFUU0Pyrrq?G4Nyih>AGoMQx;D z?r?;)UZASK@_C3QyuqN7*<#CPxvw-l`TX>FSk)VM=Vr~;7o1;u1gB6qI9 z7(207#XLN`9J^kFBnV){TiL%He+iBXgU5}*F{578QEhp&$yKvkJ3bjYP9a*7A!WE; zdU&sGqp9fG;=?A6F-_qETDrN`CVu}$EnF*}tTG<$s6X1H^&VJ(vX+dt6FUoVjez&j z#&CmHj&kZ9q?#uTm+#3k>yUWke>Tqchjn)k9$Zd{0ifkfl}kqtpQVr|Kji)Trt8{U zP$z%+YPsmi3iha`nk~AT3qe)PzzpLCQ#YHB@he-+#HbM#cz2fJk_t0J#N+X(L zzmIWQcx`^@**B989Y|pBdshai5G+nLVJy!fq>FxpoPUzCaH|=*hOU&!NcjAz-rV)G z&+{iO7K6En;kM=ZRp!=pzfW;w$l)%FNmguVF>e1BiMB@HTnhl~o&t@X}&alnZ| z|K@e>a7@5Ymo8O;N0zz_$Lbe@8tgHbu9%*t?YsUSD~BlTI^LtJ!>mqpKhZUP<*MHo ze4Dxfn2XsX6MGHpP~T|r@vr@?bF*KZ{OP~$(dGR8XD^d<`GmNgiO_hxM$L+2d0di~ zJH;-wey};MG>evG)t~cMN5sMf7$?BK-QtrbY}_=M?6G_EN;S(oIN^H5Inz2{0MYj< zABI{uXA>*vD81o(m51GRi4pjQTardY_;}N5>HseD#u8ef@)2)emN~m3>>GrZn`xAw zt#HuEv0IgDdpjb4`@1jRv=+?Z$>Ws2j6DBd_}ROeK#D)>UtZN|9FYG)o59^JJI>cv zxD%%?Np0_D^q+cMQI>ya{^U=Rzjm<>+WjfJ0_{p1zf6d8D&_|^;i4}4|NScdX9M&Q zp_nX-s9>`86+EDS_NGT@eB=Lq{@XMG+D*XlevZ)JoNUIYV&hZjTW@NmnmZ|BAzDIv z%7GlI!N}B@Pwp>gxLq$jB)}OUn9PeA`mZPC#JaLpkmnVl&3%@Cy-mI;mF^Ywy`3ZT zFh`)V;3}be#|}2|=(Fh!$hvW6izfzK4%*b#3Llj%{rs@GhKFl>$Y;}~LFs!}FI51m?;rK}3=J@=^nFg zkY>^>PWNQGOsu8v^^ADrtUI11k^~R*NNZN5IixGBXx`GI3@D_{} zM5Wo!7%jU7IcAF~h9@CHEEGK}IiDT8P`A_`Ns;GCNOY$DxTjU3QuZ51aO80p{dy z=rn^915;08cCs*#g9WCfcl@X?O=F)hO0%(Ez1?-X)Tm8Hj8U)MIpjY=^#Q6_l(8`4 z_lKo$KP|)phWK#pbLvTHNNiB$Y)4`u5JXW+;{W zc8ezpGD@u^Ypv5LF)otbSA=gVkEL4&@!+#tthJfm5n@K)#1{_NVUoUBZk9;#@uZ7k z4U#d6fIhq3aoaODF)Jkf7w_9_K4{-apuR5WAC7nD@6zaY1N0~uQZ2(ibJnR zOgLv@M_Ls;KiKWzWx~ zpsg=xn{YA6H=i?i9T>1@-2id)`e5@UM{~xuSPEcz&Zh6U7!(gbkgW~=^Jk23G`@>~ z$KvMP$|iim=M1<6)#-K~V4k^#$qknOF>mP-RBcxBpFU%r)l=^+P99F-f=?j z1EVR%J!5!{ZkstCiaZ6=tP-($wLn3?XR=-p}s1)s2G> zY&F~~`x&NkeGrxu1HBDHk4+r!b0D|07yUWADFPHJkr)>cQx4aPUBUTm_~W}b$C3_4 zRuAQSeI_do{$Fv-i$S0)_taWJ*}`fPxWAH z1turR7#Mkj$Yv=`O>acn>>^DJF)KllCeUh{`P~sKi=kgMnGRs>X@8SJH4+s4%X%jSxhuvdjzLq8kjQqb>+KKi|;l{mCK{6 zr6b|bG(LF{E;6_E*#>_=Pe0j>x&B6Mz|EM#*2lz2xj&{?;{X?ro3|IijW+-S&^p8+ zV|dI{{5KrInf6@#2jNH!H;-CKrO*C|C^R4rY=I%{h@c+H8oI3Z4_=&2o>=aqh@Ke~ z?5@V-d+{Fje{wOh8f>ffIQ_&8;UZ+Edc!zZj3k#=!m)g%p` z;wt|~_%3e}1VWStVwWGs&;KKRXOqV{3E6|ZGglEJ5p0+=wdq*Pc@HmG7KsfKR`MZS z4QT5z-BMo`$)o)hk(HIhZ5~hrk7sex=U^P}{Na;&3Ws0!zhf|CFYsN11Zz%2!-I_$my!8;n z`_7F+X&;i>o{N@{o#l@~Jky&UiaU9XW0S2>gIZ1C#&Qr)%4l$Pp2tfmMeYO#@ z@WR<3Y2x{*?7k22@tHBH5cwA(*RJ7j)r1SV(gXCa)pB$+Z+Qr*P1iZ@!)VGslcum6 z_Dg7>^yP7>dEL=F8m7x=eB?t%y`H$aI=|xWvsaQ4@yOns_b0x_uA89sh?OamfR`4> zSP@2^B%?wDNSe*Yh5sn=|H!8J45T`H-aduDYyxMzyZy*f+-T~VY*zvh4{wO4g7~$b zHZ7sM5i?`C-c5Y^8e3jc2M`>1gB+_MotyOd;+)euP~a{Nk8swH(kZPcJ)1QIKJXNK zI@=I)t5`DGb_SXW^#uhTbsGBesHOMeV4DOcE+(gp0g8H@_jvWHqQm8W?$L_02taz6k!4+rJuN$Lmn^GHypwl&XcM;5rM`9H$Tea4;s>l$XU~u1) zM56w~zzhFP;|C05W#pii3pVPsM}q;^ZO}KL0BvvoAFdpCYx?MKNA9yt#nL%ILsqVr zuG=3qdC+YOMOk)6=xgbTdw&_E^{q6ABim?=S{B7Wj-|F9${EnVrbVoY#c`dx#<2pb zGBFioS(=XrK=|+(N1c=8QvB@37=M-;>CzvU28Z1)?;oZ5{KPxAUe2&$!dPigaB54D z`N-CpfAvj}4*SW@pS#VLuSuMc4*A`Fu7!v{5wD7Vly=Z#8e4KHo5D1!sV1dgC(SvQ zn7NG1vU~JGYjUw<)-kI03y+Eo%%)hq@VaQ?Gxc>r)H2=Ko~VTlti(Dik1FPL-$u$T zMg4eU_%3)%9OLJvsUwjSm7Xh2pRf$X0d1w&@xMbii7274+Bgxl zjPh&;!;@(r-SG>7#SizB%H#{7`;XndzxO2Z3!y_@8%Z(bs@8^L$oAehNti{;%%2$= z5Zi*F%or7n3hi4)^SwTz4o#0T-B@9EaYqZ?ty(itV7i@`2X5}mwQvc7eqU*xTpEJP zXlHBOi!cJaxWwEaH=ywJk$QrBWbcb$AkxqXc55f+e7e&|;MYe)ZjWPcQFo0#_DU>k z_T}CPxET3JWm#WG{@9;J!wGrLFQU`aM#E8L#qp%LF9%DXG%#V$jG$4%Tv{cenJ&uUE2GI=WFQn8wM(XN+w) z)p+l_Zr=rPMjYkLmT{w|ZuL6OUmi%uvnZtuwRyJkOe~IadbgaB za4T7O;%ULhTveF|GA;8@OzvnbgMp>&=hxLxob5}rJ$a9(_Z^PQ;EY;I>l4x5eW_ti zfu`^fGAz!vZVU=JdKW8bVu;;XRw**6yvAmYNGs-qySc`Bom3?!wg0YlF*S`?M(QJp z(7W!Qdh6BAp^zz?{q^zL!qfAoeI4CYQefNktM$pJ0+3)Q;GI>g8zgIVKdqctcrH{R z7*&jk>|2=}rKPhS)?rDo0<19)z`0Y%z` zMed1iehurCmdFFT270pAk$lXMV*ePQ{t#a&sJr)-`@w1RcP*jrPXz`McM5*CadT&9 zOm1kNYU@nF-6N~V<;0VS-B8l$6RA6k!S@iF!WVdz9R0pOS6XA^hOz;lU=wLj3X*2e zm+OUzMZe%|n#;w5-9%PqJC$fb%M;r-$GgOoY0}Q}_^Ws(_P&@zY)i6wvRzaE*p0le z9cvRM#0FpW3W6YWaRd3UWWPxP)b*dynQBQQAye`v54h_Ire|m6K>1A_1M>y~S7Sbd z#Pz0(ZS1xf-!Qd+!!qiUG3cz-SK|b&_=(r!eY;@#bHX~rY}$blUef-s_{nnw`(KBr zf>%(Rkzx%0?RH}GX0yBhdwa8UNfmZ)8_e8A8;9ous#WX6!O{~ixwu-Cd_EzpIflxL zZ?u~Mt@G7@*ZZ;Mp}tmgNR#ayOvT=qe2lHVJ!RQ-jq*vq_5=z>zW*6<8O;@yC-VfwN^jNf#)nW8i82#3*bz4iY z^wy`QC(u;NN}ZGKvI9pd=m?qM)5cNcf3<#c<#6ncM-Gje1LJA6PEzNj(xb&E#F-`R5D2v&B% z4*N&nJ3|!29jDEsbA{;W?BTJ#>KYy|_;Xo;4v_2s&xH94%`N5oI@fy|ZzVG-!kQkj zH}@18scGF2f+wQsLfjEMeHM2La0!||h*M~{oE|qKLr6EYd?Gjs*Y7yLoG=x&UaUPm zS-KNRca!hzQgDW6s7}yI4f<6L5DuIQhm~F`rHTw2@)xmfm^dIlwa8XN*irW}-npc+ zA6A*(9HC<-TK89I0>}NV4zR}8j>d3{J_-tQhL(ZUrEZ^}v*tTG( z>)k_h&vB%r`Y3v#L@k@GBPmhlVLtJe+)}pX(zBncd^5Tu&$)MN#QAX~)eGmu1>$~` z$~Zznm;-JEQ0);R-`Y66j!(}How^4H-QKC2sQ3Qy#E2tA!r316YYL_iTO1BkPsfIh zh(kb`-V_iHfGdv68j7fIu66ecWLDLG)SN8)6&zK{{W3S!TAyqip zAl%&EPzyug6FTtCu>uD6&A3qux8ys+$|=I*!gcsu~}-p;*zwS|@F8 zPio8?S4{9kSmxf|umnp!>>sT2%@4$iFlT7^<^Wv=9}i1oBwh7jZ@ubnq4s8w0Kao- z1(mRE+U%^)%^)p%aG>>5LqV7XiylQ=smZu-7D{3}Sd+Z|w zd;SvL*pO0E&y|{s>jImIvh6@FIp@}Bw%r`C;e8va<_KIr0JE-KL_CasBa(1ub$QHj18j|oq6L#*>);usQyguM4^I!vIe z8`e~kq(smgjwtpsRjAznBkrT~&4t#L)($kP0-9Y~inQ!gE1r*E>D562-UUT6dRx+8>9GyC^PAgsh5+h0TP_gsdpXzMocPF`|MC%0Qy> zPXJ#UiPqb3huM|G6uU|XTg!}ietGF8tMCEC*VqLxnVnwSGn!x$QUq6$LnPCpL6){u zbM0$J*^A8et*A7?c>Kbn4ytf5%I_gvB@vYwNO%0AuWO^hQj8d%j>Fp8No0=@se%z?GGQhqbh>6B+b7*OG ztEfl()42p-rW1Tau4++>$ePLiR0!vX`)>6U(8Sy2$0e~wnA1S?VqIVNZQXxQdCc< z`Pq`gmpIvcZ$yWcuFHZFCVEw0VuXjuB2c2}tK6{+F+%Qq_9B?bc9&u@j;cp!g}|wy z&$|NL{0f%e5{{Y#*^IgeZR`*@!9oVKq=Ge1;Yq>mkZ2|PN?UeAt@%4oo5~##l*6v! zS!TaGVLNI|+(JLO{SwGqrmpyf+C_tI4ux8_REE!$nL-{J{l|p^Lpy3qUsC? z7nt0lGNVm35L#lVsYxyd3f@dxl-LPojfYgX3a-fMxuZY)Q7NK)iYT0cH<$%EI{Le8 zl|POYZliqeR-_hc{|+v-dw=wahQ2Z4IV!GIh*R;SZIBQa+@y8GQE`@fIx>BzTbG?pC}MhoV7)wYa+m0>uds z-1X%9lY2eue$F~?;QX7+$M($Zy=TjH@ph9;dacFYj6R*Df39Zi6r})!v{psFH3iwp zr4?uZef+{g(Qzdc6`HPgNRTzs^WgW1<6aSlq=1Ay$b%#wNKlYh6r6oL%HHW;u~=SO zxG3Xv{*`uShD%$!{-cRT?4NBBSrIo$-|72m%MB_}F{xNJ7}t%MxS(5pwKU`xO$Px~ ztY_Tsz)@1n;Kazz5e$%WmYPE~nUf)CcB%Ro#)f-T&WOpBDkMe+O2rf|;{=>fUd-4a zh)Ve{hD+&ce+Frj7v{Xn0PqU=2biP9jW18je$jm;PFwN5sD;h-_9l!+6lSs95Lx!> zb*G2g!cts(k&Pv>KamL9%K<*tkqrwE>*E$b1>%^R_Ag0{28~NSf{|2t5a=# z;U-?%QxERQ<8n65M3Q#sWMi3dG2CzJF!C^M)wHru?wk2(Nmk9A=L7d$x0Ft*uJ&v~ zc_r=`>4VeNaOP{cYJj0tKxxS0#s+`yG}Y9~I)P@oY18oYbDyc{C3Ej2#EsV+3O-o2 zF(!T-*~OHXIbTvi4OM#toPT~mbGhw!(|9OQD-pZ4{VN2BT|jl?Um|hGa&qwyQhWTU zFmhy!rBNf=WQDJL%;p8x3Vu=Ho`!;P>b=!&VOjDT z*FpNy(*>6H$v{-eE1HLo*nD_&SR09ohjQfo)>7%__W)+%pdO9tiX&B?lB*HHU3SmGJTjFXz|?Nl8o8 zqI-pYd~Yw!{H3bKKRyL;^AbD$%1lD6A%A*`-ZhREFZFsC|B&8;R_zl z5y;XYo{Ikdk-)=vt)VRWaPL4Qrc|?Sk29|QJ~aVLMr-E+ZVj<;{Hy0bQm!j2DAgu+ zx5@LE?$~i_O+nGZDea%2R~GE)n&^Djkzn{q{^PmK$BBx;ym4;LR}TSalYaD+9mPK^ z=a+mZh@kgi+t^3Ukd_Wz%d{GBYoDbUjUM zK~E(ff|gK-_TA7Z5AtR~ustyw%q=Alr%zSJC|MIUAd&0bN>W z_d&)-Bt#QN(|MXD4T2gQu&il~+T1+BkIO?8tpm%TpvyTR>m(`d?*D3a56VDg#^Dv{X--mNk@l@4c zW|M-O$44j~eQRta%Qq2PXKwCVy76&zjN#+IxMQ<#vwFTovQ+F<_{ev;idWF?Bk`M5KJ|i)Kq0d#i3fl1mrCmKDq0wz3O*NvS6GZb@ z1UXYeeB;{ zwwS8B7!3#}FE1(CD=1xmB3FFiyaywvAXry))c-rY#x_VlVwnxmei1&-h}7Su?s#aQ2%jh@p^J;@MODL<3$`*NQ&m7lFAWSD2f6y|Xe9G7ys?<& zPld?!!yh6HZiCA^>pa6)=>b=uDTTgNqcOcwMfztyuTXFER+NrjI@1^=sK4Kmvz>cJ zs!mJKB1{CXlDx=i?)nqS=%aeOl-qqDcYST z<$)nf!ar=bK{`;5o^#6=9|Mj;@F$7R<&N!M^0v*mLG_C0So&cjB933&*yV;1Bp4~% zSYnsf@LlN-Ki0~k$11aQl*M#LTikI;`-4!|Ueu&W1k{js+sXtQNPDkb zt1uMHI+XQJ5SWkiY*dCZm^Ro zd1uP{@nua*dun(_73%^xJN#ptH)}Lg$zO3VFwiV~qBCx0vlK0&T0tiQE~NCWj5Qsa zhQmepSMTlg!DC8U!@ExL2M(dOAW!c(zoWd&54N~{sZ~xt#2tlPqki1X%T=b!Hu_u` zJ){GwvMlZQiMkkA$fZU9>^PB5aPP^A=w+AHVLSP}+nWRhFFz1w8MTf@vbhR;oc9QQ zd46agBuo=YD+aD|Hn+MuB!D8vyrf-+Zkb%co$v*Cx4gxq#HAQV(B{^-nvM~~ko1#J z_BfY!^xn!tK-<99U{O#MY0lFxWu4?|W^hi9ZL88qe*dlXPh)=(98|~>dP7XO6+kP= zQo7Gqr5ELpW7S9SHI+qbyfx!;Gd8CZtsS1+1bounqxuWPfzxD{{CPjJPWAmQ;t!h9 zLm?PpN%8@f69OzAo7AhsHfy7Rs%6NDm{*mt!XJVWgvI0&vG+TSVX-vD;-ibG`ZfOd zH-~jj;9VUKI)lcfkRA@B_LF#(G@9>z_yE=04D<+v!Y2t zWy4~(a`K~dMEma2F{A7C;*IN~j-ytb&xc><7uh)n28H$6@TfDfDr3Tdplaa}!J>Q; zXw1@0dP)P?6lT~`zH%v&%zWqXvnh_tPm_1&jNoupj0}u{n^NIoSs^gK$65I4}&(;euD#)ukR1@7WB(R|8Z$pPLU| z>Pz|s!tc%ZC0v5`^v1^Hi2w?V^wuQ3Y#62}c|BL-8Zwd{+(~ck**Gx3D*qByUPVKT ztbiu8ar&GHh-`0@QA^ph<5Fi>HPt^k6w1pq^(47RF%+$Hq>)V(k&E^068tc zC$VddfvRifsaQor5@C{~8~d+6e88EU@(oXy@ZW-c7amahBB9fZdJHxN(4K2 zyO{!$cb&J=tZh_PP})@>35_jg&O~-YO}S5U8$ip%!i}{Z{B&z{Oe+_!bPy<1S!p;VV2-qI)3LvPy>cRqWplE++wx!)6~SZazN$dYbCY70Xf%f#()-Bih`D;^5Nf6A8%U0QcH@39sNN)0iRM%DjgwJVHz`}okoO+b z$?0!HpugExVCk^# zRO@yXVBP=2?S!%tORpTnfJN)3_IMG;P(=%sa#$4>tM44%e>vse0#1M4n3rdsCF37P z!sRsOfGT}Z+_~726yg@P2Y^$z!l z=GZ~%kf)fp8OVdr4QaRaigMi0=V7aLVB8@SEMCEoL`AmGuwaL5TUJOBb0!knFB1Ke z8%H&BLENZmoE+L1v+1(TbeZgaBW{Nd^6-`Bghc+ZcocLfHQ8Ok5miXmT+x6CeIFHd zZSuXpo@o&)==|Az6!7BG3hpIZC)8DN8r44ueGC}>DZV8245c=u^O~%EWRVm8KRoXq z-!LqE%TEgi#(p8jQeDv`<^#}0m~EjXj_I+GUoh6dALimTLyNAeUp-hgPhTi>`w zk#F|m`hOM`cot{6#}C;>1_SSd(O5Kvy~8r2`ev{Na;giwz15|*U_ZrN1(M@gQu)0YVtB2qd~?I(LKrS^z7BGMEc<5UJ#{u_YHSc3e~+oi6Rlb#;J zjqYCaetS!cYmUlx6io_4$rYLPSZ;A+!wWfWD!%55y84+fM<+fkd4{^`5jJlv9quHM zD?Lm?SyCR0)91_!-yQhw4XU&;oHbM818GZTjsZlm_c2%fPxj&K82$c=o8286f=B6P zKhouBw00WuNZIbv3xc0X){PGXj$?WkEaBgQ>JLq!2h46O{)`0tM)Vb<*)SV3og|T-wd16R>H6%XMlB(|vpbL3)hKPVq><7O@tm9KccXp}V_8VW zk12;#sOSAo$wzjFyeG(j4gXyutZWTAD6DMfBRb4k?~VvDrJ|)Q5AslWFXNQXr^xOU(}y$U~0 z3MuN?VzqlS6q@6DxjLo~9`Tyls-qZ_-g}=!?=aM|?qyql@k@o)Vb!7*CeBj@mvTck zRTVl>&g?Qd+^f4;K{0VR(^1hsZMUEeZ`+FH)}#K6jnT9?vSH!Blx3;q_rHJEyGBhA zY6*6pHJ9&KjnH#SMnn%v!zk<`umOekD=$Y?X$!>#65{(+2U~D6`d(mjT8xG8h{;UG zq5^I=-+cxb>$wN=#$pg#_}|}Nk7IL>P|?dUrK38sPRb3~MpfxpZH#xe5|yW}j7Qb? znWTgx7t}8{pR6M9)zV43TB$hCFGj7x08}H$E#a> z@VfB|t`Q>T7s0H%Ek2UI!+DFFwEERr`MXq&0r#Ld(E1dQ*o-m2KsFINx2>@x{bz8bkE&cv zIAr=FXQDtz&3SX6(J0&4Oz&MmX%^Q(=GHI@RK4n;P>6hD>zLqt<}Bxv#jo;+x~3PM z`2quoj?wL0(?a!2LDv>J@bGSf%_829*oECFqMT5mLCHR?>DY1-uIJr#ZZq&TTsEAY zcJt^ssZN)u45|7CHvfC)`mo8ZI^&Jba?vFhzuS+X4c6z-d9w_b4!)R{;*cOA>u2^Ah)Knxrmw?b2WQEjfTFmvQzufB#xqDLXp5y>og%ES4tSdTUrnp}fA*n&&GbwIytw zqcNR2ck6fmGY}~a1}7BTlNX%0vfm2}hZ;lW}flp`d4#oSoyctbJ->MP-8{@hQy zHhto-#f%eAczlM8+@T-4Zv3;;Tn(-Q!F|*l3~TomcD&aJ>@xGO7ux)X zbVTf`_~U$IcXQO-{L05jI>FdsW}TYcwjY((Ow8L=0$>XsF%54cRUXZ&P!*60m6&AL z)&BEJQ~l!CPqxyq+-q zr+=EC0C48ymWT)!;YJjb zwC>#=K)~B`LVMZBXPpZ^3|E2Qb)lorc82H_Idv}S+%=-u)V87k7R2{cjrut`+edsl ztGQxb4_ows_t<4wG^_n*FV(ZZug-UisngQti4J_T>vs$R+6byGZBO12gyE?1p<)?` zRVz2_+rPvns(Y(ZS^Aa%!Fk?&vc$u|DxqzFsWvQ4+Dn^BBc0xYa=Jku3PTNh7b_Lsvw~?R+v%6&9PlK0HY< z!bUgNq4-A#-M5!Jw7AmgW}5RuU)pzZx4~%&-Z#!D)lQ|XJjABXW4tz9qlHB)Ix^YT z;o@6gmTD)h@MA+Y5lFXWC4BAty z<$d%D0%q4;p`lcrolo=e@=8`jzUM3g{eG_ZX#a});rI0)Ss%&s?lf$H%KBjg=@+@0yqUf)>sbKGLbIULwXLb6_ZL}h*u#tCm>GhRJE8-Tuv%?mJ zFn#p1-uf|$*hz#>TUI>$sC!yP2o2d`P`f;YSUYAKG^Ial+>yt@%Kh8f1FrMf7gmG# zwXZPbEmFRQ-_i409Bl7f%eeUcO2CsjUAbqN>aRo;6*0#3zmb~I$F6gAO-Q1OGqre{ z;_!SrMOR~@IS3yja%cfLgo;2Zb9rZH8rDbdxa@0@`z5K zI5h1NMn)#teUL+=42j+el;xbeW@@b&cL>vMkAt*G()j){d1Y{VTL|Ue#un0XGK6MZ%_@}8Ci z*ldzHt%3@_Cz)bJG{;N}otI?FK1ICeO13QiTZ)~CETAz-;$U;!DXiD=H8GM8uF_qY z?sZamQ(l%Htypmza??@vtB17i2S@+F8NPBZ)gHK-A@I$Y1unsci?T5P>>g<4`D9+E9>14ROu^2*s$-ICIBRjU zzD{6PJ>RSk#=zH~wQq=Vb-Y|pu$b5(Ij|z*>0}QS;cNGBD+$!AG*Xpl0%jefR$%7{ zI*np!u1@JK5I;U1&5h_GVvpX~t zaWQw1hZegVnr<-r4x}PN%v4xlp`(##-n}T16&}t0dNS$AeUjZlf&XMkDSDdSd25q+ z%aU-zTDs@}<|$%(OKEuf^;ZSc$PWQy!_k_0!5QL*gLxi6n=+F;tALfcs!$%%{Lo9E!!JrDv7KfR@W-W z-~R36+HAM2}E6L5-8Qt?onu7%0y(8>h4WRd#9$9(rLDtRA<|@+V5P5o3OirjNp!Ctrhk= z`Gw6^^)_wK2|xg|!tuJtmaX>wD>X-1UL__GgB18I|^J;~Ri)8tsKaI<2Xy2~aq% z=tSNS#r%ZbOr-5G@$29@w$2Qrtz(^AM4=bLP!~ox?X%@j?SY}WUBgamcvD*CKrf?} z!nSEiRwtq=UVb<|m>j82F>|e@qZ$5=^w*%cgKyvjQ>y0A(Vn6$9A(h7Sbhwm$hQM5 z>by&%v)HDsWEUXXj#NwX8YI)62vy~S zd2i~s-4)6V07zud(-(cjrT3|FpT1qwkmH%kI{Q_!v)C@QxTfD*vR!2uIN3R(Ba5VE z7PLnnUG9vZ^Afp!%ub6A%fHZkErnlNMsK*1KX_tX1eP=U4y?DI^jyWyl8=Pu&I(;l zEKRGI!bIKy`T*KvqGGnosTWUSx;E<;DU5s07atct-R~b}Y{A4e^8;rf8h8N{*F@TG zQ`0bjR-1b}(^_%1W7)nkyM57@5g!L++Xnfw5l6*y&CBLiE8FRtua@%f^U4a)emUfo zyE&*aLX@*XUgW3*)z?dO6_yY86@pVsuP+d1qXD+J)0Z>lr%Hw<^)R%F-Hh?UcVS2T z6uE|R@ZDtt6`votG`8*0i3)DRxeq_~0y5o)ho<>YAlf}9)B@HODmFPVb!6*-)|?Jy z2qNOD37kHpKljnhMO%OV=Y=7Ng(-dD>Op-@bA+;EC8aIq7On+@R9A@~&OP4GwW;rr z(2!euD+QC(N?|Y6;i-dFZ0uTQJCU2uMPh=1j;yYy*i4+I>0KfZ-Nkcbkj9GiEJ22w z`1&t;FT}DTM$LXf?Sn?oVp`IhZm>OgjI4GyB#W(pE~l#=M%h%qOQteM%~zUUh3d6$ zJRs3HM{~?wE?#4%b!-h}g9Mo>ap7mdg|ky0`}{*3bKj+Wb3#CuVj?0+Dme-9-_G}1 zogFz{Py6$H_jxVxfug~>Q&OUD%T}hWqts|n#%+yEUuEtsVFJ#qJ>>MaOiiG{IhKa8 z{s$BavL*KOvjf=s05(?$s=iofrfOQMqCLXwTvg9#S#j#Xd1?r*nwOb^Ca%+HXKPyBsTEBut+@}1gmLaOr#PFi7 z(!*F-LTLyvd3oMqKxfH{uOV`=D8`p0VdaB|3YT+U!j9%HBE5BBEl>TYU-8M6bQmx* zR*MzGpc)^D^Nv%R)GFtg3^OVM1IK{ydqjn8`O2XQim}89+B>*lSd_+Svp#FweDYPu z3Ea$GXs5JuQ6wvZWO{vUAx!mUx07_K85sx5yd=C}_I(dV0axgT#^^AOo0m=9QVOqURd5U`QT;0>&Py-B5wPmpi7L)G>n}O+ySNbRj z$OiBsFIPPm3Ulq_jdl;WJ8g#VyB({rHV>+1wc8RN)!rdEA)1F&=)SJ^?JX*5qV{Cs zCAHv83Ss$amj?JcSvn2&;QWd`NfkvI)nNp?0izfddwV9xCFb79g1mS3D(U-|@wdNG zQC!AqWD-Y2C9$_i=JTa`Xqo23tW>oQuUaahrchZ{1cg2b)mOiSnb5mJJWl(%Sjc!f z;;nt24|9o`@ZN`+mFvkav(U=!SRGQl{j@C2Jho)!d_e%g)I(LF7jp~DE_t85Je5RM zrr@nPz;-WN<}l#0XBt>>(V+D$Ya{60x0IC3BJRQ}SSOMVmCQti95H%D7*m_}DatZ0 z`8+K`Qp!!8ws+rO2$2xtAN?FhN^oP%CE(nY0J)XgoYaIXnS{&flxt;4f&{GIeRpl1o17#Wl9(t2D`CJmQc|L8&c%gh) z92w1)V$qLj;UhRYW3}guKh46W9Nu45y7&3y$~6WAyt7pJ#CeD@7M;MYdl*XAI{nS&k3j_Ws~nKLhV~KGu0vA3KAgTU)!MZvriBMI<^Sj z4s9^tEt$9+J3{AH%>4kfQZ@D?8R2>0I1=|4)+`<^iM>Ir>G`u<-+LjnD6Fej76Pu9 zD_4jmnoix0KEqta(eWnsT&G0jcj`SN!We5k|a zVE*2bWY{aT61$y(N*hunSe+m0D1r!po%Y;PL(e^C%#TicmX}{H7E`U4ka@qm)cimy zdB!Ao;hM1axbM{~Et;}+gQK-$wU;6vFnce}M_^rEys{aacd`&gBni3XZ)nW4Hz$c0 zNbd*-D0VL@?U`iAAuFHq%jtG>4WjufQ`grs?J&6#9)AC?pw;j09nO{eZ#ODJfQG@r zK-us{n}0M2i!0cW(G@J0XZV>Y^rr^173mIF#N*~+fRfPJn9pd%byqTrd^_ssPYc+- z_TSt_gII)pPur$VQ0SWW;K72QX%yDc`2Nnu6sRL&#{U(^C@Ps!cc;l8UGw5)`{y>1 zopU)62}ywqr>_OMcXd>nsxC@nr9VqiNbad?raDZbobtQbD$y<$n{0B>W&~XJr?(QQP$W`EwAwL z{*H`hqfRWBQUCjc+$m8C zm2U>A7ua5Ec(d1{pB(qVWhl(w%T(wfn)Fq6n3s7_ACH|dKH?&NeAzg|L3c=q0r$)N zpLs^@wK`OOVagMTQ7{wB=e!D{k$y;L0r+kF$-Y&MIZMj?`g`oqQm*mMlwo;!AJFM` z^-{9+@g?afCm;VkTP})LM{5rcFF{TJk_eR6@%JIf(aZG^!@3XmV=BpqZ;v-_%T06G z@P=FBanKR3<(Dzjby|I~RSFYz@FTERHmmXDPEihnhxjT%maJbF&CN~d!pyRgmm8(p z2ojZnnq73Lc9|tiT9nSwP8gZUDlLBT)@@1itLwsNG3K@$dA`3(S=jOTgnC4+ zV5b!o6=2WH^z{G7Aj`{&3?aH#R{o_q7+r522%s2r%S9D_9ZBOOld~9bL0A(|Be>7j zoP0YzF+MoTXMPT&ZV3Q<#70C>v^LA6t8-eRBdL6g_*7f1Y@g=%;&v9%i&)xQ0L6*4%e92e(e*Q;yrDWx?aE6aGk z#{Ayra25xR#|SP}y=>ERAn<`o>bdj8GyZz6#eKA>wC7q73eormZ>XGX08~ZxDxm&f&>!rF#UzwX}`aszNvl7U2*68(6Vguni9Zx*$Ixj@auwtzuTWgPFYzu@$N`8&hE2id%I(kRVf_%!# z${6_Bc!RPKu3bMElQMET7dYE#!x2UU6KZd-EuMI2n5lf!%R@e|;JowfJ2g-LO588v zYa)4DS^u=;!WhSeGkCtU;pBeQs8XyPX(&T8EpQPFyn4C2GT87y!Q}*Ua%udOmPUsn zk$Q(ByhNpf&GLmEcK$;`f_KP(0hh)ifciF}=9%&zpXOg^)UvJb3{hURhfCiS%Q(H$ z&A832yu|3CKidxFME!$JheGf23~JEaDZ)1YyRmCoMj2^cw|@GQPP7~KERhUU4hILccUCW7}s`*ftF*#%z|Fb$!_xblN@Epfc5w2mb#b;`c>$3(R47!|&XCg?7 ziRH@H2N=GY6bAf11J|%&`+1oc7X}_Y{?7utFt8%-)g}J(HYBwpgX&U;iv}oK4a|St{VPf&4Zg)v!WWhEVo=O~k88j)L=$m` ziD&LI?(IFz3_z(=bUMLIVOL14b8VB@e@DII@Z#mji zXVyoR{`<=R5y!F$$^qpzM5pWCqWiDJ*V<6EWSg}ic(V31|Gyi!f|2RuV!$E>txEA+ zvF`gVUXvElV`GagzVF`pxm|56WFvGIc`SstD55GjIm((FY7JDqB%L-m_L0a-R)UBBv!c+FPZK80y{8U1L zI4?GEs#};}-eyxuUD`XND>66!OyB?hqycQ9Dd7?-m%X_|H3#4bz8e3ZOdYi+(ZtvJuCo?I^{xAe+Rc}aWZ z(J*YNdr%(=GIy@Ipff)tt{mHE7+nmTeh#?WcO_J}6~7%+@o}>bZGZ0Jb=Nayl(Pf? zDv%aeK6I1DWN9M+GI3{90C$ME$3gfp&E(LHXoE|LZwN+H zra^o2=OzC%G)&(YVqz5w(sbRrsAc?b9rB+Qy%JHJw^$<`O?TmA?_j?6-R&DlL|0Cv zPxZp+Dz*i3+pjK|xZoBt=64tQ@X6Y~&5qpvih8|p*{5zQ>Bsb!txDrU24jHsDqU*j z^44b+^4`QYD*fiZ0b}BwELpaBP&znHX7iIZm(rJq`T0uZ8shEl>fsfl0|eT9Cd+0Fy7bxBFj51?p$eE8!Ktz=R-!~9r7S6#@Sgq zA}o`Q&Vi@=cCq{(_arTlE~h&8HnV>Fr(eS9N8Q5e%eNn-n+4^J z%MyMS>2sSj%L1T0CK&ZtfNbj@^fb4B&7gfe0&N}HjHaaS;>=S%yEK?`#KE4h(*!y0 z+e*JaGcXlSL+0rniL8Cr|Fv{csrpCBIKPLuySu55qxHD*>Bq;jE^4ivtqiZM%(zOF z17cNNT5iMYp!XmU*Xy#d`d8&oO;wXyE53*xwUSg?vnV82)c9G5oVC96();Krf!WwE z7Ve|G&Stdft9(TJVq{4-<37B)h3Kz z$QvmjB0G62TH~5Cv2As&`=1u4z`aJ&QWeEw@CCk>gF@D`=xM6Q zz{AHQQt9SLYTOin^mV%76k5M9BdW4?VS?H0j+*OVV(BtsXeg>4Br!bHEt0uSm_VWV zOLV7mU?#sP8~fE7F)ZjLlVlLu!b#9Hd*}GU9MP$GTjva@`QfIaRy;hVex_P(BV;{1FtYpuT8- zzu$8ATtzM{9qJhn`W4*Z)te+z-I-1ZR>Z{U?h+xBF@E9KZZZ$Efvfn-xZWaWF|fEt zKP^C4)BO_50W=VfiOXwLB8nrR6i$U=RX@;tE?jo-l~#Y`_XbmJ0}=k$!*6=MCPitZ zd>#nO%IHf%%D;KB3zX<^$=VVbRMB8ty?oPr8R%0*oExWGACOOscX0X~@Vz9eXF(nF zde$)?&#XM*|Nbgj5pWoz0W+rGQOYi-MIU6hwUbU94fwZ$cp6lJ?w5-e> zx?uyZE?DMx7Mw}~6j5`a@LIWL9%P@8a6upo7a@V(Uv18*p4G?eP4>(;A2vzMeQ3(> zLv`9UR6Zz_g;qiM1(fXE2$5YJoMSl!{9>p=e@^jO(=RSR0;`i1aB|v)B5qt;sj~Rm zfvA!m)rEEtr+W4eVIeGQG>69pd`)o1ri$rl&$=ah*IjjLWudGO-akI_zb2_Q4Rzcy zx{&x%!BTPY=GGn6{_E$C<=)%CFYNbyGW?Ae=@|9XX2H0u&HWH?R(56{lN4FGY3gcZ zm~;F>%IQ9b$S?PI^;RufyrDmRsnXlJdLVOR%~e6uA5Gm4(CG_Td2j2Vj1DckWcwjZ zpt)-S#G@vyeQOi<8wjJTuf>!m7{<|5w9Ig8w;O7lCIqB(v153$c`++pRMr9dl#~+f zS?vv(n5b$y-HS|Wb$MM{%ai^m$IH^)4Y^-zOxZ4k-RHM*HkOuv^cB+$;+_dmyL3Y1 zg?Y!uJ|V`ityLw1S~=&K;bON#{9Q=rd;|RDV=~Ews*$yON&5FUdZ+GT4Sde)EYj%* z^4qKQ#wsCKZ~wR5#GSL<5jKpg@3B5?L^g1X?iz~vA)bbnnLF2~{Ub}(|1HZfyQEN{ z1l2Ksv)Fl`J&hzTzIe*uyzR3%U3cpLwly+F7r}D?r=J3+`lPcXpTk5jQf|qlU9(c{ zpO0R+r%s{MHE{lqH+jf}3JIif1>>2W&ex#=W_D=y)J9yu;s3Y~BV)bGJ=!e#rnvK1 z|9Ypqg*ue;S)NAHYQwesACJ@!1=>Zp=mA^?dj8948@Gr3cVW{lfB5%L|04mEqg#Xv zcW?SjLlk2|8k|1@>G0n#VBlw_;IX!DsL0*sf^Ff;x!996NUS`N`3vXddA7`#-&Ef` z;&{j=x{Nm)sIv%v4#U>ves|>sHSlYI)1Z0-p+~HeRI~mUF8i%r$1dKt+r2|IJ)<1a z)rxLyP2$HjJ==Eko@>N^!$vTnQ~s?}Ptka&fjFtT_cV5mZzPS4t7~iTR3RfwiA~A! ztw>H8Fsbx1B0M`&hNg0~=+SPEl8PjzDl@;QE;IeV_6hy?mBY>W$Y5IdFL7ne$s-S+ zi%X>6!gS*_;ojlB`pO%q)X#uF4fIRMeJ*J*#Qu29zL;?~3Tg213$f~-gM6Z}U%Be` z;VDw1d^*!sq57e95?RNw!^KUtk*sl~!z~&T`{SFJnq;dM*9$8tT(JQWjO0`3C+^qC z@e!erMCh}-3a%hIjt`FXpbW*SHhVnFAU!i;FAVRjea^J-&c1n3@v9u=p#7R!dGo#zM7C zFFzXsYd3rp=5|;jKx6SRlJapnJ@U=3vlJI?ftYWf;XJQX;+?HO~Az?t+^0q%Q z%x15I#;lF&Vj}Yg3Z;Es%nOf(E27Au=A*CDjeOOUp>|#86 z&B%Tp&6L|;_MJXPSBegeDSFRJ5j9PpO1<`%j^jr9$Vfx8y%lQRv1Lge809lBnh)#$ z4C;LNY9=lAl6b?y;>W4GNc|+Ldjrzb%M-AX_4@VeAw`wwuAzxLqc->~b#A{Z|0zfR z&;yFhNUbJtq!4NNb0hptmwF$(Ebfc*FdLh<%1 z9A*UaC2r2luyVGn`y3>wkE3|#g~#=gA|mxGuX&j%lm_}4q&c71)%%*{DNN3|oSa66 zW8(gq(9P6a^ziOXeBIABJXaU$*8 z4k!N!$INviAbOOPl5&W|@?e6g;5}uyItLw3M|5<7=o0nt?eTiHy6CmdqDf_}L#g;! z{;{h&ukRLKvV0_8_Gcazs%L8vvFgm+OnMG>Ow9;|JLBmK(O?48*35gfzOSrYJ=M(L zmVoQZPPWgHV8HmwCk0LUc=4jxd9VUrlCElwc$z?BJqT5Le6jGC%B-N|o)-*;qL{M! z7M3ZEm1&$Oc15>!67ll}S-0h1??s_kHwcHM&F-XXk~1}S2V(s>l?sXZUFhS*iKYumHYPL*Zn4{zmiW7Sg_UxrHOmN^*gu~NW~%~+ zry1{zsOB$z?jfZhHgY0fU_^`g-rph`zhO1$+)3FN$iuy2V#<7^1oDduQo7#5rE8Ig zEVohKuz_T^;$Gc>y5YoGu;YCH+G$EF#ZLNxj^uVb=Ht-$3AW~3-|32t!?sxs&@r%K zseUCN{&{8AiAtSP{KF7-!8ARHcQZ)r1WJ)op5SCsG$cY5f=J@ zV`gk$?S{!vypAWe3;7I2TRI~r(w<2oyYjhTW4L|uli!Y&M=Rx~j*4H|pp;{T{`X9J zc7h!$Atw4d^QNSKjBemNz(j{dM~qL@Kw^#PyMl%s$4f*y8AN$tXyn}?q8~?3if>^i zIW;*URrd$`MMbg|^It^k1)2>d)&2Uwq2y>zuNeVDP<8F=BB!wzQbJ5*FYT1vUWf{YDMzxU?tQ>=KhxP3}DbFkMUlQpF#pkAcP*z~lQLC^B_BOMm zRs&^`Dyy<|?(UzT@P7iQBZCfc&h zzXX|Q%JEJtxFx5hCRHL^CWUv0YE|<_g|}TZLKSS-xtQ75LY}16kCnR5gPA_g3Mk9H zW9A$1+R&}jGA)dKXDc3Io2!$ohe!G|w$b#JCGiYn$PGj;b8be_3rvXd6xCLT%h1*k zbh2bmkm%B1Wyhj&7?}c~(#Oun@|eS;F70!6cx(0={<>t3{HI2Rp>3IX>L%ANs@;2I zb+`|QPJVkB%u(=qX3*Z!yL!|wG;+)PqO^jIUK^7mSHf?0hdquTHl-Xpp=hMZ z-K=ArY%TxU&a&#lloOGH)FvVRtjbeVZA862O}1oT@sEF`O-(5GjUy*QNU+{jqiA&C zYC~3;^0q`7yKh-6KE4j;A{t9GD^d2xDdZ5|Folu3BWvp&JFbxtD*c-jeCf1yl3B{h z!5~x-@8c#-WJP)GtbfZ8g6+PnQ80&Fep(zF-SlxE891;nDhrUqM)bPU&xj+B`ip)2 zF~7|IQy|8qifp{uRd(ZaQR2~@1AX8jwpq1@oYRTcXlL)aZCGt2W@xF%jrl!1UM%m4 zRWg{4-_g38$`cfQTsHL7s(yLc#`ff;-qA9C=o6`h0xYEj0=7i{0>;FjRE4P-E)}{f zv+m_B#fRD1VDo&2gM;sIuXL~ZFt7CQ^D&O6+5wCoUq-%p{{@4UwjKS)NtR@K$FP>@ zwp>Qe?z3NmQrS}qVNJz*b`-4mmrjRAcs(>htp5BXDm((D`vt89Sy*#H9%)j?ucFh> zU1NXo3jAde&~MEz)cZ?o@};RfJF<)fc4M{UP}b=%dy>VS-MRHt9EI2&{_t@{=)J!= z{;L_t<5)U12R!-l+xv$vsdqlCfgs3nn;dhXq4+6CMMa2U*Y51Gl{jL%6^a+aY{0Wbe zi){Ni2;sr2CH|ncAlDb2t~iyowW8{IeeYT!sd=T&gHuM`eN1?Es>RN`fy%$Hw79i*BcN@n;}=fQ6`3i1)`Cl4hbL>NoHZ7FF{ z=$1Vk=rx}RnPq_JjMPr+;Nfpy)!)>OO9-nO$MScohH)3h3QwT1zo+H3uEX0o=uKN? zmNx00gTHmM{Zt1@|Bij4uJZ5~6D#ezoQz#Iv8$@OR<*BcD$uSy-)yPn1JWH~x#_;UCcgzhJtF@@Bph>7o8L4CpjEdyKN<81;5S&%k z%wja{epD;>GyT*gr&e6FT2|HmP2FG7qHMsa<~J%iIwvaRXXVN=cvszWT#KCg7+MSW zIDzrAjLPD+tOX&(kRW*uJ2uDiPg_yRu~YU@cQ5wbNZ`;X^#%0zld+$nn*l7K$Vv5^ z=!ME5mJVZ8uWKQGI}0$riMtymO6uERJ{2To%n?aB_%~~pMs+4|p_ zGI41;%O32XvCk86JEBEjrlsCkdMP`?b3|I}_@&fzb$FcX89jqJJNAe@lFA)h8BWfg z^r^W&N0fVRIKB4;{Ub|yKCCP(uc36IFPUWVEUm_UyD<61yUAH5<}?4G{>9Eh)d>eaUc2vHJ6DLI)b--&rSgxQE@& zZ!YjcJ5v9=EwLdfO50M~mKnCz*qRe3|14=cA>^K(O2~jeWi~L^OGBNWD>()*20e*< zB&x<96uYM|FxmGgC}`!8ih;33I-G?y@q%dWb1G=y1Q_Cf;m14jD^JY#^T?l^MXM(M zR4|A88Iv5vn4ytt zX|cDkVoPlw!Jm&UaH2&+zJ>oBRL!%z)v`;9Yv&cNJpvi628Ci7`2~1e<+EIIRgZ=0 z_9lG_qn%7Hk+#Jv204B<9y&+rR!H3m$|y5#uNQ9Gk{p})vh_BZ@GJpkU>K@FxA^Fn zN+Fb`(BHq$^PlZ@6_}!ug91@^lP!c;NFpHpFtOxa;Pq9Su}qD+XXfYONTmN1K=~}^^LguIPVsvvR;Zxb#?usOL-~VuBNY<eZO*Y*i$P!s{vN`c~p(sFA!$_mn z7C0%RoQsN4qsg9={>usJRk7rMP#@)8$@AS=FyHIwxoGk+;iFzfSMi#IKR;b*L>U&M zT25H9UCy=HplXfw<9Bv6Qy@{#w6?>~G9enl$ z1*l<%YXpG2#n&8&O*yX`3ujSEubLw*gmvqKx+j_nweQ za|UdarT?RwgR(fbRj_(2iDP6sUxP$QLQ++K<%|YkJ#oXe#_Hx!l{nN{wC#Niil8^d<6zzUoo&u-dnYqyDlT zw%pjPWBV_9)Va-;W{pA#lP3#8P9@a!$j>?=xQE1}L89F`M_8+~Ty@?}axwIpLT>S3vNwo_jy)W~$bx>9AB@jI zG6FHH8I*Z?a;lq{963L&fbGO77#~7xuQ+Kb<8iSL$CQvBK~Rnk<@^8su6_4g=q( zW#1UOE(QrxzA4i*Bt$J5sc89g?5)cDDXKdu{}#!xH(*{Cp7{tW;_n%GWQ*7Tvmn+x zwF;1}pQpi%;1+somwL;L;+LIQOPTKt{E9tu34y^#EFIx!~$}dIUS&f(D z?>JC%quET~s5c@KAfWkh2#D-AtJpDvgJVVlOlN*%g53R?c6Bu#sf+4xI*zeTi+=OS zO4YMNV;<=h{W(V!FC;Ci9A%!sU6NIKt3r+4W9g+wR|>}iGXqqdct^Y8;*mwe+!OC~ z`HF~KklhZCjV%}vGp>YypPD7~4*vORV&PJpwK?mN>RB>!R}h|?4mFb)pfKEEd{X?4 zq7H{ioRmOo^j0)5i&C+Rpg9wK|K8rDrK|To9b8N5)}IfzNzIXAvd?}{QT8_`+N34Q z#TvsXEFl8z!IFqYNJxGbw+Eu6U)xlQ07f)B4vzV}DQ$q;!uArP-+cW&v6MDHGA-2X z%*Ffd4+;0V5rrXHJ=TIx45eK=bWAjAg`;OOT6beL0q=MQ$Xo(tPyiS1{5-cXVmp4> z7KB=81UZO6hOEqjESObr-{bM50ag9+{}>~bm>OfT@GaDT3yBbO30M6 z@-f{lvVC!x*nG=ILM_x67~kSJ16#`J*u;cV@KNT+)`ZNiOm5}5fv+^;xX6M@`F82Z zXvzF8UvpP%d1%|p_v#Px6yyA=4d60UVRQAPvc`IL}fNWAvP_XQERs&{pvZRz56!`m6qs7(6r3Zhp`vDUq95eO?bL20ToMP-`!Dx16dtQ6L;-qtqaj@k0GS5z64YZ*D22$dEH!l-Ts@D(%S zmLK#E;^nWjD)(A9vCouzw!N!XPx2oSfR&+8W1^Gg!S zzji0A3<&^sS&7ZOj?^E`nPEx;jdq)UT=$B;cFox9@u;a~5q?$l{b7A>RV_2dRkONS zosX+7=Hy5g7US2>xXQ5ln43UfQWxKP_(Y6@(>@V4YfTcDt6N02r}i~E5K>aav99&XD$+NZE8#dddRM-cciPOX(jWX7m7}@{~U^Atq zVj%36R*aG=v;MT>jElA8?VU+IN>G0%ZX&PEM@}cC!l3c;3djQU%_b@UaHkQ3TNrnIjsFlfW6GXo*i%u47Mn_e5^r@AK{5Qs zjw#3(*%a?+(``?6g#^;uaVw&B0_r#xSHL6gOPAC9kmw~FF-ovMYxVh+bJ%95vd-eW zX08c%rz^rxr7pQI1UAQG&3hI18Y_vv?D1(J|AfX}p_D~wm3H8^q^rZ3$W=a9BBl-c zbq~!v!ZzS)K7XOu1+Z&@Rk3%g7;kfhMwh>nJ?q)tKle(OPDYK8&XvBv7D04Q+*jiH^HUIP2Fu_)Qux8L6NrRPk`l1(2kFCkJ-^pT%8vesP*Oc^Owx zIC!3xw&0p~44PCW-Xftt* zmWv+O_>;-x5Aj+{0$Ju&hqLHcn(H$8C<#UNM*iIMFM49VO;DJp^H)dng%XS=ML>K+cK<|w&pTI=rX_bn!0a#=a{I!1B_ zz#G&ld%-3j0)G_g2C2CAqqQ!F5P`Eq*1U78udKg zm89l6u=byE6bk>;wYAc6xa<`+JC2RVywq@5T<=rmC1xj4d~mnsZ&T?H2P()B)S7yfv`Azf$#*K60j?Z1aE zUfQIeIvE{X6kK-S$CXCDtjwx>K61jNnaZ~yo>pS{O|h~{ie*VwB=TN)1Ji7qLX1`z zP09SE?54Dvg;*cD@BCHO1}}DxC@(6TWVjqXVZ8gBP@6@@<$<>w)n1YfWay6K{?4aQ z;Khc+&-V?8+^F(S(XJJB$+$(ej_<~m?Y9DD1=+sja_OG_)Y-HhX-TnK(pp`bHed7f z-vt}U>%vWk)hf|`X?I!mH&YB7JTz8o3qfQ z%C9FcUN`(b*{9;8bf22-Zm-PfpCNFh6MB==5N}qo9pQAs z#yEc^n`6$Xfy5p=W;PA%y4{b!?r(hVENn{8jm|!o2`IVN~0+U($m?ghalyUzyaZamy|IZWkK>N3Y13`--wtTITgL-g$^cv}p7e-cuF$u1 zGu>ZM)HXqJeYiLiLFCCXEEe~Ds3Ui?oXIaA=i7ZDOZRt6BI2#|zvo&NX~%!Gx8MG& z>yBXI+qGod-38_GZtG6_#be8$W5l~#(;Bn<;oX@US{m6aMxV9|0?Xhdd;|j7f67HR ztYm_wSE&jdMpxbUq%j43Ph2z^Ki@4DEo!=fT6#KT|8xtwGHkm?leDy}#Rhqk;)&UNj-#g7^l{KLK6%)%%Z6oaEu+!eSySLE6ad zJ5F`=Ve%JZm13LS-cV?2sh3!F?roFexJ5D{=P2JF3Pr1Lo#$c zN9%NwVzJFXBQ%w#+yE~%6%RFR91OvYbn3D0gQLKT*!C;D;Oi0hXXV?4Q0OW~SPOj> z?}9j+csJj9Fpg{Tb37_tqAD34j=7_1^1gnUdh=6?qJKU6R|H-Ax}F<5D2BrG_BimO z8*gYeV9XxizJ9AMH9r5BmJXh1TF7X23;}$$fd_5I*2uVwnrCwNZ-7OY%BKp3boM$p z^l5=VsRX9nM!yQVqO!mqzU^j9!h!0U%?d%__3o09{Kur9KXn7o(FzgrF|qrx4#weYJRSVM zhTc89{1t|mxUoD2fe4#QnO_JzrZ-nguu#}{FND4U1#>%$SgfsAj4EYmA6#uWDxxZC zwt6F=KUOp(d1Y$xpsyG#ugOMXtv@t#Y13XkuH7V0pnbsmZ#L&G`a1~U9v4`{1{6W& z3Jk8NaFe>77=21zLvr36OY%C7Nt1`}hg*0B9TISwDBXw&M%6|j8HUgIXznTDneMMi z@-h({KtG4LIB9*2g^lwB)VoX)Dv+mzh*`vuCeQQJMz1cz%Jv3RAQzc;(qJwyI>DduM$nOB_7(Ptfu_0tqyy+$uD z;_Rw&_j*AflG_dyC6n={w`5Y?k5Pvc7YfT}T2X+GMJJQ%cnWl+I8_T&e_vVY~g^v>%)!d5puCc@hDj+xBTf6cFQS7 zK!vUS4{VX$ltC&38Q!`Vs>1$Mz_R`N&$ZddY>4$QCL!^!+ONZCmSnK& zgKX``^lpnSJ?~U2XH-jaeodw%Nad+Y+Q^*hR=HoVn-We@e46eOeK8hvMJ$;E`wq=g z+g)Dzc)lfK0TrzqED;~qP`77}@Cw&#xgoM#kOdS5#h~~{Rptlg&0d9MHIyd3Yx2ai zTq#JfKny}j+k#PqZbA1xp#6lMSL3oJU|nj4`B4&uo9yEDoma_mL?; zc1kVT+v&@#WP(X3A9Zrfri|Ao7tT+8=U!hg1{}D<2?F!WipZ*v83sN~cV<0$WMrUU)WboOD{)Z}|N#L5OE9+(-8 zp;L*(EwKU*N}YM}(HoR|>U!E{<>C8Do5<4EP-0MY}YW`|c)QIg{+FlwhZhvl`MVURQ0$5`4jOk5><-kk$sBGT+ zc!F)S2t(#?e4o*y>&h(pNdYD8R`0Q zAkQWWmy3h%086j5Kc4*%H+VAN*FVyM{V33 zFyIZXT`2dJ3GZP#ks~=THp8L|w#_2H80vOFEgJfa58qiY9yn*O^_E4Pu|wvngbC6q?1U`!uG%tLG)DzR;-Pk%f}F{=snYkWIJ@Wj4_04F z=kHYa*dE>15;mk*OQu&lG(LYC|1NvCE9>?zWH;N?xVVryz=FrQ;?qv1_cPtyu3lFl z6>bgl&bFfXcVDK6P9NG+TE7t7f1>hWq{wYE=ukt%++{*T`!){q=1|E+i`d4aK$vSn zqv~Dz1kyLr(lEn6le^M5wi)-jQ^HMw zZ)la@y9Ub^@G(&0Sl(wTIO+<+k~C4HcK%bxz#`HCH&QoZ9wu5Ims0^dZUY^As)*d6 z2!iQ-oK#FJS`0-F?b5jk=^0*Folmd6Z1>+FMkJW6jBvV<4&f7ILrO+3?vAIOG<>X& zR&{HyxM4V_=;lvnWy`g#wb~O3#CvU!)y1akqD;V-o&|c^^(v3GwPf(mw8YFr6$2f9 zcJ{|J!)FI#-{DS+H+TCj?Rqu8QO$ctD;I>rBmL>o#RI0Rd@EpsZ$Y2h2U$P z;pz(Le&q)hly4rkT}A?E_~f^GEH-fLlDcd(R>1R70xz1r^2HY2e3Qo-Wm?q&VfRG@ zt{;~9Npt1i`-Ld%@66?}5Jw0z|Mez5y#3b`dx~us)m8Mt3F%^z)p<5#svr~VIm^#I zCf#Fsj|YZaMir`^ht_K8smqnFrBM7rZ(Nk**DpTO)IEO95kU75N~FX3bB~-GUD`{t z&qbsm0U$FLmjg?ry^p8nN2oT2f)r>3bfxyc5z_W-I33Eo%b3z=^gSyTbLM71qqFp^kczwP@1feZ+<@nh(#^DudKe|H-uQwIm(X_mA zzwZ@eyrDAT9Qm?p)_4YifLQLxTYPV)&7?g3&dCuj(rz6+O{3!eT46ac9LhUCx)3qy zyMf^y(ysLQRd{}RF*0`oY^Ae2AarXxmyg-~x!irOI6ab!?Ne#FpM^CA1Sg3hc)>wF z(-iWTCyKoq$3}*la|a?;38e^^$18^&<<6Cf`_E zD`Zunrdb#b6>aq0J$P#2;|q{EZZ+7fv2 zvZKw3ax}Qd&=T!m2iBbeyR>&@H(PoXvtI^hh~+%H;cfKWk2}V6IG~@RJ{^2R4I3JD zxKyEkVG4b?svMsNrS9{tOqLk>t_+hnI&Q_vILP6)c0YCh^mNm1%e^@D0P26`4_isr zLR0YK{F{HkF=|e^jg8P2+l{$NRf>i!WBWht9MSx-6g-z7c%AwtU&FN1Yl0F!d+dxTii0q*`r^*AOCe`wZgX$U$tm0>Ean!LR-X6%% zbKp?juSYC6mb3rXZjlRpR{UZ0l<~cnQ=|vN0-_YtVGh_oq9GpQ7m;u4>3d!uVa!&U z3>w{?c(2Z1fV9b4K76bk8Fm5O>5{9!o!3FuFFLxH0{T<2hc800y~zDCz=X05UV8nM zF^#-l9$)wB0T1!#QA5TtsWTp9Y4(}GGRVjW&9Z&tA1Owf*2m(`R1!t?g#0!lbBfcG zxB_o)bUx_5QEdM{Haea{Hs`6ZRTW1emW;h(MT&2HEtt|T5Npp`>zwN6FP1S1pL!{X;=j7qeEq;~&#S5$C#AFV53=KW$Z088aNOh#3iUyVJ>ZA5$$Z zV=iOLW4#lhTcoa=g~hjjd>U;TjHum6PnQ`X7-fS0gfd&B`!O0Do5$?=x^QSo4)-|d zSR9ix-hA+4=xEL%s$TxTY68YMg@mbPLlOpOpzRs-N*RF#FNT0|adc4C!7Di_RjzfCKF(=7# zY=idp^ZiK>n3iAo3OsO4BD|0uZc!_GUH_KFFVMRloGdHHXo++snS)3ajRp@?cn(h5 zbIN%jdSMjF35k+-JwB2NNwtriaPe;!aqt$kdvEx`D5(_JPKKY!Qs!;7VqlRrTUl_Z zsANbd!Nl&j{RB{;6fSNB^C+kx&PeEnquVSWxeKd9W#GXMO-SaLcGQ#Wt5akgVD;**oz^g)@o~FXMk}NOt<}L>=#h2 zCLk7QX`p4HMi-i=M*9pnR;;(h!Fm_zbJ}1`dRuc>Cy>7~z@tgu7 z<$pIS_f*XzXaB=#!(R=wGi4eq1#d~+J0H!x;u<)3PSrjo&m);ZVP1D0k3!SrPHuB( zUCJ(g7Ou@f=Eshid=!@9w&1sNj%oom`qyvQZQat(4!=@DOsY zXYMcJrf~?-W{>>mGl0Tc+!00RC~!`O5V7emEtpHAwD1vFjASjNw|q@G2bcnH6P=*O z7Szg$wN*68X|xE0qqB4!bg@;OI%d4`C9feRWTq{?Bfv+n#>A`AKrrS~L<^>>Y>c;S z&YI`@!U2(I7*&Hj=H}vK9xtV``-&N=EX=b>-`iu(ERCtA1Mi^O7RjP)eOL;iwi>dv zD1g-ns32thWsrFHx1n+Dd_@0iF%zcuikdABHl$)bu&u8G3_v@>tpqPR13PylWf+u58a z%ruP5=-^71e@ziISIETFy{8jr^+X|5+2Mz+chVQDm+}^zzbg>=bIF!6o)nl{HQxsz zZ3^exqyVaqlS14{(<|y#0@NcWH-PNdNmc+}BO)zl)+>lcjL} a9uE@xxCE~IC(R$YkD8L!+sZdqVgCzTdcmsz literal 0 HcmV?d00001 diff --git a/vms/server/infra/grafana/provisioning/dashboards/mqtt.json b/assets/images/mqtt.json similarity index 100% rename from vms/server/infra/grafana/provisioning/dashboards/mqtt.json rename to assets/images/mqtt.json diff --git a/report.md b/report.md new file mode 100644 index 0000000..aef6db8 --- /dev/null +++ b/report.md @@ -0,0 +1,256 @@ +# *Отчет*: Взаимодействие docker-контейнеров + +**Выполнила** Кузьменко Елена +**Группа** 5142704/30801 + +## Симуляция датчиков - генерация данных + +Добавим четвертый тип датчиков: в файле `sensor.py` создадим новый класс *Acceleration*, который будет предназначен для работы с датчиками ускорения. + +```python +class Acceleration(Sensor): + step = 0 + + def __init__(self, name): + super().__init__(name) + self.type = "acceleration" + + def generate_new_value(self): + self.value = self.step ** 2 + if (self.value > 5e5): + self.value = 5e5 + self.step += 1 +``` + +В методе main объявим два метода для логирования состояния клиента +```python +import paho.mqtt.client as mqttclient +from os import environ +import time + +from entity.sensor import * + +broker = "localhost" if "SIM_HOST" not in environ.keys() else environ["SIM_HOST"] +port = 1883 if "SIM_PORT" not in environ.keys() else int(environ["SIM_PORT"]) +name = "sensor" if "SIM_NAME" not in environ.keys() else environ["SIM_NAME"] +period = 1 if "SIM_PERIOD" not in environ.keys() else int(environ["SIM_PERIOD"]) +type_sim = "temperature" if "SIM_TYPE" not in environ.keys() else environ["SIM_TYPE"] +sensors = {"temperature": Temperature, "pressure": Pressure, "current": Current, "acceleration": Acceleration} + +isConnected = False + +def on_connect(client,userdata,flags,rc): + if rc == 0: + print(f"Connected to {broker}") + global isConnected + isConnected = True + else: + print("Is not connected") + + +def on_publish(client,userdata,result): #create function for callback + print("data published") + +print(f"Configuring {type_sim} {name} {broker}:{port} T={period}") + +sensor = sensors[type_sim](name=name) +client1 = mqttclient.Client(sensor.name) # create client object +client1.on_connect = on_connect +client1.on_publish = on_publish # assign function to callback + + +print("Client configured!") + + +client1.connect(broker, port=port) # establish connection +client1.loop_start() +while True: + sensor.generate_new_value() + ret= client1.publish(f"sensor/{sensor.name}", sensor.get_data()) + time.sleep(period) + +client1.loop_stop() +client1.disconnect() +``` + +Приложение было запущено в Docker-контейнере с использованием Python Alpine версии 3.19. В проекте подключена библиотека paho_mqtt версии 1.6.1, которая реализует протокол MQTT. + +*Dockerfile*: +```dockerfile +FROM python:alpine3.19 +WORKDIR /app +COPY requirements.txt . +RUN pip install -r requirements.txt +COPY . . +CMD ["python", "main.py"] +``` +Создадим docker image используя команду +```ssh +docker build -t alena/sensor . +``` +Для запуска нескольких контейнеров был создан файл docker-compose, который настраивает 6 контейнеров для 4 типов датчиков. +### Параметры контейнера +- Тип датчика +- Имя датчика +- Период отправки +- Адрес отправки +```docker +version: "3" + +services: + temp_sensor: + image: alena/sensor + environment: + - SIM_HOST=192.168.0.104 + - SIM_NAME=TEMPSENS2 + - SIM_PERIOD=2 + - SIM_TYPE=temperature + + temp_low_freq_sensor: + image: alena/sensor + environment: + - SIM_HOST=192.168.0.104 + - SIM_NAME=TEMPLOWFREQSENS2 + - SIM_PERIOD=10 + - SIM_TYPE=temperature + + pressure_sensor: + image: alena/sensor + environment: + - SIM_HOST=192.168.0.104 + - SIM_NAME=PRSENS5 + - SIM_PERIOD=5 + - SIM_TYPE=pressure + + current_sensor: + image: alena/sensor + environment: + - SIM_HOST=192.168.0.104 + - SIM_NAME=CURSENS2 + - SIM_PERIOD=2 + - SIM_TYPE=current + + accel_slow_sensor: + image: alena/sensor + environment: + - SIM_HOST=192.168.0.104 + - SIM_NAME=ACCELSLOWSENS5 + - SIM_PERIOD=5 + - SIM_TYPE=acceleration + + accel_fast_sensor: + image: alena/sensor + environment: + - SIM_HOST=192.168.0.104 + - SIM_NAME=ACCELFASTSENS2 + - SIM_PERIOD=2 + - SIM_TYPE=acceleration +``` + +Прежде чем поднимать все 6 контейнеров, для начала поднимем брокер сообщений + +Для получения данных по MQTT используется MQTT-брокер, который реализован в образе `eclipse-mosquitto`. + +Чтобы получить образ, выполните команду `docker pull eclipse-mosquitto`. Для настройки брокера создайте конфигурационный файл `mosquitto.conf`. При запуске контейнера используйте `docker volumes` с флагом `-v` для подключения этого файла к образу. + +*mosquitto.conf* +```yml +listener 1883 +allow_anonymous true +``` + +Для удобного запуска контейнера сформирован docker-compose файл. + +*docker-compose* +```yml +version: "3" +services: + broker: + image: eclipse-mosquitto + container_name: broker + volumes: + - ./mosquitto/mosquitto.conf:/mosquitto/config/mosquitto.conf + ports: + - "1883:1883" +``` + +Теперь поднимем брокер и 6 контейнеров +![img.png](assets/images/img.png) +![img_1.png](assets/images/img_1.png) +Проверим активность через mqtt explorer +![img_2.png](assets/images/img_2.png) +Как мы видим, имеется 6 подключений и график соответсвует дейтсвительной формуле + +## Отображение данных +Отображение данных осуществлялось посредствам 3-х контейнеров: `telegraf`, `influxdb`, `grafana`. + +### InfluxDB +InfluxDB предоставляет возможность хранения данных в реальном времени, что делает его идеальным для данной задачи. + +Используемый образ: `influxdb:1.8`. + +Для работы с InfluxDB необходимо создать конфигурационный файл, в котором будет указано, какую таблицу создать. В данном случае это таблица `sensors`. Также создается пользователь *telegraf*, который будет использоваться для подключения контейнера `telegraf` к базе данных. + +Файл *influxdb-init.iql* будет содержать следующие команды: +```SQL +CREATE database sensors +CREATE USER telegraf WITH PASSWORD 'telegraf' WITH ALL PRIVILEGES +``` + +Все команды передаются через скрипт, который подключается к контейнеру с помощью volume. Все настройки указываются в файле docker-compose. + +### Telegraf +Telegraf предназначен для считывания данных из брокера и записи их в базу данных, в данном случае — в `influxdb`. + +Для контейнера создается конфигурационный файл `telegraf.conf`, в котором указывается источник данных (адрес брокера) и место назначения (адрес базы данных). + +Файл *telegraf.conf* будет выглядеть следующим образом после удаления всех закоментированных участков конфигурации: +```yml +[global_tags] +[agent] + interval = "10s" + round_interval = true + metric_batch_size = 1000 + metric_buffer_limit = 10000 + collection_jitter = "0s" + flush_interval = "10s" + flush_jitter = "0s" + precision = "0s" + hostname = "" + omit_hostname = false +[[outputs.influxdb]] +urls = ["http://influxdb:8086"] +database = "sensors" +skip_database_creation = true +username = "telegraf" +password = "telegraf" +[[inputs.cpu]] + percpu = true + totalcpu = true + collect_cpu_time = false + report_active = false +[[inputs.disk]] + ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"] +[[inputs.diskio]] +[[inputs.kernel]] +[[inputs.mem]] +[[inputs.processes]] +[[inputs.swap]] +[[inputs.system]] +[[inputs.mqtt_consumer]] +servers = ["tcp://192.168.0.104:1883"] +topics = ["sensors/#"] +data_format = "value" +data_type = "float" +``` + +### Grafana +Grafana предназначена для визуализации данных в реальном времени с помощью графиков. Она позволяет создавать панели, которые могут содержать множество графиков и обновляться в режиме реального времени. Кроме того, Grafana предлагает удобный веб-интерфейс и функции аутентификации. + +Поднимем все компоненты мониторинга в docker-compose + +В графане видим наличие источника данных influx +![img_3.png](assets/images/img_3.png) +Для визуализации создадим новый дашборд +![img.png](assets/images/1img.png) +![img_5.png](assets/images/img_5.png) \ No newline at end of file diff --git a/vms/client/simulator/Dockerfile b/vms/client/simulator/Dockerfile index eb66b3a..e47ec91 100644 --- a/vms/client/simulator/Dockerfile +++ b/vms/client/simulator/Dockerfile @@ -1,6 +1,5 @@ FROM python:alpine3.19 WORKDIR /app -COPY requirements.txt . -RUN pip install -r requirements.txt +RUN pip install paho_mqtt==1.6.1 COPY . . CMD ["python", "main.py"] diff --git a/vms/client/simulator/docker-compose.yml b/vms/client/simulator/docker-compose.yml index b9e08bb..0c5bd78 100644 --- a/vms/client/simulator/docker-compose.yml +++ b/vms/client/simulator/docker-compose.yml @@ -2,23 +2,49 @@ version: "3" services: temp_sensor: - image: antonaleks/data-simulator + image: alena/sensor environment: - - SIM_HOST=192.168.1.1 - - SIM_NAME=TIRCAHL24 - - SIM_PERIOD=5 + - SIM_HOST=192.168.0.104 + - SIM_NAME=TEMPSENS2 + - SIM_PERIOD=2 - SIM_TYPE=temperature - pressure_sensor: - image: antonaleks/data-simulator + + temp_low_freq_sensor: + image: alena/sensor environment: - - SIM_HOST=192.168.1.1 - - SIM_NAME=PIRCAHL11 + - SIM_HOST=192.168.0.104 + - SIM_NAME=TEMPLOWFREQSENS2 - SIM_PERIOD=10 + - SIM_TYPE=temperature + + pressure_sensor: + image: alena/sensor + environment: + - SIM_HOST=192.168.0.104 + - SIM_NAME=PRSENS5 + - SIM_PERIOD=5 - SIM_TYPE=pressure + current_sensor: - image: antonaleks/data-simulator + image: alena/sensor environment: - - SIM_HOST=192.168.1.1 - - SIM_NAME=A0_CURRENT - - SIM_PERIOD=1 + - SIM_HOST=192.168.0.104 + - SIM_NAME=CURSENS2 + - SIM_PERIOD=2 - SIM_TYPE=current + + accel_slow_sensor: + image: alena/sensor + environment: + - SIM_HOST=192.168.0.104 + - SIM_NAME=ACCELSLOWSENS5 + - SIM_PERIOD=5 + - SIM_TYPE=acceleration + + accel_fast_sensor: + image: alena/sensor + environment: + - SIM_HOST=192.168.0.104 + - SIM_NAME=ACCELFASTSENS2 + - SIM_PERIOD=2 + - SIM_TYPE=acceleration \ No newline at end of file diff --git a/vms/client/simulator/entity/sensor.py b/vms/client/simulator/entity/sensor.py index 922fea5..75f063b 100644 --- a/vms/client/simulator/entity/sensor.py +++ b/vms/client/simulator/entity/sensor.py @@ -52,3 +52,17 @@ def generate_new_value(self): import math self.value = math.sin(self.step) self.step = self.step + 1 + + +class Acceleration(Sensor): + step = 0 + + def __init__(self, name): + super().__init__(name) + self.type = "acceleration" + + def generate_new_value(self): + self.value = self.step ** 2 + if (self.value > 5e5): + self.value = 5e5 + self.step += 1 diff --git a/vms/client/simulator/main.py b/vms/client/simulator/main.py index 4d17730..e36f49f 100644 --- a/vms/client/simulator/main.py +++ b/vms/client/simulator/main.py @@ -1,4 +1,4 @@ -import paho.mqtt.client as paho +import paho.mqtt.client as mqttclient from os import environ import time @@ -9,19 +9,39 @@ name = "sensor" if "SIM_NAME" not in environ.keys() else environ["SIM_NAME"] period = 1 if "SIM_PERIOD" not in environ.keys() else int(environ["SIM_PERIOD"]) type_sim = "temperature" if "SIM_TYPE" not in environ.keys() else environ["SIM_TYPE"] -sensors = {"temperature": Temperature, "pressure": Pressure, "current": Current} +sensors = {"temperature": Temperature, "pressure": Pressure, "current": Current, "acceleration": Acceleration} +isConnected = False -def on_publish(client, userdata, result): # create function for callback - print(f"data published {userdata}") - pass +def on_connect(client,userdata,flags,rc): + if rc == 0: + print(f"Connected to {broker}") + global isConnected + isConnected = True + else: + print("Is not connected") +def on_publish(client,userdata,result): #create function for callback + print("data published") + +print(f"Configuring {type_sim} {name} {broker}:{port} T={period}") + sensor = sensors[type_sim](name=name) -client1 = paho.Client(sensor.name) # create client object +client1 = mqttclient.Client(sensor.name) # create client object +client1.on_connect = on_connect client1.on_publish = on_publish # assign function to callback -client1.connect(broker, port) # establish connection + + +print("Client configured!") + + +client1.connect(broker, port=port) # establish connection +client1.loop_start() while True: sensor.generate_new_value() - ret = client1.publish("sensors/" + sensor.type + "/" + sensor.name, sensor.get_data()) # publish + ret= client1.publish(f"sensor/{sensor.name}", sensor.get_data()) time.sleep(period) + +client1.loop_stop() +client1.disconnect() \ No newline at end of file diff --git a/vms/gateway/docker-compose.yml b/vms/gateway/docker-compose.yml new file mode 100644 index 0000000..869e743 --- /dev/null +++ b/vms/gateway/docker-compose.yml @@ -0,0 +1,9 @@ +version: "3" +services: + broker: + image: eclipse-mosquitto + container_name: broker + volumes: + - ./mosquitto/mosquitto.conf:/mosquitto/config/mosquitto.conf + ports: + - "1883:1883" \ No newline at end of file diff --git a/vms/gateway/mosquitto/mosquitto.conf b/vms/gateway/mosquitto/mosquitto.conf index c8348ac..daa4137 100644 --- a/vms/gateway/mosquitto/mosquitto.conf +++ b/vms/gateway/mosquitto/mosquitto.conf @@ -1,2 +1,2 @@ listener 1883 -allow_anonymous true +allow_anonymous true \ No newline at end of file diff --git a/vms/server/infra/docker-compose.yml b/vms/server/infra/docker-compose.yml index 94e705e..27ead08 100644 --- a/vms/server/infra/docker-compose.yml +++ b/vms/server/infra/docker-compose.yml @@ -22,7 +22,6 @@ services: volumes: - grafana_data:/var/lib/grafana - ./grafana/:/etc/grafana/ - environment: - GF_SECURITY_ADMIN_USER=admin - GF_SECURITY_ADMIN_PASSWORD=admin diff --git a/vms/server/infra/telegraf/telegraf.conf b/vms/server/infra/telegraf/telegraf.conf index ddd8b05..59ac6d0 100644 --- a/vms/server/infra/telegraf/telegraf.conf +++ b/vms/server/infra/telegraf/telegraf.conf @@ -1,9688 +1,36 @@ -# Telegraf Configuration -# -# Telegraf is entirely plugin driven. All metrics are gathered from the -# declared inputs, and sent to the declared outputs. -# -# Plugins must be declared in here to be active. -# To deactivate a plugin, comment out the name and any variables. -# -# Use 'telegraf -config telegraf.conf -test' to see what metrics a config -# file would generate. -# -# Environment variables can be used anywhere in this config file, simply surround -# them with ${}. For strings the variable must be within quotes (ie, "${STR_VAR}"), -# for numbers and booleans they should be plain (ie, ${INT_VAR}, ${BOOL_VAR}) - - -# Global tags can be specified here in key="value" format. [global_tags] - # dc = "us-east-1" # will tag all metrics with dc=us-east-1 - # rack = "1a" - ## Environment variables can be used as tags, and throughout the config file - # user = "$USER" - - -# Configuration for telegraf agent [agent] - ## Default data collection interval for all inputs interval = "10s" - ## Rounds collection interval to 'interval' - ## ie, if interval="10s" then always collect on :00, :10, :20, etc. round_interval = true - - ## Telegraf will send metrics to outputs in batches of at most - ## metric_batch_size metrics. - ## This controls the size of writes that Telegraf sends to output plugins. metric_batch_size = 1000 - - ## Maximum number of unwritten metrics per output. Increasing this value - ## allows for longer periods of output downtime without dropping metrics at the - ## cost of higher maximum memory usage. metric_buffer_limit = 10000 - - ## Collection jitter is used to jitter the collection by a random amount. - ## Each plugin will sleep for a random time within jitter before collecting. - ## This can be used to avoid many plugins querying things like sysfs at the - ## same time, which can have a measurable effect on the system. collection_jitter = "0s" - - ## Collection offset is used to shift the collection by the given amount. - ## This can be be used to avoid many plugins querying constraint devices - ## at the same time by manually scheduling them in time. - # collection_offset = "0s" - - ## Default flushing interval for all outputs. Maximum flush_interval will be - ## flush_interval + flush_jitter flush_interval = "10s" - ## Jitter the flush interval by a random amount. This is primarily to avoid - ## large write spikes for users running a large number of telegraf instances. - ## ie, a jitter of 5s and interval 10s means flushes will happen every 10-15s flush_jitter = "0s" - - ## Collected metrics are rounded to the precision specified. Precision is - ## specified as an interval with an integer + unit (e.g. 0s, 10ms, 2us, 4s). - ## Valid time units are "ns", "us" (or "µs"), "ms", "s". - ## - ## By default or when set to "0s", precision will be set to the same - ## timestamp order as the collection interval, with the maximum being 1s: - ## ie, when interval = "10s", precision will be "1s" - ## when interval = "250ms", precision will be "1ms" - ## - ## Precision will NOT be used for service inputs. It is up to each individual - ## service input to set the timestamp at the appropriate precision. precision = "0s" - - ## Log at debug level. - # debug = false - ## Log only error level messages. - # quiet = false - - ## Log target controls the destination for logs and can be one of "file", - ## "stderr" or, on Windows, "eventlog". When set to "file", the output file - ## is determined by the "logfile" setting. - # logtarget = "file" - - ## Name of the file to be logged to when using the "file" logtarget. If set to - ## the empty string then logs are written to stderr. - # logfile = "" - - ## The logfile will be rotated after the time interval specified. When set - ## to 0 no time based rotation is performed. Logs are rotated only when - ## written to, if there is no log activity rotation may be delayed. - # logfile_rotation_interval = "0d" - - ## The logfile will be rotated when it becomes larger than the specified - ## size. When set to 0 no size based rotation is performed. - # logfile_rotation_max_size = "0MB" - - ## Maximum number of rotated archives to keep, any older logs are deleted. - ## If set to -1, no archives are removed. - # logfile_rotation_max_archives = 5 - - ## Pick a timezone to use when logging or type 'local' for local time. - ## Example: America/Chicago - # log_with_timezone = "" - - ## Override default hostname, if empty use os.Hostname() - hostname = "" - ## If set to true, do no set the "host" tag in the telegraf agent. - omit_hostname = false - - ## Method of translating SNMP objects. Can be "netsnmp" which - ## translates by calling external programs snmptranslate and snmptable, - ## or "gosmi" which translates using the built-in gosmi library. - # snmp_translator = "netsnmp" - -############################################################################### -# OUTPUT PLUGINS # -############################################################################### - - -# Configuration for sending metrics to InfluxDB + hostname = "" + omit_hostname = false [[outputs.influxdb]] -urls = ["http://influxdb:8086"] # адрес докера с influxdb (указать alias при docker-compose, ip адрес для docker run) +urls = ["http://influxdb:8086"] database = "sensors" skip_database_creation = true username = "telegraf" password = "telegraf" - ## The full HTTP or UDP URL for your InfluxDB instance. - ## - ## Multiple URLs can be specified for a single cluster, only ONE of the - ## urls will be written to each interval. - # urls = ["unix:///var/run/influxdb.sock"] - # urls = ["udp://127.0.0.1:8089"] - # urls = ["http://127.0.0.1:8086"] - - ## The target database for metrics; will be created as needed. - ## For UDP url endpoint database needs to be configured on server side. - # database = "telegraf" - - ## The value of this tag will be used to determine the database. If this - ## tag is not set the 'database' option is used as the default. - # database_tag = "" - - ## If true, the 'database_tag' will not be included in the written metric. - # exclude_database_tag = false - - ## If true, no CREATE DATABASE queries will be sent. Set to true when using - ## Telegraf with a user without permissions to create databases or when the - ## database already exists. - # skip_database_creation = false - - ## Name of existing retention policy to write to. Empty string writes to - ## the default retention policy. Only takes effect when using HTTP. - # retention_policy = "" - - ## The value of this tag will be used to determine the retention policy. If this - ## tag is not set the 'retention_policy' option is used as the default. - # retention_policy_tag = "" - - ## If true, the 'retention_policy_tag' will not be included in the written metric. - # exclude_retention_policy_tag = false - - ## Write consistency (clusters only), can be: "any", "one", "quorum", "all". - ## Only takes effect when using HTTP. - # write_consistency = "any" - - ## Timeout for HTTP messages. - # timeout = "5s" - - ## HTTP Basic Auth - # username = "telegraf" - # password = "metricsmetricsmetricsmetrics" - - ## HTTP User-Agent - # user_agent = "telegraf" - - ## UDP payload size is the maximum packet size to send. - # udp_payload = "512B" - - ## Optional TLS Config for use on HTTP connections. - # tls_ca = "/etc/telegraf/ca.pem" - # tls_cert = "/etc/telegraf/cert.pem" - # tls_key = "/etc/telegraf/key.pem" - ## Use TLS but skip chain & host verification - # insecure_skip_verify = false - - ## HTTP Proxy override, if unset values the standard proxy environment - ## variables are consulted to determine which proxy, if any, should be used. - # http_proxy = "http://corporate.proxy:3128" - - ## Additional HTTP headers - # http_headers = {"X-Special-Header" = "Special-Value"} - - ## HTTP Content-Encoding for write request body, can be set to "gzip" to - ## compress body or "identity" to apply no encoding. - # content_encoding = "gzip" - - ## When true, Telegraf will output unsigned integers as unsigned values, - ## i.e.: "42u". You will need a version of InfluxDB supporting unsigned - ## integer values. Enabling this option will result in field type errors if - ## existing data has been written. - # influx_uint_support = false - - -# # Configuration for Amon Server to send metrics to. -# [[outputs.amon]] -# ## Amon Server Key -# server_key = "my-server-key" # required. -# -# ## Amon Instance URL -# amon_instance = "https://youramoninstance" # required -# -# ## Connection timeout. -# # timeout = "5s" - - -# # Publishes metrics to an AMQP broker -# [[outputs.amqp]] -# ## Brokers to publish to. If multiple brokers are specified a random broker -# ## will be selected anytime a connection is established. This can be -# ## helpful for load balancing when not using a dedicated load balancer. -# brokers = ["amqp://localhost:5672/influxdb"] -# -# ## Maximum messages to send over a connection. Once this is reached, the -# ## connection is closed and a new connection is made. This can be helpful for -# ## load balancing when not using a dedicated load balancer. -# # max_messages = 0 -# -# ## Exchange to declare and publish to. -# exchange = "telegraf" -# -# ## Exchange type; common types are "direct", "fanout", "topic", "header", "x-consistent-hash". -# # exchange_type = "topic" -# -# ## If true, exchange will be passively declared. -# # exchange_passive = false -# -# ## Exchange durability can be either "transient" or "durable". -# # exchange_durability = "durable" -# -# ## Additional exchange arguments. -# # exchange_arguments = { } -# # exchange_arguments = {"hash_property" = "timestamp"} -# -# ## Authentication credentials for the PLAIN auth_method. -# # username = "" -# # password = "" -# -# ## Auth method. PLAIN and EXTERNAL are supported -# ## Using EXTERNAL requires enabling the rabbitmq_auth_mechanism_ssl plugin as -# ## described here: https://www.rabbitmq.com/plugins.html -# # auth_method = "PLAIN" -# -# ## Metric tag to use as a routing key. -# ## ie, if this tag exists, its value will be used as the routing key -# # routing_tag = "host" -# -# ## Static routing key. Used when no routing_tag is set or as a fallback -# ## when the tag specified in routing tag is not found. -# # routing_key = "" -# # routing_key = "telegraf" -# -# ## Delivery Mode controls if a published message is persistent. -# ## One of "transient" or "persistent". -# # delivery_mode = "transient" -# -# ## Static headers added to each published message. -# # headers = { } -# # headers = {"database" = "telegraf", "retention_policy" = "default"} -# -# ## Connection timeout. If not provided, will default to 5s. 0s means no -# ## timeout (not recommended). -# # timeout = "5s" -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false -# -# ## If true use batch serialization format instead of line based delimiting. -# ## Only applies to data formats which are not line based such as JSON. -# ## Recommended to set to true. -# # use_batch_format = false -# -# ## Content encoding for message payloads, can be set to "gzip" to or -# ## "identity" to apply no encoding. -# ## -# ## Please note that when use_batch_format = false each amqp message contains only -# ## a single metric, it is recommended to use compression with batch format -# ## for best results. -# # content_encoding = "identity" -# -# ## Data format to output. -# ## Each data format has its own unique set of configuration options, read -# ## more about them here: -# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md -# # data_format = "influx" - - -# # Send metrics to Azure Application Insights -# [[outputs.application_insights]] -# ## Instrumentation key of the Application Insights resource. -# instrumentation_key = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx" -# -# ## Regions that require endpoint modification https://docs.microsoft.com/en-us/azure/azure-monitor/app/custom-endpoints -# # endpoint_url = "https://dc.services.visualstudio.com/v2/track" -# -# ## Timeout for closing (default: 5s). -# # timeout = "5s" -# -# ## Enable additional diagnostic logging. -# # enable_diagnostic_logging = false -# -# ## Context Tag Sources add Application Insights context tags to a tag value. -# ## -# ## For list of allowed context tag keys see: -# ## https://github.com/microsoft/ApplicationInsights-Go/blob/master/appinsights/contracts/contexttagkeys.go -# # [outputs.application_insights.context_tag_sources] -# # "ai.cloud.role" = "kubernetes_container_name" -# # "ai.cloud.roleInstance" = "kubernetes_pod_name" - - -# # Sends metrics to Azure Data Explorer -# [[outputs.azure_data_explorer]] -# ## Azure Data Explorer cluster endpoint -# ## ex: endpoint_url = "https://clustername.australiasoutheast.kusto.windows.net" -# endpoint_url = "" -# -# ## The Azure Data Explorer database that the metrics will be ingested into. -# ## The plugin will NOT generate this database automatically, it's expected that this database already exists before ingestion. -# ## ex: "exampledatabase" -# database = "" -# -# ## Timeout for Azure Data Explorer operations -# # timeout = "20s" -# -# ## Type of metrics grouping used when pushing to Azure Data Explorer. -# ## Default is "TablePerMetric" for one table per different metric. -# ## For more information, please check the plugin README. -# # metrics_grouping_type = "TablePerMetric" -# -# ## Name of the single table to store all the metrics (Only needed if metrics_grouping_type is "SingleTable"). -# # table_name = "" -# -# ## Creates tables and relevant mapping if set to true(default). -# ## Skips table and mapping creation if set to false, this is useful for running Telegraf with the lowest possible permissions i.e. table ingestor role. -# # create_tables = true - - -# # Send aggregate metrics to Azure Monitor -# [[outputs.azure_monitor]] -# ## Timeout for HTTP writes. -# # timeout = "20s" -# -# ## Set the namespace prefix, defaults to "Telegraf/". -# # namespace_prefix = "Telegraf/" -# -# ## Azure Monitor doesn't have a string value type, so convert string -# ## fields to dimensions (a.k.a. tags) if enabled. Azure Monitor allows -# ## a maximum of 10 dimensions so Telegraf will only send the first 10 -# ## alphanumeric dimensions. -# # strings_as_dimensions = false -# -# ## Both region and resource_id must be set or be available via the -# ## Instance Metadata service on Azure Virtual Machines. -# # -# ## Azure Region to publish metrics against. -# ## ex: region = "southcentralus" -# # region = "" -# # -# ## The Azure Resource ID against which metric will be logged, e.g. -# ## ex: resource_id = "/subscriptions//resourceGroups//providers/Microsoft.Compute/virtualMachines/" -# # resource_id = "" -# -# ## Optionally, if in Azure US Government, China or other sovereign -# ## cloud environment, set appropriate REST endpoint for receiving -# ## metrics. (Note: region may be unused in this context) -# # endpoint_url = "https://monitoring.core.usgovcloudapi.net" - - -# # Configuration for Google Cloud BigQuery to send entries -# [[outputs.bigquery]] -# ## Credentials File -# credentials_file = "/path/to/service/account/key.json" -# -# ## Google Cloud Platform Project -# project = "my-gcp-project" -# -# ## The namespace for the metric descriptor -# dataset = "telegraf" -# -# ## Timeout for BigQuery operations. -# # timeout = "5s" -# -# ## Character to replace hyphens on Metric name -# # replace_hyphen_to = "_" - - -# # Publish Telegraf metrics to a Google Cloud PubSub topic -# [[outputs.cloud_pubsub]] -# ## Required. Name of Google Cloud Platform (GCP) Project that owns -# ## the given PubSub topic. -# project = "my-project" -# -# ## Required. Name of PubSub topic to publish metrics to. -# topic = "my-topic" -# -# ## Required. Data format to consume. -# ## Each data format has its own unique set of configuration options. -# ## Read more about them here: -# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md -# data_format = "influx" -# -# ## Optional. Filepath for GCP credentials JSON file to authorize calls to -# ## PubSub APIs. If not set explicitly, Telegraf will attempt to use -# ## Application Default Credentials, which is preferred. -# # credentials_file = "path/to/my/creds.json" -# -# ## Optional. If true, will send all metrics per write in one PubSub message. -# # send_batched = true -# -# ## The following publish_* parameters specifically configures batching -# ## requests made to the GCP Cloud PubSub API via the PubSub Golang library. Read -# ## more here: https://godoc.org/cloud.google.com/go/pubsub#PublishSettings -# -# ## Optional. Send a request to PubSub (i.e. actually publish a batch) -# ## when it has this many PubSub messages. If send_batched is true, -# ## this is ignored and treated as if it were 1. -# # publish_count_threshold = 1000 -# -# ## Optional. Send a request to PubSub (i.e. actually publish a batch) -# ## when it has this many PubSub messages. If send_batched is true, -# ## this is ignored and treated as if it were 1 -# # publish_byte_threshold = 1000000 -# -# ## Optional. Specifically configures requests made to the PubSub API. -# # publish_num_go_routines = 2 -# -# ## Optional. Specifies a timeout for requests to the PubSub API. -# # publish_timeout = "30s" -# -# ## Optional. If true, published PubSub message data will be base64-encoded. -# # base64_data = false -# -# ## Optional. PubSub attributes to add to metrics. -# # [outputs.cloud_pubsub.attributes] -# # my_attr = "tag_value" - - -# # Configuration for AWS CloudWatch output. -# [[outputs.cloudwatch]] -# ## Amazon REGION -# region = "us-east-1" -# -# ## Amazon Credentials -# ## Credentials are loaded in the following order -# ## 1) Web identity provider credentials via STS if role_arn and web_identity_token_file are specified -# ## 2) Assumed credentials via STS if role_arn is specified -# ## 3) explicit credentials from 'access_key' and 'secret_key' -# ## 4) shared profile from 'profile' -# ## 5) environment variables -# ## 6) shared credentials file -# ## 7) EC2 Instance Profile -# #access_key = "" -# #secret_key = "" -# #token = "" -# #role_arn = "" -# #web_identity_token_file = "" -# #role_session_name = "" -# #profile = "" -# #shared_credential_file = "" -# -# ## Endpoint to make request against, the correct endpoint is automatically -# ## determined and this option should only be set if you wish to override the -# ## default. -# ## ex: endpoint_url = "http://localhost:8000" -# # endpoint_url = "" -# -# ## Namespace for the CloudWatch MetricDatums -# namespace = "InfluxData/Telegraf" -# -# ## If you have a large amount of metrics, you should consider to send statistic -# ## values instead of raw metrics which could not only improve performance but -# ## also save AWS API cost. If enable this flag, this plugin would parse the required -# ## CloudWatch statistic fields (count, min, max, and sum) and send them to CloudWatch. -# ## You could use basicstats aggregator to calculate those fields. If not all statistic -# ## fields are available, all fields would still be sent as raw metrics. -# # write_statistics = false -# -# ## Enable high resolution metrics of 1 second (if not enabled, standard resolution are of 60 seconds precision) -# # high_resolution_metrics = false - - -# # Configuration for AWS CloudWatchLogs output. -# [[outputs.cloudwatch_logs]] -# ## The region is the Amazon region that you wish to connect to. -# ## Examples include but are not limited to: -# ## - us-west-1 -# ## - us-west-2 -# ## - us-east-1 -# ## - ap-southeast-1 -# ## - ap-southeast-2 -# ## ... -# region = "us-east-1" -# -# ## Amazon Credentials -# ## Credentials are loaded in the following order -# ## 1) Web identity provider credentials via STS if role_arn and web_identity_token_file are specified -# ## 2) Assumed credentials via STS if role_arn is specified -# ## 3) explicit credentials from 'access_key' and 'secret_key' -# ## 4) shared profile from 'profile' -# ## 5) environment variables -# ## 6) shared credentials file -# ## 7) EC2 Instance Profile -# #access_key = "" -# #secret_key = "" -# #token = "" -# #role_arn = "" -# #web_identity_token_file = "" -# #role_session_name = "" -# #profile = "" -# #shared_credential_file = "" -# -# ## Endpoint to make request against, the correct endpoint is automatically -# ## determined and this option should only be set if you wish to override the -# ## default. -# ## ex: endpoint_url = "http://localhost:8000" -# # endpoint_url = "" -# -# ## Cloud watch log group. Must be created in AWS cloudwatch logs upfront! -# ## For example, you can specify the name of the k8s cluster here to group logs from all cluster in oine place -# log_group = "my-group-name" -# -# ## Log stream in log group -# ## Either log group name or reference to metric attribute, from which it can be parsed: -# ## tag: or field:. If log stream is not exist, it will be created. -# ## Since AWS is not automatically delete logs streams with expired logs entries (i.e. empty log stream) -# ## you need to put in place appropriate house-keeping (https://forums.aws.amazon.com/thread.jspa?threadID=178855) -# log_stream = "tag:location" -# -# ## Source of log data - metric name -# ## specify the name of the metric, from which the log data should be retrieved. -# ## I.e., if you are using docker_log plugin to stream logs from container, then -# ## specify log_data_metric_name = "docker_log" -# log_data_metric_name = "docker_log" -# -# ## Specify from which metric attribute the log data should be retrieved: -# ## tag: or field:. -# ## I.e., if you are using docker_log plugin to stream logs from container, then -# ## specify log_data_source = "field:message" -# log_data_source = "field:message" - - -# # Configuration for CrateDB to send metrics to. -# [[outputs.cratedb]] -# # A github.com/jackc/pgx/v4 connection string. -# # See https://pkg.go.dev/github.com/jackc/pgx/v4#ParseConfig -# url = "postgres://user:password@localhost/schema?sslmode=disable" -# # Timeout for all CrateDB queries. -# timeout = "5s" -# # Name of the table to store metrics in. -# table = "metrics" -# # If true, and the metrics table does not exist, create it automatically. -# table_create = true -# # The character(s) to replace any '.' in an object key with -# key_separator = "_" - - -# # Configuration for DataDog API to send metrics to. -# [[outputs.datadog]] -# ## Datadog API key -# apikey = "my-secret-key" -# -# ## Connection timeout. -# # timeout = "5s" -# -# ## Write URL override; useful for debugging. -# # url = "https://app.datadoghq.com/api/v1/series" -# -# ## Set http_proxy (telegraf uses the system wide proxy settings if it isn't set) -# # http_proxy_url = "http://localhost:8888" -# -# ## Override the default (none) compression used to send data. -# ## Supports: "zlib", "none" -# # compression = "none" - - -# # Send metrics to nowhere at all -# [[outputs.discard]] -# # no configuration - - -# # Send telegraf metrics to a Dynatrace environment -# [[outputs.dynatrace]] -# ## For usage with the Dynatrace OneAgent you can omit any configuration, -# ## the only requirement is that the OneAgent is running on the same host. -# ## Only setup environment url and token if you want to monitor a Host without the OneAgent present. -# ## -# ## Your Dynatrace environment URL. -# ## For Dynatrace OneAgent you can leave this empty or set it to "http://127.0.0.1:14499/metrics/ingest" (default) -# ## For Dynatrace SaaS environments the URL scheme is "https://{your-environment-id}.live.dynatrace.com/api/v2/metrics/ingest" -# ## For Dynatrace Managed environments the URL scheme is "https://{your-domain}/e/{your-environment-id}/api/v2/metrics/ingest" -# url = "" -# -# ## Your Dynatrace API token. -# ## Create an API token within your Dynatrace environment, by navigating to Settings > Integration > Dynatrace API -# ## The API token needs data ingest scope permission. When using OneAgent, no API token is required. -# api_token = "" -# -# ## Optional prefix for metric names (e.g.: "telegraf") -# prefix = "telegraf" -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# -# ## Optional flag for ignoring tls certificate check -# # insecure_skip_verify = false -# -# -# ## Connection timeout, defaults to "5s" if not set. -# timeout = "5s" -# -# ## If you want metrics to be treated and reported as delta counters, add the metric names here -# additional_counters = [ ] -# -# ## Optional dimensions to be added to every metric -# # [outputs.dynatrace.default_dimensions] -# # default_key = "default value" - - -# # Configuration for Elasticsearch to send metrics to. -# [[outputs.elasticsearch]] -# ## The full HTTP endpoint URL for your Elasticsearch instance -# ## Multiple urls can be specified as part of the same cluster, -# ## this means that only ONE of the urls will be written to each interval. -# urls = [ "http://node1.es.example.com:9200" ] # required. -# ## Elasticsearch client timeout, defaults to "5s" if not set. -# timeout = "5s" -# ## Set to true to ask Elasticsearch a list of all cluster nodes, -# ## thus it is not necessary to list all nodes in the urls config option. -# enable_sniffer = false -# ## Set to true to enable gzip compression -# enable_gzip = false -# ## Set the interval to check if the Elasticsearch nodes are available -# ## Setting to "0s" will disable the health check (not recommended in production) -# health_check_interval = "10s" -# ## HTTP basic authentication details -# # username = "telegraf" -# # password = "mypassword" -# ## HTTP bearer token authentication details -# # auth_bearer_token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9" -# -# ## Index Config -# ## The target index for metrics (Elasticsearch will create if it not exists). -# ## You can use the date specifiers below to create indexes per time frame. -# ## The metric timestamp will be used to decide the destination index name -# # %Y - year (2016) -# # %y - last two digits of year (00..99) -# # %m - month (01..12) -# # %d - day of month (e.g., 01) -# # %H - hour (00..23) -# # %V - week of the year (ISO week) (01..53) -# ## Additionally, you can specify a tag name using the notation {{tag_name}} -# ## which will be used as part of the index name. If the tag does not exist, -# ## the default tag value will be used. -# # index_name = "telegraf-{{host}}-%Y.%m.%d" -# # default_tag_value = "none" -# index_name = "telegraf-%Y.%m.%d" # required. -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false -# -# ## Template Config -# ## Set to true if you want telegraf to manage its index template. -# ## If enabled it will create a recommended index template for telegraf indexes -# manage_template = true -# ## The template name used for telegraf indexes -# template_name = "telegraf" -# ## Set to true if you want telegraf to overwrite an existing template -# overwrite_template = false -# ## If set to true a unique ID hash will be sent as sha256(concat(timestamp,measurement,series-hash)) string -# ## it will enable data resend and update metric points avoiding duplicated metrics with diferent id's -# force_document_id = false -# -# ## Specifies the handling of NaN and Inf values. -# ## This option can have the following values: -# ## none -- do not modify field-values (default); will produce an error if NaNs or infs are encountered -# ## drop -- drop fields containing NaNs or infs -# ## replace -- replace with the value in "float_replacement_value" (default: 0.0) -# ## NaNs and inf will be replaced with the given number, -inf with the negative of that number -# # float_handling = "none" -# # float_replacement_value = 0.0 -# -# ## Pipeline Config -# ## To use a ingest pipeline, set this to the name of the pipeline you want to use. -# # use_pipeline = "my_pipeline" -# ## Additionally, you can specify a tag name using the notation {{tag_name}} -# ## which will be used as part of the pipeline name. If the tag does not exist, -# ## the default pipeline will be used as the pipeline. If no default pipeline is set, -# ## no pipeline is used for the metric. -# # use_pipeline = "{{es_pipeline}}" -# # default_pipeline = "my_pipeline" - - -# # Configuration for Event Hubs output plugin -# [[outputs.event_hubs]] -# ## The full connection string to the Event Hub (required) -# ## The shared access key must have "Send" permissions on the target Event Hub. -# connection_string = "Endpoint=sb://namespace.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=superSecret1234=;EntityPath=hubName" -# -# ## Client timeout (defaults to 30s) -# # timeout = "30s" -# -# ## Data format to output. -# ## Each data format has its own unique set of configuration options, read -# ## more about them here: -# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md -# data_format = "json" - - -# # Send metrics to command as input over stdin -# [[outputs.exec]] -# ## Command to ingest metrics via stdin. -# command = ["tee", "-a", "/dev/null"] -# -# ## Timeout for command to complete. -# # timeout = "5s" -# -# ## Data format to output. -# ## Each data format has its own unique set of configuration options, read -# ## more about them here: -# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md -# # data_format = "influx" - - -# # Run executable as long-running output plugin -# [[outputs.execd]] -# ## Program to run as daemon -# command = ["my-telegraf-output", "--some-flag", "value"] -# -# ## Delay before the process is restarted after an unexpected termination -# restart_delay = "10s" -# -# ## Data format to export. -# ## Each data format has its own unique set of configuration options, read -# ## more about them here: -# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md -# data_format = "influx" - - -# # Send telegraf metrics to file(s) -# [[outputs.file]] -# ## Files to write to, "stdout" is a specially handled file. -# files = ["stdout", "/tmp/metrics.out"] -# -# ## Use batch serialization format instead of line based delimiting. The -# ## batch format allows for the production of non line based output formats and -# ## may more efficiently encode metric groups. -# # use_batch_format = false -# -# ## The file will be rotated after the time interval specified. When set -# ## to 0 no time based rotation is performed. -# # rotation_interval = "0d" -# -# ## The logfile will be rotated when it becomes larger than the specified -# ## size. When set to 0 no size based rotation is performed. -# # rotation_max_size = "0MB" -# -# ## Maximum number of rotated archives to keep, any older logs are deleted. -# ## If set to -1, no archives are removed. -# # rotation_max_archives = 5 -# -# ## Data format to output. -# ## Each data format has its own unique set of configuration options, read -# ## more about them here: -# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md -# data_format = "influx" - - -# # Configuration for Graphite server to send metrics to -# [[outputs.graphite]] -# ## TCP endpoint for your graphite instance. -# ## If multiple endpoints are configured, output will be load balanced. -# ## Only one of the endpoints will be written to with each iteration. -# servers = ["localhost:2003"] -# ## Prefix metrics name -# prefix = "" -# ## Graphite output template -# ## see https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md -# template = "host.tags.measurement.field" -# -# ## Enable Graphite tags support -# # graphite_tag_support = false -# -# ## Define how metric names and tags are sanitized; options are "strict", or "compatible" -# ## strict - Default method, and backwards compatible with previous versionf of Telegraf -# ## compatible - More relaxed sanitizing when using tags, and compatible with the graphite spec -# # graphite_tag_sanitize_mode = "strict" -# -# ## Character for separating metric name and field for Graphite tags -# # graphite_separator = "." -# -# ## Graphite templates patterns -# ## 1. Template for cpu -# ## 2. Template for disk* -# ## 3. Default template -# # templates = [ -# # "cpu tags.measurement.host.field", -# # "disk* measurement.field", -# # "host.measurement.tags.field" -# #] -# -# ## timeout in seconds for the write connection to graphite -# timeout = 2 -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false - - -# # Send telegraf metrics to graylog -# [[outputs.graylog]] -# ## Endpoints for your graylog instances. -# servers = ["udp://127.0.0.1:12201"] -# -# ## Connection timeout. -# # timeout = "5s" -# -# ## The field to use as the GELF short_message, if unset the static string -# ## "telegraf" will be used. -# ## example: short_message_field = "message" -# # short_message_field = "" -# -# ## According to GELF payload specification, additional fields names must be prefixed -# ## with an underscore. Previous versions did not prefix custom field 'name' with underscore. -# ## Set to true for backward compatibility. -# # name_field_no_prefix = false -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false - - -# # Send telegraf metrics to GroundWork Monitor -# [[outputs.groundwork]] -# ## URL of your groundwork instance. -# url = "https://groundwork.example.com" -# -# ## Agent uuid for GroundWork API Server. -# agent_id = "" -# -# ## Username and password to access GroundWork API. -# username = "" -# password = "" -# -# ## Default display name for the host with services(metrics). -# # default_host = "telegraf" -# -# ## Default service state. -# # default_service_state = "SERVICE_OK" -# -# ## The name of the tag that contains the hostname. -# # resource_tag = "host" -# -# ## The name of the tag that contains the host group name. -# # group_tag = "group" - - -# # Configurable HTTP health check resource based on metrics -# [[outputs.health]] -# ## Address and port to listen on. -# ## ex: service_address = "http://localhost:8080" -# ## service_address = "unix:///var/run/telegraf-health.sock" -# # service_address = "http://:8080" -# -# ## The maximum duration for reading the entire request. -# # read_timeout = "5s" -# ## The maximum duration for writing the entire response. -# # write_timeout = "5s" -# -# ## Username and password to accept for HTTP basic authentication. -# # basic_username = "user1" -# # basic_password = "secret" -# -# ## Allowed CA certificates for client certificates. -# # tls_allowed_cacerts = ["/etc/telegraf/clientca.pem"] -# -# ## TLS server certificate and private key. -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# -# ## One or more check sub-tables should be defined, it is also recommended to -# ## use metric filtering to limit the metrics that flow into this output. -# ## -# ## When using the default buffer sizes, this example will fail when the -# ## metric buffer is half full. -# ## -# ## namepass = ["internal_write"] -# ## tagpass = { output = ["influxdb"] } -# ## -# ## [[outputs.health.compares]] -# ## field = "buffer_size" -# ## lt = 5000.0 -# ## -# ## [[outputs.health.contains]] -# ## field = "buffer_size" - - -# # A plugin that can transmit metrics over HTTP -# [[outputs.http]] -# ## URL is the address to send metrics to -# url = "http://127.0.0.1:8080/telegraf" -# -# ## Timeout for HTTP message -# # timeout = "5s" -# -# ## HTTP method, one of: "POST" or "PUT" -# # method = "POST" -# -# ## HTTP Basic Auth credentials -# # username = "username" -# # password = "pa$$word" -# -# ## OAuth2 Client Credentials Grant -# # client_id = "clientid" -# # client_secret = "secret" -# # token_url = "https://indentityprovider/oauth2/v1/token" -# # scopes = ["urn:opc:idm:__myscopes__"] -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false -# -# ## Optional Cookie authentication -# # cookie_auth_url = "https://localhost/authMe" -# # cookie_auth_method = "POST" -# # cookie_auth_username = "username" -# # cookie_auth_password = "pa$$word" -# # cookie_auth_headers = '{"Content-Type": "application/json", "X-MY-HEADER":"hello"}' -# # cookie_auth_body = '{"username": "user", "password": "pa$$word", "authenticate": "me"}' -# ## cookie_auth_renewal not set or set to "0" will auth once and never renew the cookie -# # cookie_auth_renewal = "5m" -# -# ## Data format to output. -# ## Each data format has it's own unique set of configuration options, read -# ## more about them here: -# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md -# # data_format = "influx" -# -# ## Use batch serialization format (default) instead of line based format. -# ## Batch format is more efficient and should be used unless line based -# ## format is really needed. -# # use_batch_format = true -# -# ## HTTP Content-Encoding for write request body, can be set to "gzip" to -# ## compress body or "identity" to apply no encoding. -# # content_encoding = "identity" -# -# ## Additional HTTP headers -# # [outputs.http.headers] -# # # Should be set manually to "application/json" for json data_format -# # Content-Type = "text/plain; charset=utf-8" -# -# ## Idle (keep-alive) connection timeout. -# ## Maximum amount of time before idle connection is closed. -# ## Zero means no limit. -# # idle_conn_timeout = 0 -# -# ## Amazon Region -# #region = "us-east-1" -# -# ## Amazon Credentials -# ## Credentials are loaded in the following order -# ## 1) Web identity provider credentials via STS if role_arn and web_identity_token_file are specified -# ## 2) Assumed credentials via STS if role_arn is specified -# ## 3) explicit credentials from 'access_key' and 'secret_key' -# ## 4) shared profile from 'profile' -# ## 5) environment variables -# ## 6) shared credentials file -# ## 7) EC2 Instance Profile -# #access_key = "" -# #secret_key = "" -# #token = "" -# #role_arn = "" -# #web_identity_token_file = "" -# #role_session_name = "" -# #profile = "" -# #shared_credential_file = "" - - -# # Configuration for sending metrics to InfluxDB -# [[outputs.influxdb_v2]] -# ## The URLs of the InfluxDB cluster nodes. -# ## -# ## Multiple URLs can be specified for a single cluster, only ONE of the -# ## urls will be written to each interval. -# ## ex: urls = ["https://us-west-2-1.aws.cloud2.influxdata.com"] -# urls = ["http://127.0.0.1:8086"] -# -# ## Token for authentication. -# token = "" -# -# ## Organization is the name of the organization you wish to write to; must exist. -# organization = "" -# -# ## Destination bucket to write into. -# bucket = "" -# -# ## The value of this tag will be used to determine the bucket. If this -# ## tag is not set the 'bucket' option is used as the default. -# # bucket_tag = "" -# -# ## If true, the bucket tag will not be added to the metric. -# # exclude_bucket_tag = false -# -# ## Timeout for HTTP messages. -# # timeout = "5s" -# -# ## Additional HTTP headers -# # http_headers = {"X-Special-Header" = "Special-Value"} -# -# ## HTTP Proxy override, if unset values the standard proxy environment -# ## variables are consulted to determine which proxy, if any, should be used. -# # http_proxy = "http://corporate.proxy:3128" -# -# ## HTTP User-Agent -# # user_agent = "telegraf" -# -# ## Content-Encoding for write request body, can be set to "gzip" to -# ## compress body or "identity" to apply no encoding. -# # content_encoding = "gzip" -# -# ## Enable or disable uint support for writing uints influxdb 2.0. -# # influx_uint_support = false -# -# ## Optional TLS Config for use on HTTP connections. -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false - - -# # Configuration for sending metrics to an Instrumental project -# [[outputs.instrumental]] -# ## Project API Token (required) -# api_token = "API Token" # required -# ## Prefix the metrics with a given name -# prefix = "" -# ## Stats output template (Graphite formatting) -# ## see https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md#graphite -# template = "host.tags.measurement.field" -# ## Timeout in seconds to connect -# timeout = "2s" -# ## Display Communication to Instrumental -# debug = false - - -# # Configuration for the Kafka server to send metrics to -# [[outputs.kafka]] -# ## URLs of kafka brokers -# brokers = ["localhost:9092"] -# ## Kafka topic for producer messages -# topic = "telegraf" -# -# ## The value of this tag will be used as the topic. If not set the 'topic' -# ## option is used. -# # topic_tag = "" -# -# ## If true, the 'topic_tag' will be removed from to the metric. -# # exclude_topic_tag = false -# -# ## Optional Client id -# # client_id = "Telegraf" -# -# ## Set the minimal supported Kafka version. Setting this enables the use of new -# ## Kafka features and APIs. Of particular interest, lz4 compression -# ## requires at least version 0.10.0.0. -# ## ex: version = "1.1.0" -# # version = "" -# -# ## Optional topic suffix configuration. -# ## If the section is omitted, no suffix is used. -# ## Following topic suffix methods are supported: -# ## measurement - suffix equals to separator + measurement's name -# ## tags - suffix equals to separator + specified tags' values -# ## interleaved with separator -# -# ## Suffix equals to "_" + measurement name -# # [outputs.kafka.topic_suffix] -# # method = "measurement" -# # separator = "_" -# -# ## Suffix equals to "__" + measurement's "foo" tag value. -# ## If there's no such a tag, suffix equals to an empty string -# # [outputs.kafka.topic_suffix] -# # method = "tags" -# # keys = ["foo"] -# # separator = "__" -# -# ## Suffix equals to "_" + measurement's "foo" and "bar" -# ## tag values, separated by "_". If there is no such tags, -# ## their values treated as empty strings. -# # [outputs.kafka.topic_suffix] -# # method = "tags" -# # keys = ["foo", "bar"] -# # separator = "_" -# -# ## The routing tag specifies a tagkey on the metric whose value is used as -# ## the message key. The message key is used to determine which partition to -# ## send the message to. This tag is prefered over the routing_key option. -# routing_tag = "host" -# -# ## The routing key is set as the message key and used to determine which -# ## partition to send the message to. This value is only used when no -# ## routing_tag is set or as a fallback when the tag specified in routing tag -# ## is not found. -# ## -# ## If set to "random", a random value will be generated for each message. -# ## -# ## When unset, no message key is added and each message is routed to a random -# ## partition. -# ## -# ## ex: routing_key = "random" -# ## routing_key = "telegraf" -# # routing_key = "" -# -# ## Compression codec represents the various compression codecs recognized by -# ## Kafka in messages. -# ## 0 : None -# ## 1 : Gzip -# ## 2 : Snappy -# ## 3 : LZ4 -# ## 4 : ZSTD -# # compression_codec = 0 -# -# ## Idempotent Writes -# ## If enabled, exactly one copy of each message is written. -# # idempotent_writes = false -# -# ## RequiredAcks is used in Produce Requests to tell the broker how many -# ## replica acknowledgements it must see before responding -# ## 0 : the producer never waits for an acknowledgement from the broker. -# ## This option provides the lowest latency but the weakest durability -# ## guarantees (some data will be lost when a server fails). -# ## 1 : the producer gets an acknowledgement after the leader replica has -# ## received the data. This option provides better durability as the -# ## client waits until the server acknowledges the request as successful -# ## (only messages that were written to the now-dead leader but not yet -# ## replicated will be lost). -# ## -1: the producer gets an acknowledgement after all in-sync replicas have -# ## received the data. This option provides the best durability, we -# ## guarantee that no messages will be lost as long as at least one in -# ## sync replica remains. -# # required_acks = -1 -# -# ## The maximum number of times to retry sending a metric before failing -# ## until the next flush. -# # max_retry = 3 -# -# ## The maximum permitted size of a message. Should be set equal to or -# ## smaller than the broker's 'message.max.bytes'. -# # max_message_bytes = 1000000 -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false -# -# ## Optional SOCKS5 proxy to use when connecting to brokers -# # socks5_enabled = true -# # socks5_address = "127.0.0.1:1080" -# # socks5_username = "alice" -# # socks5_password = "pass123" -# -# ## Optional SASL Config -# # sasl_username = "kafka" -# # sasl_password = "secret" -# -# ## Optional SASL: -# ## one of: OAUTHBEARER, PLAIN, SCRAM-SHA-256, SCRAM-SHA-512, GSSAPI -# ## (defaults to PLAIN) -# # sasl_mechanism = "" -# -# ## used if sasl_mechanism is GSSAPI (experimental) -# # sasl_gssapi_service_name = "" -# # ## One of: KRB5_USER_AUTH and KRB5_KEYTAB_AUTH -# # sasl_gssapi_auth_type = "KRB5_USER_AUTH" -# # sasl_gssapi_kerberos_config_path = "/" -# # sasl_gssapi_realm = "realm" -# # sasl_gssapi_key_tab_path = "" -# # sasl_gssapi_disable_pafxfast = false -# -# ## used if sasl_mechanism is OAUTHBEARER (experimental) -# # sasl_access_token = "" -# -# ## SASL protocol version. When connecting to Azure EventHub set to 0. -# # sasl_version = 1 -# -# # Disable Kafka metadata full fetch -# # metadata_full = false -# -# ## Data format to output. -# ## Each data format has its own unique set of configuration options, read -# ## more about them here: -# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md -# # data_format = "influx" - - -# # Configuration for the AWS Kinesis output. -# [[outputs.kinesis]] -# ## Amazon REGION of kinesis endpoint. -# region = "ap-southeast-2" -# -# ## Amazon Credentials -# ## Credentials are loaded in the following order -# ## 1) Web identity provider credentials via STS if role_arn and web_identity_token_file are specified -# ## 2) Assumed credentials via STS if role_arn is specified -# ## 3) explicit credentials from 'access_key' and 'secret_key' -# ## 4) shared profile from 'profile' -# ## 5) environment variables -# ## 6) shared credentials file -# ## 7) EC2 Instance Profile -# #access_key = "" -# #secret_key = "" -# #token = "" -# #role_arn = "" -# #web_identity_token_file = "" -# #role_session_name = "" -# #profile = "" -# #shared_credential_file = "" -# -# ## Endpoint to make request against, the correct endpoint is automatically -# ## determined and this option should only be set if you wish to override the -# ## default. -# ## ex: endpoint_url = "http://localhost:8000" -# # endpoint_url = "" -# -# ## Kinesis StreamName must exist prior to starting telegraf. -# streamname = "StreamName" -# -# ## The partition key can be calculated using one of several methods: -# ## -# ## Use a static value for all writes: -# # [outputs.kinesis.partition] -# # method = "static" -# # key = "howdy" -# # -# ## Use a random partition key on each write: -# # [outputs.kinesis.partition] -# # method = "random" -# # -# ## Use the measurement name as the partition key: -# # [outputs.kinesis.partition] -# # method = "measurement" -# # -# ## Use the value of a tag for all writes, if the tag is not set the empty -# ## default option will be used. When no default, defaults to "telegraf" -# # [outputs.kinesis.partition] -# # method = "tag" -# # key = "host" -# # default = "mykey" -# -# -# ## Data format to output. -# ## Each data format has its own unique set of configuration options, read -# ## more about them here: -# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md -# data_format = "influx" -# -# ## debug will show upstream aws messages. -# debug = false - - -# # Configuration for Librato API to send metrics to. -# [[outputs.librato]] -# ## Librato API Docs -# ## http://dev.librato.com/v1/metrics-authentication -# ## Librato API user -# api_user = "telegraf@influxdb.com" # required. -# ## Librato API token -# api_token = "my-secret-token" # required. -# ## Debug -# # debug = false -# ## Connection timeout. -# # timeout = "5s" -# ## Output source Template (same as graphite buckets) -# ## see https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md#graphite -# ## This template is used in librato's source (not metric's name) -# template = "host" -# - - -# # Send aggregate metrics to Logz.io -# [[outputs.logzio]] -# ## Connection timeout, defaults to "5s" if not set. -# timeout = "5s" -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# -# ## Logz.io account token -# token = "your logz.io token" # required -# -# ## Use your listener URL for your Logz.io account region. -# # url = "https://listener.logz.io:8071" - - -# # Send logs to Loki -# [[outputs.loki]] -# ## The domain of Loki -# domain = "https://loki.domain.tld" -# -# ## Endpoint to write api -# # endpoint = "/loki/api/v1/push" -# -# ## Connection timeout, defaults to "5s" if not set. -# # timeout = "5s" -# -# ## Basic auth credential -# # username = "loki" -# # password = "pass" -# -# ## Additional HTTP headers -# # http_headers = {"X-Scope-OrgID" = "1"} -# -# ## If the request must be gzip encoded -# # gzip_request = false -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" - - -# # Sends metrics to MongoDB -# [[outputs.mongodb]] -# # connection string examples for mongodb -# dsn = "mongodb://localhost:27017" -# # dsn = "mongodb://mongod1:27017,mongod2:27017,mongod3:27017/admin&replicaSet=myReplSet&w=1" -# -# # overrides serverSelectionTimeoutMS in dsn if set -# # timeout = "30s" -# -# # default authentication, optional -# # authentication = "NONE" -# -# # for SCRAM-SHA-256 authentication -# # authentication = "SCRAM" -# # username = "root" -# # password = "***" -# -# # for x509 certificate authentication -# # authentication = "X509" -# # tls_ca = "ca.pem" -# # tls_key = "client.pem" -# # # tls_key_pwd = "changeme" # required for encrypted tls_key -# # insecure_skip_verify = false -# -# # database to store measurements and time series collections -# # database = "telegraf" -# -# # granularity can be seconds, minutes, or hours. -# # configuring this value will be based on your input collection frequency. -# # see https://docs.mongodb.com/manual/core/timeseries-collections/#create-a-time-series-collection -# # granularity = "seconds" -# -# # optionally set a TTL to automatically expire documents from the measurement collections. -# # ttl = "360h" - - -# # Configuration for MQTT server to send metrics to -# [[outputs.mqtt]] -# ## MQTT Brokers -# ## The list of brokers should only include the hostname or IP address and the -# ## port to the broker. This should follow the format '{host}:{port}'. For -# ## example, "localhost:1883" or "127.0.0.1:8883". -# servers = ["localhost:1883"] -# -# ## MQTT Topic for Producer Messages -# ## MQTT outputs send metrics to this topic format: -# ## /// (e.g. prefix/web01.example.com/mem) -# topic_prefix = "telegraf" -# -# ## QoS policy for messages -# ## The mqtt QoS policy for sending messages. -# ## See https://www.ibm.com/support/knowledgecenter/en/SSFKSJ_9.0.0/com.ibm.mq.dev.doc/q029090_.htm -# ## 0 = at most once -# ## 1 = at least once -# ## 2 = exactly once -# # qos = 2 -# -# ## Keep Alive -# ## Defines the maximum length of time that the broker and client may not -# ## communicate. Defaults to 0 which turns the feature off. -# ## -# ## For version v2.0.12 and later mosquitto there is a bug -# ## (see https://github.com/eclipse/mosquitto/issues/2117), which requires -# ## this to be non-zero. As a reference eclipse/paho.mqtt.golang defaults to 30. -# # keep_alive = 0 -# -# ## username and password to connect MQTT server. -# # username = "telegraf" -# # password = "metricsmetricsmetricsmetrics" -# -# ## client ID -# ## The unique client id to connect MQTT server. If this parameter is not set -# ## then a random ID is generated. -# # client_id = "" -# -# ## Timeout for write operations. default: 5s -# # timeout = "5s" -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false -# -# ## When true, metrics will be sent in one MQTT message per flush. Otherwise, -# ## metrics are written one metric per MQTT message. -# # batch = false -# -# ## When true, metric will have RETAIN flag set, making broker cache entries until someone -# ## actually reads it -# # retain = false -# -# ## Each data format has its own unique set of configuration options, read -# ## more about them here: -# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md -# data_format = "influx" - - -# # Send telegraf measurements to NATS -# [[outputs.nats]] -# ## URLs of NATS servers -# servers = ["nats://localhost:4222"] -# -# ## Optional client name -# # name = "" -# -# ## Optional credentials -# # username = "" -# # password = "" -# -# ## Optional NATS 2.0 and NATS NGS compatible user credentials -# # credentials = "/etc/telegraf/nats.creds" -# -# ## NATS subject for producer messages -# subject = "telegraf" -# -# ## Use Transport Layer Security -# # secure = false -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false -# -# ## Data format to output. -# ## Each data format has its own unique set of configuration options, read -# ## more about them here: -# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md -# data_format = "influx" - - -# # Send metrics to New Relic metrics endpoint -# [[outputs.newrelic]] -# ## The 'insights_key' parameter requires a NR license key. -# ## New Relic recommends you create one -# ## with a convenient name such as TELEGRAF_INSERT_KEY. -# ## reference: https://docs.newrelic.com/docs/apis/intro-apis/new-relic-api-keys/#ingest-license-key -# # insights_key = "New Relic License Key Here" -# -# ## Prefix to add to add to metric name for easy identification. -# ## This is very useful if your metric names are ambiguous. -# # metric_prefix = "" -# -# ## Timeout for writes to the New Relic API. -# # timeout = "15s" -# -# ## HTTP Proxy override. If unset use values from the standard -# ## proxy environment variables to determine proxy, if any. -# # http_proxy = "http://corporate.proxy:3128" -# -# ## Metric URL override to enable geographic location endpoints. -# # If not set use values from the standard -# # metric_url = "https://metric-api.newrelic.com/metric/v1" - - -# # Send telegraf measurements to NSQD -# [[outputs.nsq]] -# ## Location of nsqd instance listening on TCP -# server = "localhost:4150" -# ## NSQ topic for producer messages -# topic = "telegraf" -# -# ## Data format to output. -# ## Each data format has its own unique set of configuration options, read -# ## more about them here: -# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md -# data_format = "influx" - - -# # Send OpenTelemetry metrics over gRPC -# [[outputs.opentelemetry]] -# ## Override the default (localhost:4317) OpenTelemetry gRPC service -# ## address:port -# # service_address = "localhost:4317" -# -# ## Override the default (5s) request timeout -# # timeout = "5s" -# -# ## Optional TLS Config. -# ## -# ## Root certificates for verifying server certificates encoded in PEM format. -# # tls_ca = "/etc/telegraf/ca.pem" -# ## The public and private keypairs for the client encoded in PEM format. -# ## May contain intermediate certificates. -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS, but skip TLS chain and host verification. -# # insecure_skip_verify = false -# ## Send the specified TLS server name via SNI. -# # tls_server_name = "foo.example.com" -# -# ## Override the default (gzip) compression used to send data. -# ## Supports: "gzip", "none" -# # compression = "gzip" -# -# ## Additional OpenTelemetry resource attributes -# # [outputs.opentelemetry.attributes] -# # "service.name" = "demo" -# -# ## Additional gRPC request metadata -# # [outputs.opentelemetry.headers] -# # key1 = "value1" - - -# # Configuration for OpenTSDB server to send metrics to -# [[outputs.opentsdb]] -# ## prefix for metrics keys -# prefix = "my.specific.prefix." -# -# ## DNS name of the OpenTSDB server -# ## Using "opentsdb.example.com" or "tcp://opentsdb.example.com" will use the -# ## telnet API. "http://opentsdb.example.com" will use the Http API. -# host = "opentsdb.example.com" -# -# ## Port of the OpenTSDB server -# port = 4242 -# -# ## Number of data points to send to OpenTSDB in Http requests. -# ## Not used with telnet API. -# http_batch_size = 50 -# -# ## URI Path for Http requests to OpenTSDB. -# ## Used in cases where OpenTSDB is located behind a reverse proxy. -# http_path = "/api/put" -# -# ## Debug true - Prints OpenTSDB communication -# debug = false -# -# ## Separator separates measurement name from field -# separator = "_" - - -# # Configuration for the Prometheus client to spawn -# [[outputs.prometheus_client]] -# ## Address to listen on -# listen = ":9273" -# -# ## Metric version controls the mapping from Telegraf metrics into -# ## Prometheus format. When using the prometheus input, use the same value in -# ## both plugins to ensure metrics are round-tripped without modification. -# ## -# ## example: metric_version = 1; -# ## metric_version = 2; recommended version -# # metric_version = 1 -# -# ## Use HTTP Basic Authentication. -# # basic_username = "Foo" -# # basic_password = "Bar" -# -# ## If set, the IP Ranges which are allowed to access metrics. -# ## ex: ip_range = ["192.168.0.0/24", "192.168.1.0/30"] -# # ip_range = [] -# -# ## Path to publish the metrics on. -# # path = "/metrics" -# -# ## Expiration interval for each metric. 0 == no expiration -# # expiration_interval = "60s" -# -# ## Collectors to enable, valid entries are "gocollector" and "process". -# ## If unset, both are enabled. -# # collectors_exclude = ["gocollector", "process"] -# -# ## Send string metrics as Prometheus labels. -# ## Unless set to false all string metrics will be sent as labels. -# # string_as_label = true -# -# ## If set, enable TLS with the given certificate. -# # tls_cert = "/etc/ssl/telegraf.crt" -# # tls_key = "/etc/ssl/telegraf.key" -# -# ## Set one or more allowed client CA certificate file names to -# ## enable mutually authenticated TLS connections -# # tls_allowed_cacerts = ["/etc/telegraf/clientca.pem"] -# -# ## Export metric collection time. -# # export_timestamp = false - - -# # Configuration for the Riemann server to send metrics to -# [[outputs.riemann]] -# ## The full TCP or UDP URL of the Riemann server -# url = "tcp://localhost:5555" -# -# ## Riemann event TTL, floating-point time in seconds. -# ## Defines how long that an event is considered valid for in Riemann -# # ttl = 30.0 -# -# ## Separator to use between measurement and field name in Riemann service name -# ## This does not have any effect if 'measurement_as_attribute' is set to 'true' -# separator = "/" -# -# ## Set measurement name as Riemann attribute 'measurement', instead of prepending it to the Riemann service name -# # measurement_as_attribute = false -# -# ## Send string metrics as Riemann event states. -# ## Unless enabled all string metrics will be ignored -# # string_as_state = false -# -# ## A list of tag keys whose values get sent as Riemann tags. -# ## If empty, all Telegraf tag values will be sent as tags -# # tag_keys = ["telegraf","custom_tag"] -# -# ## Additional Riemann tags to send. -# # tags = ["telegraf-output"] -# -# ## Description for Riemann event -# # description_text = "metrics collected from telegraf" -# -# ## Riemann client write timeout, defaults to "5s" if not set. -# # timeout = "5s" - - -# # Configuration for the Riemann server to send metrics to -# [[outputs.riemann_legacy]] -# ## DEPRECATED: The 'riemann_legacy' plugin is deprecated in version 1.3.0, use 'outputs.riemann' instead (see https://github.com/influxdata/telegraf/issues/1878). -# ## URL of server -# url = "localhost:5555" -# ## transport protocol to use either tcp or udp -# transport = "tcp" -# ## separator to use between input name and field name in Riemann service name -# separator = " " - - -# # Send aggregate metrics to Sensu Monitor -# [[outputs.sensu]] -# ## BACKEND API URL is the Sensu Backend API root URL to send metrics to -# ## (protocol, host, and port only). The output plugin will automatically -# ## append the corresponding backend API path -# ## /api/core/v2/namespaces/:entity_namespace/events/:entity_name/:check_name). -# ## -# ## Backend Events API reference: -# ## https://docs.sensu.io/sensu-go/latest/api/events/ -# ## -# ## AGENT API URL is the Sensu Agent API root URL to send metrics to -# ## (protocol, host, and port only). The output plugin will automatically -# ## append the correspeonding agent API path (/events). -# ## -# ## Agent API Events API reference: -# ## https://docs.sensu.io/sensu-go/latest/api/events/ -# ## -# ## NOTE: if backend_api_url and agent_api_url and api_key are set, the output -# ## plugin will use backend_api_url. If backend_api_url and agent_api_url are -# ## not provided, the output plugin will default to use an agent_api_url of -# ## http://127.0.0.1:3031 -# ## -# # backend_api_url = "http://127.0.0.1:8080" -# # agent_api_url = "http://127.0.0.1:3031" -# -# ## API KEY is the Sensu Backend API token -# ## Generate a new API token via: -# ## -# ## $ sensuctl cluster-role create telegraf --verb create --resource events,entities -# ## $ sensuctl cluster-role-binding create telegraf --cluster-role telegraf --group telegraf -# ## $ sensuctl user create telegraf --group telegraf --password REDACTED -# ## $ sensuctl api-key grant telegraf -# ## -# ## For more information on Sensu RBAC profiles & API tokens, please visit: -# ## - https://docs.sensu.io/sensu-go/latest/reference/rbac/ -# ## - https://docs.sensu.io/sensu-go/latest/reference/apikeys/ -# ## -# # api_key = "${SENSU_API_KEY}" -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false -# -# ## Timeout for HTTP message -# # timeout = "5s" -# -# ## HTTP Content-Encoding for write request body, can be set to "gzip" to -# ## compress body or "identity" to apply no encoding. -# # content_encoding = "identity" -# -# ## Sensu Event details -# ## -# ## Below are the event details to be sent to Sensu. The main portions of the -# ## event are the check, entity, and metrics specifications. For more information -# ## on Sensu events and its components, please visit: -# ## - Events - https://docs.sensu.io/sensu-go/latest/reference/events -# ## - Checks - https://docs.sensu.io/sensu-go/latest/reference/checks -# ## - Entities - https://docs.sensu.io/sensu-go/latest/reference/entities -# ## - Metrics - https://docs.sensu.io/sensu-go/latest/reference/events#metrics -# ## -# ## Check specification -# ## The check name is the name to give the Sensu check associated with the event -# ## created. This maps to check.metatadata.name in the event. -# [outputs.sensu.check] -# name = "telegraf" -# -# ## Entity specification -# ## Configure the entity name and namespace, if necessary. This will be part of -# ## the entity.metadata in the event. -# ## -# ## NOTE: if the output plugin is configured to send events to a -# ## backend_api_url and entity_name is not set, the value returned by -# ## os.Hostname() will be used; if the output plugin is configured to send -# ## events to an agent_api_url, entity_name and entity_namespace are not used. -# # [outputs.sensu.entity] -# # name = "server-01" -# # namespace = "default" -# -# ## Metrics specification -# ## Configure the tags for the metrics that are sent as part of the Sensu event -# # [outputs.sensu.tags] -# # source = "telegraf" -# -# ## Configure the handler(s) for processing the provided metrics -# # [outputs.sensu.metrics] -# # handlers = ["influxdb","elasticsearch"] - - -# # Send metrics and events to SignalFx -# [[outputs.signalfx]] -# ## SignalFx Org Access Token -# access_token = "my-secret-token" -# -# ## The SignalFx realm that your organization resides in -# signalfx_realm = "us9" # Required if ingest_url is not set -# -# ## You can optionally provide a custom ingest url instead of the -# ## signalfx_realm option above if you are using a gateway or proxy -# ## instance. This option takes precident over signalfx_realm. -# ingest_url = "https://my-custom-ingest/" -# -# ## Event typed metrics are omitted by default, -# ## If you require an event typed metric you must specify the -# ## metric name in the following list. -# included_event_names = ["plugin.metric_name"] - - -# # Generic socket writer capable of handling multiple socket types. -# [[outputs.socket_writer]] -# ## URL to connect to -# # address = "tcp://127.0.0.1:8094" -# # address = "tcp://example.com:http" -# # address = "tcp4://127.0.0.1:8094" -# # address = "tcp6://127.0.0.1:8094" -# # address = "tcp6://[2001:db8::1]:8094" -# # address = "udp://127.0.0.1:8094" -# # address = "udp4://127.0.0.1:8094" -# # address = "udp6://127.0.0.1:8094" -# # address = "unix:///tmp/telegraf.sock" -# # address = "unixgram:///tmp/telegraf.sock" -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false -# -# ## Period between keep alive probes. -# ## Only applies to TCP sockets. -# ## 0 disables keep alive probes. -# ## Defaults to the OS configuration. -# # keep_alive_period = "5m" -# -# ## Content encoding for packet-based connections (i.e. UDP, unixgram). -# ## Can be set to "gzip" or to "identity" to apply no encoding. -# ## -# # content_encoding = "identity" -# -# ## Data format to generate. -# ## Each data format has its own unique set of configuration options, read -# ## more about them here: -# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md -# # data_format = "influx" - - -# # Send metrics to SQL Database -# [[outputs.sql]] -# ## Database driver -# ## Valid options: mssql (Microsoft SQL Server), mysql (MySQL), pgx (Postgres), -# ## sqlite (SQLite3), snowflake (snowflake.com) clickhouse (ClickHouse) -# # driver = "" -# -# ## Data source name -# ## The format of the data source name is different for each database driver. -# ## See the plugin readme for details. -# # data_source_name = "" -# -# ## Timestamp column name -# # timestamp_column = "timestamp" -# -# ## Table creation template -# ## Available template variables: -# ## {TABLE} - table name as a quoted identifier -# ## {TABLELITERAL} - table name as a quoted string literal -# ## {COLUMNS} - column definitions (list of quoted identifiers and types) -# # table_template = "CREATE TABLE {TABLE}({COLUMNS})" -# -# ## Table existence check template -# ## Available template variables: -# ## {TABLE} - tablename as a quoted identifier -# # table_exists_template = "SELECT 1 FROM {TABLE} LIMIT 1" -# -# ## Initialization SQL -# # init_sql = "" -# -# ## Metric type to SQL type conversion -# ## The values on the left are the data types Telegraf has and the values on -# ## the right are the data types Telegraf will use when sending to a database. -# ## -# ## The database values used must be data types the destination database -# ## understands. It is up to the user to ensure that the selected data type is -# ## available in the database they are using. Refer to your database -# ## documentation for what data types are available and supported. -# #[outputs.sql.convert] -# # integer = "INT" -# # real = "DOUBLE" -# # text = "TEXT" -# # timestamp = "TIMESTAMP" -# # defaultvalue = "TEXT" -# # unsigned = "UNSIGNED" -# # bool = "BOOL" -# -# ## This setting controls the behavior of the unsigned value. By default the -# ## setting will take the integer value and append the unsigned value to it. The other -# ## option is "literal", which will use the actual value the user provides to -# ## the unsigned option. This is useful for a database like ClickHouse where -# ## the unsigned value should use a value like "uint64". -# # conversion_style = "unsigned_suffix" - - -# # Configuration for Google Cloud Stackdriver to send metrics to -# [[outputs.stackdriver]] -# ## GCP Project -# project = "erudite-bloom-151019" -# -# ## The namespace for the metric descriptor -# namespace = "telegraf" -# -# ## Custom resource type -# # resource_type = "generic_node" -# -# ## Additional resource labels -# # [outputs.stackdriver.resource_labels] -# # node_id = "$HOSTNAME" -# # namespace = "myapp" -# # location = "eu-north0" - - -# # A plugin that can transmit metrics to Sumo Logic HTTP Source -# [[outputs.sumologic]] -# ## Unique URL generated for your HTTP Metrics Source. -# ## This is the address to send metrics to. -# # url = "https://events.sumologic.net/receiver/v1/http/" -# -# ## Data format to be used for sending metrics. -# ## This will set the "Content-Type" header accordingly. -# ## Currently supported formats: -# ## * graphite - for Content-Type of application/vnd.sumologic.graphite -# ## * carbon2 - for Content-Type of application/vnd.sumologic.carbon2 -# ## * prometheus - for Content-Type of application/vnd.sumologic.prometheus -# ## -# ## More information can be found at: -# ## https://help.sumologic.com/03Send-Data/Sources/02Sources-for-Hosted-Collectors/HTTP-Source/Upload-Metrics-to-an-HTTP-Source#content-type-headers-for-metrics -# ## -# ## NOTE: -# ## When unset, telegraf will by default use the influx serializer which is currently unsupported -# ## in HTTP Source. -# data_format = "carbon2" -# -# ## Timeout used for HTTP request -# # timeout = "5s" -# -# ## Max HTTP request body size in bytes before compression (if applied). -# ## By default 1MB is recommended. -# ## NOTE: -# ## Bear in mind that in some serializer a metric even though serialized to multiple -# ## lines cannot be split any further so setting this very low might not work -# ## as expected. -# # max_request_body_size = 1000000 -# -# ## Additional, Sumo specific options. -# ## Full list can be found here: -# ## https://help.sumologic.com/03Send-Data/Sources/02Sources-for-Hosted-Collectors/HTTP-Source/Upload-Metrics-to-an-HTTP-Source#supported-http-headers -# -# ## Desired source name. -# ## Useful if you want to override the source name configured for the source. -# # source_name = "" -# -# ## Desired host name. -# ## Useful if you want to override the source host configured for the source. -# # source_host = "" -# -# ## Desired source category. -# ## Useful if you want to override the source category configured for the source. -# # source_category = "" -# -# ## Comma-separated key=value list of dimensions to apply to every metric. -# ## Custom dimensions will allow you to query your metrics at a more granular level. -# # dimensions = "" - - -# # Configuration for Syslog server to send metrics to -# [[outputs.syslog]] -# ## URL to connect to -# ## ex: address = "tcp://127.0.0.1:8094" -# ## ex: address = "tcp4://127.0.0.1:8094" -# ## ex: address = "tcp6://127.0.0.1:8094" -# ## ex: address = "tcp6://[2001:db8::1]:8094" -# ## ex: address = "udp://127.0.0.1:8094" -# ## ex: address = "udp4://127.0.0.1:8094" -# ## ex: address = "udp6://127.0.0.1:8094" -# address = "tcp://127.0.0.1:8094" -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false -# -# ## Period between keep alive probes. -# ## Only applies to TCP sockets. -# ## 0 disables keep alive probes. -# ## Defaults to the OS configuration. -# # keep_alive_period = "5m" -# -# ## The framing technique with which it is expected that messages are -# ## transported (default = "octet-counting"). Whether the messages come -# ## using the octect-counting (RFC5425#section-4.3.1, RFC6587#section-3.4.1), -# ## or the non-transparent framing technique (RFC6587#section-3.4.2). Must -# ## be one of "octet-counting", "non-transparent". -# # framing = "octet-counting" -# -# ## The trailer to be expected in case of non-transparent framing (default = "LF"). -# ## Must be one of "LF", or "NUL". -# # trailer = "LF" -# -# ## SD-PARAMs settings -# ## Syslog messages can contain key/value pairs within zero or more -# ## structured data sections. For each unrecognized metric tag/field a -# ## SD-PARAMS is created. -# ## -# ## Example: -# ## [[outputs.syslog]] -# ## sdparam_separator = "_" -# ## default_sdid = "default@32473" -# ## sdids = ["foo@123", "bar@456"] -# ## -# ## input => xyzzy,x=y foo@123_value=42,bar@456_value2=84,something_else=1 -# ## output (structured data only) => [foo@123 value=42][bar@456 value2=84][default@32473 something_else=1 x=y] -# -# ## SD-PARAMs separator between the sdid and tag/field key (default = "_") -# # sdparam_separator = "_" -# -# ## Default sdid used for tags/fields that don't contain a prefix defined in -# ## the explicit sdids setting below If no default is specified, no SD-PARAMs -# ## will be used for unrecognized field. -# # default_sdid = "default@32473" -# -# ## List of explicit prefixes to extract from tag/field keys and use as the -# ## SDID, if they match (see above example for more details): -# # sdids = ["foo@123", "bar@456"] -# -# ## Default severity value. Severity and Facility are used to calculate the -# ## message PRI value (RFC5424#section-6.2.1). Used when no metric field -# ## with key "severity_code" is defined. If unset, 5 (notice) is the default -# # default_severity_code = 5 -# -# ## Default facility value. Facility and Severity are used to calculate the -# ## message PRI value (RFC5424#section-6.2.1). Used when no metric field with -# ## key "facility_code" is defined. If unset, 1 (user-level) is the default -# # default_facility_code = 1 -# -# ## Default APP-NAME value (RFC5424#section-6.2.5) -# ## Used when no metric tag with key "appname" is defined. -# ## If unset, "Telegraf" is the default -# # default_appname = "Telegraf" - - -# # Configuration for Amazon Timestream output. -# [[outputs.timestream]] -# ## Amazon Region -# region = "us-east-1" -# -# ## Amazon Credentials -# ## Credentials are loaded in the following order: -# ## 1) Web identity provider credentials via STS if role_arn and web_identity_token_file are specified -# ## 2) Assumed credentials via STS if role_arn is specified -# ## 3) explicit credentials from 'access_key' and 'secret_key' -# ## 4) shared profile from 'profile' -# ## 5) environment variables -# ## 6) shared credentials file -# ## 7) EC2 Instance Profile -# #access_key = "" -# #secret_key = "" -# #token = "" -# #role_arn = "" -# #web_identity_token_file = "" -# #role_session_name = "" -# #profile = "" -# #shared_credential_file = "" -# -# ## Endpoint to make request against, the correct endpoint is automatically -# ## determined and this option should only be set if you wish to override the -# ## default. -# ## ex: endpoint_url = "http://localhost:8000" -# # endpoint_url = "" -# -# ## Timestream database where the metrics will be inserted. -# ## The database must exist prior to starting Telegraf. -# database_name = "yourDatabaseNameHere" -# -# ## Specifies if the plugin should describe the Timestream database upon starting -# ## to validate if it has access necessary permissions, connection, etc., as a safety check. -# ## If the describe operation fails, the plugin will not start -# ## and therefore the Telegraf agent will not start. -# describe_database_on_start = false -# -# ## The mapping mode specifies how Telegraf records are represented in Timestream. -# ## Valid values are: single-table, multi-table. -# ## For example, consider the following data in line protocol format: -# ## weather,location=us-midwest,season=summer temperature=82,humidity=71 1465839830100400200 -# ## airquality,location=us-west no2=5,pm25=16 1465839830100400200 -# ## where weather and airquality are the measurement names, location and season are tags, -# ## and temperature, humidity, no2, pm25 are fields. -# ## In multi-table mode: -# ## - first line will be ingested to table named weather -# ## - second line will be ingested to table named airquality -# ## - the tags will be represented as dimensions -# ## - first table (weather) will have two records: -# ## one with measurement name equals to temperature, -# ## another with measurement name equals to humidity -# ## - second table (airquality) will have two records: -# ## one with measurement name equals to no2, -# ## another with measurement name equals to pm25 -# ## - the Timestream tables from the example will look like this: -# ## TABLE "weather": -# ## time | location | season | measure_name | measure_value::bigint -# ## 2016-06-13 17:43:50 | us-midwest | summer | temperature | 82 -# ## 2016-06-13 17:43:50 | us-midwest | summer | humidity | 71 -# ## TABLE "airquality": -# ## time | location | measure_name | measure_value::bigint -# ## 2016-06-13 17:43:50 | us-west | no2 | 5 -# ## 2016-06-13 17:43:50 | us-west | pm25 | 16 -# ## In single-table mode: -# ## - the data will be ingested to a single table, which name will be valueOf(single_table_name) -# ## - measurement name will stored in dimension named valueOf(single_table_dimension_name_for_telegraf_measurement_name) -# ## - location and season will be represented as dimensions -# ## - temperature, humidity, no2, pm25 will be represented as measurement name -# ## - the Timestream table from the example will look like this: -# ## Assuming: -# ## - single_table_name = "my_readings" -# ## - single_table_dimension_name_for_telegraf_measurement_name = "namespace" -# ## TABLE "my_readings": -# ## time | location | season | namespace | measure_name | measure_value::bigint -# ## 2016-06-13 17:43:50 | us-midwest | summer | weather | temperature | 82 -# ## 2016-06-13 17:43:50 | us-midwest | summer | weather | humidity | 71 -# ## 2016-06-13 17:43:50 | us-west | NULL | airquality | no2 | 5 -# ## 2016-06-13 17:43:50 | us-west | NULL | airquality | pm25 | 16 -# ## In most cases, using multi-table mapping mode is recommended. -# ## However, you can consider using single-table in situations when you have thousands of measurement names. -# mapping_mode = "multi-table" -# -# ## Only valid and required for mapping_mode = "single-table" -# ## Specifies the Timestream table where the metrics will be uploaded. -# # single_table_name = "yourTableNameHere" -# -# ## Only valid and required for mapping_mode = "single-table" -# ## Describes what will be the Timestream dimension name for the Telegraf -# ## measurement name. -# # single_table_dimension_name_for_telegraf_measurement_name = "namespace" -# -# ## Specifies if the plugin should create the table, if the table do not exist. -# ## The plugin writes the data without prior checking if the table exists. -# ## When the table does not exist, the error returned from Timestream will cause -# ## the plugin to create the table, if this parameter is set to true. -# create_table_if_not_exists = true -# -# ## Only valid and required if create_table_if_not_exists = true -# ## Specifies the Timestream table magnetic store retention period in days. -# ## Check Timestream documentation for more details. -# create_table_magnetic_store_retention_period_in_days = 365 -# -# ## Only valid and required if create_table_if_not_exists = true -# ## Specifies the Timestream table memory store retention period in hours. -# ## Check Timestream documentation for more details. -# create_table_memory_store_retention_period_in_hours = 24 -# -# ## Only valid and optional if create_table_if_not_exists = true -# ## Specifies the Timestream table tags. -# ## Check Timestream documentation for more details -# # create_table_tags = { "foo" = "bar", "environment" = "dev"} -# -# ## Specify the maximum number of parallel go routines to ingest/write data -# ## If not specified, defaulted to 1 go routines -# max_write_go_routines = 25 - - -# # Write metrics to Warp 10 -# [[outputs.warp10]] -# # Prefix to add to the measurement. -# prefix = "telegraf." -# -# # URL of the Warp 10 server -# warp_url = "http://localhost:8080" -# -# # Write token to access your app on warp 10 -# token = "Token" -# -# # Warp 10 query timeout -# # timeout = "15s" -# -# ## Print Warp 10 error body -# # print_error_body = false -# -# ## Max string error size -# # max_string_error_size = 511 -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false - - -# # Configuration for Wavefront server to send metrics to -# [[outputs.wavefront]] -# ## Url for Wavefront Direct Ingestion. For Wavefront Proxy Ingestion, see -# ## the 'host' and 'port' optioins below. -# url = "https://metrics.wavefront.com" -# -# ## Authentication Token for Wavefront. Only required if using Direct Ingestion -# #token = "DUMMY_TOKEN" -# -# ## DNS name of the wavefront proxy server. Do not use if url is specified -# #host = "wavefront.example.com" -# -# ## Port that the Wavefront proxy server listens on. Do not use if url is specified -# #port = 2878 -# -# ## prefix for metrics keys -# #prefix = "my.specific.prefix." -# -# ## whether to use "value" for name of simple fields. default is false -# #simple_fields = false -# -# ## character to use between metric and field name. default is . (dot) -# #metric_separator = "." -# -# ## Convert metric name paths to use metricSeparator character -# ## When true will convert all _ (underscore) characters in final metric name. default is true -# #convert_paths = true -# -# ## Use Strict rules to sanitize metric and tag names from invalid characters -# ## When enabled forward slash (/) and comma (,) will be accepted -# #use_strict = false -# -# ## Use Regex to sanitize metric and tag names from invalid characters -# ## Regex is more thorough, but significantly slower. default is false -# #use_regex = false -# -# ## point tags to use as the source name for Wavefront (if none found, host will be used) -# #source_override = ["hostname", "address", "agent_host", "node_host"] -# -# ## whether to convert boolean values to numeric values, with false -> 0.0 and true -> 1.0. default is true -# #convert_bool = true -# -# ## Truncate metric tags to a total of 254 characters for the tag name value. Wavefront will reject any -# ## data point exceeding this limit if not truncated. Defaults to 'false' to provide backwards compatibility. -# #truncate_tags = false -# -# ## Flush the internal buffers after each batch. This effectively bypasses the background sending of metrics -# ## normally done by the Wavefront SDK. This can be used if you are experiencing buffer overruns. The sending -# ## of metrics will block for a longer time, but this will be handled gracefully by the internal buffering in -# ## Telegraf. -# #immediate_flush = true - - -# # Generic WebSocket output writer. -# [[outputs.websocket]] -# ## URL is the address to send metrics to. Make sure ws or wss scheme is used. -# url = "ws://127.0.0.1:8080/telegraf" -# -# ## Timeouts (make sure read_timeout is larger than server ping interval or set to zero). -# # connect_timeout = "30s" -# # write_timeout = "30s" -# # read_timeout = "30s" -# -# ## Optionally turn on using text data frames (binary by default). -# # use_text_frames = false -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false -# -# ## Optional SOCKS5 proxy to use -# # socks5_enabled = true -# # socks5_address = "127.0.0.1:1080" -# # socks5_username = "alice" -# # socks5_password = "pass123" -# -# ## Data format to output. -# ## Each data format has it's own unique set of configuration options, read -# ## more about them here: -# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md -# # data_format = "influx" -# -# ## Additional HTTP Upgrade headers -# # [outputs.websocket.headers] -# # Authorization = "Bearer " - - -# # Send aggregated metrics to Yandex.Cloud Monitoring -# [[outputs.yandex_cloud_monitoring]] -# ## Timeout for HTTP writes. -# # timeout = "20s" -# -# ## Yandex.Cloud monitoring API endpoint. Normally should not be changed -# # endpoint_url = "https://monitoring.api.cloud.yandex.net/monitoring/v2/data/write" -# -# ## All user metrics should be sent with "custom" service specified. Normally should not be changed -# # service = "custom" - - -############################################################################### -# PROCESSOR PLUGINS # -############################################################################### - - -# # Attach AWS EC2 metadata to metrics -# [[processors.aws_ec2]] -# ## Instance identity document tags to attach to metrics. -# ## For more information see: -# ## https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-identity-documents.html -# ## -# ## Available tags: -# ## * accountId -# ## * architecture -# ## * availabilityZone -# ## * billingProducts -# ## * imageId -# ## * instanceId -# ## * instanceType -# ## * kernelId -# ## * pendingTime -# ## * privateIp -# ## * ramdiskId -# ## * region -# ## * version -# imds_tags = [] -# -# ## EC2 instance tags retrieved with DescribeTags action. -# ## In case tag is empty upon retrieval it's omitted when tagging metrics. -# ## Note that in order for this to work, role attached to EC2 instance or AWS -# ## credentials available from the environment must have a policy attached, that -# ## allows ec2:DescribeTags. -# ## -# ## For more information see: -# ## https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeTags.html -# ec2_tags = [] -# -# ## Timeout for http requests made by against aws ec2 metadata endpoint. -# timeout = "10s" -# -# ## ordered controls whether or not the metrics need to stay in the same order -# ## this plugin received them in. If false, this plugin will change the order -# ## with requests hitting cached results moving through immediately and not -# ## waiting on slower lookups. This may cause issues for you if you are -# ## depending on the order of metrics staying the same. If so, set this to true. -# ## Keeping the metrics ordered may be slightly slower. -# ordered = false -# -# ## max_parallel_calls is the maximum number of AWS API calls to be in flight -# ## at the same time. -# ## It's probably best to keep this number fairly low. -# max_parallel_calls = 10 - - -# # Clone metrics and apply modifications. -# [[processors.clone]] -# ## All modifications on inputs and aggregators can be overridden: -# # name_override = "new_name" -# # name_prefix = "new_name_prefix" -# # name_suffix = "new_name_suffix" -# -# ## Tags to be added (all values must be strings) -# # [processors.clone.tags] -# # additional_tag = "tag_value" - - -# # Convert values to another metric value type -# [[processors.converter]] -# ## Tags to convert -# ## -# ## The table key determines the target type, and the array of key-values -# ## select the keys to convert. The array may contain globs. -# ## = [...] -# [processors.converter.tags] -# measurement = [] -# string = [] -# integer = [] -# unsigned = [] -# boolean = [] -# float = [] -# -# ## Fields to convert -# ## -# ## The table key determines the target type, and the array of key-values -# ## select the keys to convert. The array may contain globs. -# ## = [...] -# [processors.converter.fields] -# measurement = [] -# tag = [] -# string = [] -# integer = [] -# unsigned = [] -# boolean = [] -# float = [] - - -# # Dates measurements, tags, and fields that pass through this filter. -# [[processors.date]] -# ## New tag to create -# tag_key = "month" -# -# ## New field to create (cannot set both field_key and tag_key) -# # field_key = "month" -# -# ## Date format string, must be a representation of the Go "reference time" -# ## which is "Mon Jan 2 15:04:05 -0700 MST 2006". -# date_format = "Jan" -# -# ## If destination is a field, date format can also be one of -# ## "unix", "unix_ms", "unix_us", or "unix_ns", which will insert an integer field. -# # date_format = "unix" -# -# ## Offset duration added to the date string when writing the new tag. -# # date_offset = "0s" -# -# ## Timezone to use when creating the tag or field using a reference time -# ## string. This can be set to one of "UTC", "Local", or to a location name -# ## in the IANA Time Zone database. -# ## example: timezone = "America/Los_Angeles" -# # timezone = "UTC" - - -# # Filter metrics with repeating field values -# [[processors.dedup]] -# ## Maximum time to suppress output -# dedup_interval = "600s" - - -# # Defaults sets default value(s) for specified fields that are not set on incoming metrics. -# [[processors.defaults]] -# ## Ensures a set of fields always exists on your metric(s) with their -# ## respective default value. -# ## For any given field pair (key = default), if it's not set, a field -# ## is set on the metric with the specified default. -# ## -# ## A field is considered not set if it is nil on the incoming metric; -# ## or it is not nil but its value is an empty string or is a string -# ## of one or more spaces. -# ## = -# # [processors.defaults.fields] -# # field_1 = "bar" -# # time_idle = 0 -# # is_error = true - - -# # Map enum values according to given table. -# [[processors.enum]] -# [[processors.enum.mapping]] -# ## Name of the field to map. Globs accepted. -# field = "status" -# -# ## Name of the tag to map. Globs accepted. -# # tag = "status" -# -# ## Destination tag or field to be used for the mapped value. By default the -# ## source tag or field is used, overwriting the original value. -# dest = "status_code" -# -# ## Default value to be used for all values not contained in the mapping -# ## table. When unset, the unmodified value for the field will be used if no -# ## match is found. -# # default = 0 -# -# ## Table of mappings -# [processors.enum.mapping.value_mappings] -# green = 1 -# amber = 2 -# red = 3 - - -# # Run executable as long-running processor plugin -# [[processors.execd]] -# ## Program to run as daemon -# ## eg: command = ["/path/to/your_program", "arg1", "arg2"] -# command = ["cat"] -# -# ## Delay before the process is restarted after an unexpected termination -# restart_delay = "10s" - - -# # Performs file path manipulations on tags and fields -# [[processors.filepath]] -# ## Treat the tag value as a path and convert it to its last element, storing the result in a new tag -# # [[processors.filepath.basename]] -# # tag = "path" -# # dest = "basepath" -# -# ## Treat the field value as a path and keep all but the last element of path, typically the path's directory -# # [[processors.filepath.dirname]] -# # field = "path" -# -# ## Treat the tag value as a path, converting it to its the last element without its suffix -# # [[processors.filepath.stem]] -# # tag = "path" -# -# ## Treat the tag value as a path, converting it to the shortest path name equivalent -# ## to path by purely lexical processing -# # [[processors.filepath.clean]] -# # tag = "path" -# -# ## Treat the tag value as a path, converting it to a relative path that is lexically -# ## equivalent to the source path when joined to 'base_path' -# # [[processors.filepath.rel]] -# # tag = "path" -# # base_path = "/var/log" -# -# ## Treat the tag value as a path, replacing each separator character in path with a '/' character. Has only -# ## effect on Windows -# # [[processors.filepath.toslash]] -# # tag = "path" - - -# # Add a tag of the network interface name looked up over SNMP by interface number -# [[processors.ifname]] -# ## Name of tag holding the interface number -# # tag = "ifIndex" -# -# ## Name of output tag where service name will be added -# # dest = "ifName" -# -# ## Name of tag of the SNMP agent to request the interface name from -# # agent = "agent" -# -# ## Timeout for each request. -# # timeout = "5s" -# -# ## SNMP version; can be 1, 2, or 3. -# # version = 2 -# -# ## SNMP community string. -# # community = "public" -# -# ## Number of retries to attempt. -# # retries = 3 -# -# ## The GETBULK max-repetitions parameter. -# # max_repetitions = 10 -# -# ## SNMPv3 authentication and encryption options. -# ## -# ## Security Name. -# # sec_name = "myuser" -# ## Authentication protocol; one of "MD5", "SHA", or "". -# # auth_protocol = "MD5" -# ## Authentication password. -# # auth_password = "pass" -# ## Security Level; one of "noAuthNoPriv", "authNoPriv", or "authPriv". -# # sec_level = "authNoPriv" -# ## Context Name. -# # context_name = "" -# ## Privacy protocol used for encrypted messages; one of "DES", "AES" or "". -# # priv_protocol = "" -# ## Privacy password used for encrypted messages. -# # priv_password = "" -# -# ## max_parallel_lookups is the maximum number of SNMP requests to -# ## make at the same time. -# # max_parallel_lookups = 100 -# -# ## ordered controls whether or not the metrics need to stay in the -# ## same order this plugin received them in. If false, this plugin -# ## may change the order when data is cached. If you need metrics to -# ## stay in order set this to true. keeping the metrics ordered may -# ## be slightly slower -# # ordered = false -# -# ## cache_ttl is the amount of time interface names are cached for a -# ## given agent. After this period elapses if names are needed they -# ## will be retrieved again. -# # cache_ttl = "8h" - - -# # Adds noise to numerical fields -# [[processors.noise]] -# ## Specified the type of the random distribution. -# ## Can be "laplacian", "gaussian" or "uniform". -# # type = "laplacian -# -# ## Center of the distribution. -# ## Only used for Laplacian and Gaussian distributions. -# # mu = 0.0 -# -# ## Scale parameter for the Laplacian or Gaussian distribution -# # scale = 1.0 -# -# ## Upper and lower bound of the Uniform distribution -# # min = -1.0 -# # max = 1.0 -# -# ## Apply the noise only to numeric fields matching the filter criteria below. -# ## Excludes takes precedence over includes. -# # include_fields = [] -# # exclude_fields = [] - - -# # Apply metric modifications using override semantics. -# [[processors.override]] -# ## All modifications on inputs and aggregators can be overridden: -# # name_override = "new_name" -# # name_prefix = "new_name_prefix" -# # name_suffix = "new_name_suffix" -# -# ## Tags to be added (all values must be strings) -# # [processors.override.tags] -# # additional_tag = "tag_value" - - -# # Parse a value in a specified field/tag(s) and add the result in a new metric -# [[processors.parser]] -# ## The name of the fields whose value will be parsed. -# parse_fields = [] -# -# ## If true, incoming metrics are not emitted. -# drop_original = false -# -# ## If set to override, emitted metrics will be merged by overriding the -# ## original metric using the newly parsed metrics. -# merge = "override" -# -# ## The dataformat to be read from files -# ## Each data format has its own unique set of configuration options, read -# ## more about them here: -# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md -# data_format = "influx" - - -# # Rotate a single valued metric into a multi field metric -# [[processors.pivot]] -# ## Tag to use for naming the new field. -# tag_key = "name" -# ## Field to use as the value of the new field. -# value_key = "value" - - -# # Given a tag/field of a TCP or UDP port number, add a tag/field of the service name looked up in the system services file -# [[processors.port_name]] -# [[processors.port_name]] -# ## Name of tag holding the port number -# # tag = "port" -# ## Or name of the field holding the port number -# # field = "port" -# -# ## Name of output tag or field (depending on the source) where service name will be added -# # dest = "service" -# -# ## Default tcp or udp -# # default_protocol = "tcp" -# -# ## Tag containing the protocol (tcp or udp, case-insensitive) -# # protocol_tag = "proto" -# -# ## Field containing the protocol (tcp or udp, case-insensitive) -# # protocol_field = "proto" - - -# # Print all metrics that pass through this filter. -# [[processors.printer]] - - -# # Transforms tag and field values as well as measurement, tag and field names with regex pattern -# [[processors.regex]] -# ## Tag and field conversions defined in a separate sub-tables -# # [[processors.regex.tags]] -# # ## Tag to change -# # key = "resp_code" -# # ## Regular expression to match on a tag value -# # pattern = "^(\\d)\\d\\d$" -# # ## Matches of the pattern will be replaced with this string. Use ${1} -# # ## notation to use the text of the first submatch. -# # replacement = "${1}xx" -# -# # [[processors.regex.fields]] -# # ## Field to change -# # key = "request" -# # ## All the power of the Go regular expressions available here -# # ## For example, named subgroups -# # pattern = "^/api(?P/[\\w/]+)\\S*" -# # replacement = "${method}" -# # ## If result_key is present, a new field will be created -# # ## instead of changing existing field -# # result_key = "method" -# -# ## Multiple conversions may be applied for one field sequentially -# ## Let's extract one more value -# # [[processors.regex.fields]] -# # key = "request" -# # pattern = ".*category=(\\w+).*" -# # replacement = "${1}" -# # result_key = "search_category" -# -# ## Rename metric fields -# # [[processors.regex.field_rename]] -# # ## Regular expression to match on a field name -# # pattern = "^search_(\\w+)d$" -# # ## Matches of the pattern will be replaced with this string. Use ${1} -# # ## notation to use the text of the first submatch. -# # replacement = "${1}" -# # ## If the new field name already exists, you can either "overwrite" the -# # ## existing one with the value of the renamed field OR you can "keep" -# # ## both the existing and source field. -# # # result_key = "keep" -# -# ## Rename metric tags -# # [[processors.regex.tag_rename]] -# # ## Regular expression to match on a tag name -# # pattern = "^search_(\\w+)d$" -# # ## Matches of the pattern will be replaced with this string. Use ${1} -# # ## notation to use the text of the first submatch. -# # replacement = "${1}" -# # ## If the new tag name already exists, you can either "overwrite" the -# # ## existing one with the value of the renamed tag OR you can "keep" -# # ## both the existing and source tag. -# # # result_key = "keep" -# -# ## Rename metrics -# # [[processors.regex.metric_rename]] -# # ## Regular expression to match on an metric name -# # pattern = "^search_(\\w+)d$" -# # ## Matches of the pattern will be replaced with this string. Use ${1} -# # ## notation to use the text of the first submatch. -# # replacement = "${1}" - - -# # Rename measurements, tags, and fields that pass through this filter. -# [[processors.rename]] - - -# # ReverseDNS does a reverse lookup on IP addresses to retrieve the DNS name -# [[processors.reverse_dns]] -# ## For optimal performance, you may want to limit which metrics are passed to this -# ## processor. eg: -# ## namepass = ["my_metric_*"] -# -# ## cache_ttl is how long the dns entries should stay cached for. -# ## generally longer is better, but if you expect a large number of diverse lookups -# ## you'll want to consider memory use. -# cache_ttl = "24h" -# -# ## lookup_timeout is how long should you wait for a single dns request to repsond. -# ## this is also the maximum acceptable latency for a metric travelling through -# ## the reverse_dns processor. After lookup_timeout is exceeded, a metric will -# ## be passed on unaltered. -# ## multiple simultaneous resolution requests for the same IP will only make a -# ## single rDNS request, and they will all wait for the answer for this long. -# lookup_timeout = "3s" -# -# ## max_parallel_lookups is the maximum number of dns requests to be in flight -# ## at the same time. Requesting hitting cached values do not count against this -# ## total, and neither do mulptiple requests for the same IP. -# ## It's probably best to keep this number fairly low. -# max_parallel_lookups = 10 -# -# ## ordered controls whether or not the metrics need to stay in the same order -# ## this plugin received them in. If false, this plugin will change the order -# ## with requests hitting cached results moving through immediately and not -# ## waiting on slower lookups. This may cause issues for you if you are -# ## depending on the order of metrics staying the same. If so, set this to true. -# ## keeping the metrics ordered may be slightly slower. -# ordered = false -# -# [[processors.reverse_dns.lookup]] -# ## get the ip from the field "source_ip", and put the result in the field "source_name" -# field = "source_ip" -# dest = "source_name" -# -# [[processors.reverse_dns.lookup]] -# ## get the ip from the tag "destination_ip", and put the result in the tag -# ## "destination_name". -# tag = "destination_ip" -# dest = "destination_name" -# -# ## If you would prefer destination_name to be a field instead, you can use a -# ## processors.converter after this one, specifying the order attribute. - - -# # Add the S2 Cell ID as a tag based on latitude and longitude fields -# [[processors.s2geo]] -# ## The name of the lat and lon fields containing WGS-84 latitude and -# ## longitude in decimal degrees. -# # lat_field = "lat" -# # lon_field = "lon" -# -# ## New tag to create -# # tag_key = "s2_cell_id" -# -# ## Cell level (see https://s2geometry.io/resources/s2cell_statistics.html) -# # cell_level = 9 - - -# # Process metrics using a Starlark script -# [[processors.starlark]] -# ## The Starlark source can be set as a string in this configuration file, or -# ## by referencing a file containing the script. Only one source or script -# ## should be set at once. -# ## -# ## Source of the Starlark script. -# source = ''' -# def apply(metric): -# return metric -# ''' -# -# ## File containing a Starlark script. -# # script = "/usr/local/bin/myscript.star" -# -# ## The constants of the Starlark script. -# # [processors.starlark.constants] -# # max_size = 10 -# # threshold = 0.75 -# # default_name = "Julia" -# # debug_mode = true - - -# # Perform string processing on tags, fields, and measurements -# [[processors.strings]] -# ## Convert a tag value to uppercase -# # [[processors.strings.uppercase]] -# # tag = "method" -# -# ## Convert a field value to lowercase and store in a new field -# # [[processors.strings.lowercase]] -# # field = "uri_stem" -# # dest = "uri_stem_normalised" -# -# ## Convert a field value to titlecase -# # [[processors.strings.titlecase]] -# # field = "status" -# -# ## Trim leading and trailing whitespace using the default cutset -# # [[processors.strings.trim]] -# # field = "message" -# -# ## Trim leading characters in cutset -# # [[processors.strings.trim_left]] -# # field = "message" -# # cutset = "\t" -# -# ## Trim trailing characters in cutset -# # [[processors.strings.trim_right]] -# # field = "message" -# # cutset = "\r\n" -# -# ## Trim the given prefix from the field -# # [[processors.strings.trim_prefix]] -# # field = "my_value" -# # prefix = "my_" -# -# ## Trim the given suffix from the field -# # [[processors.strings.trim_suffix]] -# # field = "read_count" -# # suffix = "_count" -# -# ## Replace all non-overlapping instances of old with new -# # [[processors.strings.replace]] -# # measurement = "*" -# # old = ":" -# # new = "_" -# -# ## Trims strings based on width -# # [[processors.strings.left]] -# # field = "message" -# # width = 10 -# -# ## Decode a base64 encoded utf-8 string -# # [[processors.strings.base64decode]] -# # field = "message" -# -# ## Sanitize a string to ensure it is a valid utf-8 string -# ## Each run of invalid UTF-8 byte sequences is replaced by the replacement string, which may be empty -# # [[processors.strings.valid_utf8]] -# # field = "message" -# # replacement = "" - - -# # Restricts the number of tags that can pass through this filter and chooses which tags to preserve when over the limit. -# [[processors.tag_limit]] -# ## Maximum number of tags to preserve -# limit = 10 -# -# ## List of tags to preferentially preserve -# keep = ["foo", "bar", "baz"] - - -# # Uses a Go template to create a new tag -# [[processors.template]] -# ## Tag to set with the output of the template. -# tag = "topic" -# -# ## Go template used to create the tag value. In order to ease TOML -# ## escaping requirements, you may wish to use single quotes around the -# ## template string. -# template = '{{ .Tag "hostname" }}.{{ .Tag "level" }}' - - -# # Print all metrics that pass through this filter. -# [[processors.topk]] -# ## How many seconds between aggregations -# # period = 10 -# -# ## How many top metrics to return -# # k = 10 -# -# ## Over which tags should the aggregation be done. Globs can be specified, in -# ## which case any tag matching the glob will aggregated over. If set to an -# ## empty list is no aggregation over tags is done -# # group_by = ['*'] -# -# ## Over which fields are the top k are calculated -# # fields = ["value"] -# -# ## What aggregation to use. Options: sum, mean, min, max -# # aggregation = "mean" -# -# ## Instead of the top k largest metrics, return the bottom k lowest metrics -# # bottomk = false -# -# ## The plugin assigns each metric a GroupBy tag generated from its name and -# ## tags. If this setting is different than "" the plugin will add a -# ## tag (which name will be the value of this setting) to each metric with -# ## the value of the calculated GroupBy tag. Useful for debugging -# # add_groupby_tag = "" -# -# ## These settings provide a way to know the position of each metric in -# ## the top k. The 'add_rank_field' setting allows to specify for which -# ## fields the position is required. If the list is non empty, then a field -# ## will be added to each and every metric for each string present in this -# ## setting. This field will contain the ranking of the group that -# ## the metric belonged to when aggregated over that field. -# ## The name of the field will be set to the name of the aggregation field, -# ## suffixed with the string '_topk_rank' -# # add_rank_fields = [] -# -# ## These settings provide a way to know what values the plugin is generating -# ## when aggregating metrics. The 'add_aggregate_field' setting allows to -# ## specify for which fields the final aggregation value is required. If the -# ## list is non empty, then a field will be added to each every metric for -# ## each field present in this setting. This field will contain -# ## the computed aggregation for the group that the metric belonged to when -# ## aggregated over that field. -# ## The name of the field will be set to the name of the aggregation field, -# ## suffixed with the string '_topk_aggregate' -# # add_aggregate_fields = [] - - -# # Rotate multi field metric into several single field metrics -# [[processors.unpivot]] -# ## Tag to use for the name. -# tag_key = "name" -# ## Field to use for the name of the value. -# value_key = "value" - - -############################################################################### -# AGGREGATOR PLUGINS # -############################################################################### - - -# # Keep the aggregate basicstats of each metric passing through. -# [[aggregators.basicstats]] -# ## The period on which to flush & clear the aggregator. -# period = "30s" -# -# ## If true, the original metric will be dropped by the -# ## aggregator and will not get sent to the output plugins. -# drop_original = false -# -# ## Configures which basic stats to push as fields -# # stats = ["count", "min", "max", "mean", "stdev", "s2", "sum"] - - -# # Calculates a derivative for every field. -# [[aggregators.derivative]] -# ## The period in which to flush the aggregator. -# period = "30s" -# ## -# ## If true, the original metric will be dropped by the -# ## aggregator and will not get sent to the output plugins. -# drop_original = false -# ## -# ## This aggregator will estimate a derivative for each field, which is -# ## contained in both the first and last metric of the aggregation interval. -# ## Without further configuration the derivative will be calculated with -# ## respect to the time difference between these two measurements in seconds. -# ## The formula applied is for every field: -# ## -# ## value_last - value_first -# ## derivative = -------------------------- -# ## time_difference_in_seconds -# ## -# ## The resulting derivative will be named *fieldname_rate*. The suffix -# ## "_rate" can be configured by the *suffix* parameter. When using a -# ## derivation variable you can include its name for more clarity. -# # suffix = "_rate" -# ## -# ## As an abstraction the derivative can be calculated not only by the time -# ## difference but by the difference of a field, which is contained in the -# ## measurement. This field is assumed to be monotonously increasing. This -# ## feature is used by specifying a *variable*. -# ## Make sure the specified variable is not filtered and exists in the metrics -# ## passed to this aggregator! -# # variable = "" -# ## -# ## When using a field as the derivation parameter the name of that field will -# ## be used for the resulting derivative, e.g. *fieldname_by_parameter*. -# ## -# ## Note, that the calculation is based on the actual timestamp of the -# ## measurements. When there is only one measurement during that period, the -# ## measurement will be rolled over to the next period. The maximum number of -# ## such roll-overs can be configured with a default of 10. -# # max_roll_over = 10 -# ## - - -# # Report the final metric of a series -# [[aggregators.final]] -# ## The period on which to flush & clear the aggregator. -# period = "30s" -# ## If true, the original metric will be dropped by the -# ## aggregator and will not get sent to the output plugins. -# drop_original = false -# -# ## The time that a series is not updated until considering it final. -# series_timeout = "5m" - - -# # Create aggregate histograms. -# [[aggregators.histogram]] -# ## The period in which to flush the aggregator. -# period = "30s" -# -# ## If true, the original metric will be dropped by the -# ## aggregator and will not get sent to the output plugins. -# drop_original = false -# -# ## If true, the histogram will be reset on flush instead -# ## of accumulating the results. -# reset = false -# -# ## Whether bucket values should be accumulated. If set to false, "gt" tag will be added. -# ## Defaults to true. -# cumulative = true -# -# ## Expiration interval for each histogram. The histogram will be expired if -# ## there are no changes in any buckets for this time interval. 0 == no expiration. -# # expiration_interval = "0m" -# -# ## If true, aggregated histogram are pushed to output only if it was updated since -# ## previous push. Defaults to false. -# # push_only_on_update = false -# -# ## Example config that aggregates all fields of the metric. -# # [[aggregators.histogram.config]] -# # ## Right borders of buckets (with +Inf implicitly added). -# # buckets = [0.0, 15.6, 34.5, 49.1, 71.5, 80.5, 94.5, 100.0] -# # ## The name of metric. -# # measurement_name = "cpu" -# -# ## Example config that aggregates only specific fields of the metric. -# # [[aggregators.histogram.config]] -# # ## Right borders of buckets (with +Inf implicitly added). -# # buckets = [0.0, 10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 70.0, 80.0, 90.0, 100.0] -# # ## The name of metric. -# # measurement_name = "diskio" -# # ## The concrete fields of metric -# # fields = ["io_time", "read_time", "write_time"] - - -# # Merge metrics into multifield metrics by series key -# [[aggregators.merge]] -# ## If true, the original metric will be dropped by the -# ## aggregator and will not get sent to the output plugins. -# drop_original = true - - -# # Keep the aggregate min/max of each metric passing through. -# [[aggregators.minmax]] -# ## General Aggregator Arguments: -# ## The period on which to flush & clear the aggregator. -# period = "30s" -# ## If true, the original metric will be dropped by the -# ## aggregator and will not get sent to the output plugins. -# drop_original = false - - -# # Keep the aggregate quantiles of each metric passing through. -# [[aggregators.quantile]] -# ## General Aggregator Arguments: -# ## The period on which to flush & clear the aggregator. -# period = "30s" -# -# ## If true, the original metric will be dropped by the -# ## aggregator and will not get sent to the output plugins. -# drop_original = false -# -# ## Quantiles to output in the range [0,1] -# # quantiles = [0.25, 0.5, 0.75] -# -# ## Type of aggregation algorithm -# ## Supported are: -# ## "t-digest" -- approximation using centroids, can cope with large number of samples -# ## "exact R7" -- exact computation also used by Excel or NumPy (Hyndman & Fan 1996 R7) -# ## "exact R8" -- exact computation (Hyndman & Fan 1996 R8) -# ## NOTE: Do not use "exact" algorithms with large number of samples -# ## to not impair performance or memory consumption! -# # algorithm = "t-digest" -# -# ## Compression for approximation (t-digest). The value needs to be -# ## greater or equal to 1.0. Smaller values will result in more -# ## performance but less accuracy. -# # compression = 100.0 - - -# # Aggregate metrics using a Starlark script -# [[aggregators.starlark]] -# ## The Starlark source can be set as a string in this configuration file, or -# ## by referencing a file containing the script. Only one source or script -# ## should be set at once. -# ## -# ## Source of the Starlark script. -# source = ''' -# state = {} -# -# def add(metric): -# state["last"] = metric -# -# def push(): -# return state.get("last") -# -# def reset(): -# state.clear() -# ''' -# -# ## File containing a Starlark script. -# # script = "/usr/local/bin/myscript.star" -# -# ## The constants of the Starlark script. -# # [aggregators.starlark.constants] -# # max_size = 10 -# # threshold = 0.75 -# # default_name = "Julia" -# # debug_mode = true - - -# # Count the occurrence of values in fields. -# [[aggregators.valuecounter]] -# ## General Aggregator Arguments: -# ## The period on which to flush & clear the aggregator. -# period = "30s" -# ## If true, the original metric will be dropped by the -# ## aggregator and will not get sent to the output plugins. -# drop_original = false -# ## The fields for which the values will be counted -# fields = [] - - -############################################################################### -# INPUT PLUGINS # -############################################################################### - - -# Read metrics about cpu usage [[inputs.cpu]] - ## Whether to report per-cpu stats or not - percpu = true - ## Whether to report total system cpu stats or not - totalcpu = true - ## If true, collect raw CPU time metrics - collect_cpu_time = false - ## If true, compute and report the sum of all non-idle CPU states - report_active = false - - -# Read metrics about disk usage by mount point + percpu = true + totalcpu = true + collect_cpu_time = false + report_active = false [[inputs.disk]] - ## By default stats will be gathered for all mount points. - ## Set mount_points will restrict the stats to only the specified mount points. - # mount_points = ["/"] - - ## Ignore mount points by filesystem type. - ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"] - - -# Read metrics about disk IO by device + ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"] [[inputs.diskio]] - ## By default, telegraf will gather stats for all devices including - ## disk partitions. - ## Setting devices will restrict the stats to the specified devices. - # devices = ["sda", "sdb", "vd*"] - ## Uncomment the following line if you need disk serial numbers. - # skip_serial_number = false - # - ## On systems which support it, device metadata can be added in the form of - ## tags. - ## Currently only Linux is supported via udev properties. You can view - ## available properties for a device by running: - ## 'udevadm info -q property -n /dev/sda' - ## Note: Most, but not all, udev properties can be accessed this way. Properties - ## that are currently inaccessible include DEVTYPE, DEVNAME, and DEVPATH. - # device_tags = ["ID_FS_TYPE", "ID_FS_USAGE"] - # - ## Using the same metadata source as device_tags, you can also customize the - ## name of the device via templates. - ## The 'name_templates' parameter is a list of templates to try and apply to - ## the device. The template may contain variables in the form of '$PROPERTY' or - ## '${PROPERTY}'. The first template which does not contain any variables not - ## present for the device is used as the device name tag. - ## The typical use case is for LVM volumes, to get the VG/LV name instead of - ## the near-meaningless DM-0 name. - # name_templates = ["$ID_FS_LABEL","$DM_VG_NAME/$DM_LV_NAME"] - - -# Get kernel statistics from /proc/stat [[inputs.kernel]] - # no configuration - - -# Read metrics about memory usage [[inputs.mem]] - # no configuration - - -# Get the number of processes and group them by status [[inputs.processes]] - # no configuration - - -# Read metrics about swap memory usage [[inputs.swap]] - # no configuration - - -# Read metrics about system load & uptime [[inputs.system]] - ## Uncomment to remove deprecated metrics. - # fielddrop = ["uptime_format"] - - -# # Gather ActiveMQ metrics -# [[inputs.activemq]] -# ## ActiveMQ WebConsole URL -# url = "http://127.0.0.1:8161" -# -# ## Credentials for basic HTTP authentication -# # username = "admin" -# # password = "admin" -# -# ## Required ActiveMQ webadmin root path -# # webadmin = "admin" -# -# ## Maximum time to receive response. -# # response_timeout = "5s" -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false - - -# # Read stats from aerospike server(s) -# [[inputs.aerospike]] -# ## Aerospike servers to connect to (with port) -# ## This plugin will query all namespaces the aerospike -# ## server has configured and get stats for them. -# servers = ["localhost:3000"] -# -# # username = "telegraf" -# # password = "pa$$word" -# -# ## Optional TLS Config -# # enable_tls = false -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# # tls_name = "tlsname" -# ## If false, skip chain & host verification -# # insecure_skip_verify = true -# -# # Feature Options -# # Add namespace variable to limit the namespaces executed on -# # Leave blank to do all -# # disable_query_namespaces = true # default false -# # namespaces = ["namespace1", "namespace2"] -# -# # Enable set level telemetry -# # query_sets = true # default: false -# # Add namespace set combinations to limit sets executed on -# # Leave blank to do all sets -# # sets = ["namespace1/set1", "namespace1/set2", "namespace3"] -# -# # Histograms -# # enable_ttl_histogram = true # default: false -# # enable_object_size_linear_histogram = true # default: false -# -# # by default, aerospike produces a 100 bucket histogram -# # this is not great for most graphing tools, this will allow -# # the ability to squash this to a smaller number of buckets -# # To have a balanced histogram, the number of buckets chosen -# # should divide evenly into 100. -# # num_histogram_buckets = 100 # default: 10 - - -# # Query statistics from AMD Graphics cards using rocm-smi binary -# [[inputs.amd_rocm_smi]] -# ## Optional: path to rocm-smi binary, defaults to $PATH via exec.LookPath -# # bin_path = "/opt/rocm/bin/rocm-smi" -# -# ## Optional: timeout for GPU polling -# # timeout = "5s" - - -# # Read Apache status information (mod_status) -# [[inputs.apache]] -# ## An array of URLs to gather from, must be directed at the machine -# ## readable version of the mod_status page including the auto query string. -# ## Default is "http://localhost/server-status?auto". -# urls = ["http://localhost/server-status?auto"] -# -# ## Credentials for basic HTTP authentication. -# # username = "myuser" -# # password = "mypassword" -# -# ## Maximum time to receive response. -# # response_timeout = "5s" -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false - - -# # Monitor APC UPSes connected to apcupsd -# [[inputs.apcupsd]] -# # A list of running apcupsd server to connect to. -# # If not provided will default to tcp://127.0.0.1:3551 -# servers = ["tcp://127.0.0.1:3551"] -# -# ## Timeout for dialing server. -# timeout = "5s" - - -# # Gather metrics from Apache Aurora schedulers -# [[inputs.aurora]] -# ## Schedulers are the base addresses of your Aurora Schedulers -# schedulers = ["http://127.0.0.1:8081"] -# -# ## Set of role types to collect metrics from. -# ## -# ## The scheduler roles are checked each interval by contacting the -# ## scheduler nodes; zookeeper is not contacted. -# # roles = ["leader", "follower"] -# -# ## Timeout is the max time for total network operations. -# # timeout = "5s" -# -# ## Username and password are sent using HTTP Basic Auth. -# # username = "username" -# # password = "pa$$word" -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false - - -# # Gather Azure Storage Queue metrics -# [[inputs.azure_storage_queue]] -# ## Required Azure Storage Account name -# account_name = "mystorageaccount" -# -# ## Required Azure Storage Account access key -# account_key = "storageaccountaccesskey" -# -# ## Set to false to disable peeking age of oldest message (executes faster) -# # peek_oldest_message_age = true - - -# # Read metrics of bcache from stats_total and dirty_data -# [[inputs.bcache]] -# ## Bcache sets path -# ## If not specified, then default is: -# bcachePath = "/sys/fs/bcache" -# -# ## By default, Telegraf gather stats for all bcache devices -# ## Setting devices will restrict the stats to the specified -# ## bcache devices. -# bcacheDevs = ["bcache0"] - - -# # Collects Beanstalkd server and tubes stats -# [[inputs.beanstalkd]] -# ## Server to collect data from -# server = "localhost:11300" -# -# ## List of tubes to gather stats about. -# ## If no tubes specified then data gathered for each tube on server reported by list-tubes command -# tubes = ["notifications"] - - -# # Read metrics exposed by Beat -# [[inputs.beat]] -# ## An URL from which to read Beat-formatted JSON -# ## Default is "http://127.0.0.1:5066". -# url = "http://127.0.0.1:5066" -# -# ## Enable collection of the listed stats -# ## An empty list means collect all. Available options are currently -# ## "beat", "libbeat", "system" and "filebeat". -# # include = ["beat", "libbeat", "filebeat"] -# -# ## HTTP method -# # method = "GET" -# -# ## Optional HTTP headers -# # headers = {"X-Special-Header" = "Special-Value"} -# -# ## Override HTTP "Host" header -# # host_header = "logstash.example.com" -# -# ## Timeout for HTTP requests -# # timeout = "5s" -# -# ## Optional HTTP Basic Auth credentials -# # username = "username" -# # password = "pa$$word" -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false - - -# # Read BIND nameserver XML statistics -# [[inputs.bind]] -# ## An array of BIND XML statistics URI to gather stats. -# ## Default is "http://localhost:8053/xml/v3". -# # urls = ["http://localhost:8053/xml/v3"] -# # gather_memory_contexts = false -# # gather_views = false -# -# ## Timeout for http requests made by bind nameserver -# # timeout = "4s" - - -# # Collect bond interface status, slaves statuses and failures count -# [[inputs.bond]] -# ## Sets 'proc' directory path -# ## If not specified, then default is /proc -# # host_proc = "/proc" -# -# ## Sets 'sys' directory path -# ## If not specified, then default is /sys -# # host_sys = "/sys" -# -# ## By default, telegraf gather stats for all bond interfaces -# ## Setting interfaces will restrict the stats to the specified -# ## bond interfaces. -# # bond_interfaces = ["bond0"] -# -# ## Tries to collect additional bond details from /sys/class/net/{bond} -# ## currently only useful for LACP (mode 4) bonds -# # collect_sys_details = false -# - - -# # Collect Kafka topics and consumers status from Burrow HTTP API. -# [[inputs.burrow]] -# ## Burrow API endpoints in format "schema://host:port". -# ## Default is "http://localhost:8000". -# servers = ["http://localhost:8000"] -# -# ## Override Burrow API prefix. -# ## Useful when Burrow is behind reverse-proxy. -# # api_prefix = "/v3/kafka" -# -# ## Maximum time to receive response. -# # response_timeout = "5s" -# -# ## Limit per-server concurrent connections. -# ## Useful in case of large number of topics or consumer groups. -# # concurrent_connections = 20 -# -# ## Filter clusters, default is no filtering. -# ## Values can be specified as glob patterns. -# # clusters_include = [] -# # clusters_exclude = [] -# -# ## Filter consumer groups, default is no filtering. -# ## Values can be specified as glob patterns. -# # groups_include = [] -# # groups_exclude = [] -# -# ## Filter topics, default is no filtering. -# ## Values can be specified as glob patterns. -# # topics_include = [] -# # topics_exclude = [] -# -# ## Credentials for basic HTTP authentication. -# # username = "" -# # password = "" -# -# ## Optional SSL config -# # ssl_ca = "/etc/telegraf/ca.pem" -# # ssl_cert = "/etc/telegraf/cert.pem" -# # ssl_key = "/etc/telegraf/key.pem" -# # insecure_skip_verify = false - - -# # Collects performance metrics from the MON, OSD, MDS and RGW nodes in a Ceph storage cluster. -# [[inputs.ceph]] -# ## This is the recommended interval to poll. Too frequent and you will lose -# ## data points due to timeouts during rebalancing and recovery -# interval = '1m' -# -# ## All configuration values are optional, defaults are shown below -# -# ## location of ceph binary -# ceph_binary = "/usr/bin/ceph" -# -# ## directory in which to look for socket files -# socket_dir = "/var/run/ceph" -# -# ## prefix of MON and OSD socket files, used to determine socket type -# mon_prefix = "ceph-mon" -# osd_prefix = "ceph-osd" -# mds_prefix = "ceph-mds" -# rgw_prefix = "ceph-client" -# -# ## suffix used to identify socket files -# socket_suffix = "asok" -# -# ## Ceph user to authenticate as, ceph will search for the corresponding keyring -# ## e.g. client.admin.keyring in /etc/ceph, or the explicit path defined in the -# ## client section of ceph.conf for example: -# ## -# ## [client.telegraf] -# ## keyring = /etc/ceph/client.telegraf.keyring -# ## -# ## Consult the ceph documentation for more detail on keyring generation. -# ceph_user = "client.admin" -# -# ## Ceph configuration to use to locate the cluster -# ceph_config = "/etc/ceph/ceph.conf" -# -# ## Whether to gather statistics via the admin socket -# gather_admin_socket_stats = true -# -# ## Whether to gather statistics via ceph commands, requires ceph_user and ceph_config -# ## to be specified -# gather_cluster_stats = false - - -# # Read specific statistics per cgroup -# [[inputs.cgroup]] -# ## Directories in which to look for files, globs are supported. -# ## Consider restricting paths to the set of cgroups you really -# ## want to monitor if you have a large number of cgroups, to avoid -# ## any cardinality issues. -# # paths = [ -# # "/sys/fs/cgroup/memory", -# # "/sys/fs/cgroup/memory/child1", -# # "/sys/fs/cgroup/memory/child2/*", -# # ] -# ## cgroup stat fields, as file names, globs are supported. -# ## these file names are appended to each path from above. -# # files = ["memory.*usage*", "memory.limit_in_bytes"] - - -# # Get standard chrony metrics, requires chronyc executable. -# [[inputs.chrony]] -# ## If true, chronyc tries to perform a DNS lookup for the time server. -# # dns_lookup = false - - -# # Pull Metric Statistics from Amazon CloudWatch -# [[inputs.cloudwatch]] -# ## Amazon Region -# region = "us-east-1" -# -# ## Amazon Credentials -# ## Credentials are loaded in the following order -# ## 1) Web identity provider credentials via STS if role_arn and web_identity_token_file are specified -# ## 2) Assumed credentials via STS if role_arn is specified -# ## 3) explicit credentials from 'access_key' and 'secret_key' -# ## 4) shared profile from 'profile' -# ## 5) environment variables -# ## 6) shared credentials file -# ## 7) EC2 Instance Profile -# # access_key = "" -# # secret_key = "" -# # token = "" -# # role_arn = "" -# # web_identity_token_file = "" -# # role_session_name = "" -# # profile = "" -# # shared_credential_file = "" -# -# ## Endpoint to make request against, the correct endpoint is automatically -# ## determined and this option should only be set if you wish to override the -# ## default. -# ## ex: endpoint_url = "http://localhost:8000" -# # endpoint_url = "" -# -# ## Set http_proxy (telegraf uses the system wide proxy settings if it's is not set) -# # http_proxy_url = "http://localhost:8888" -# -# # The minimum period for Cloudwatch metrics is 1 minute (60s). However not all -# # metrics are made available to the 1 minute period. Some are collected at -# # 3 minute, 5 minute, or larger intervals. See https://aws.amazon.com/cloudwatch/faqs/#monitoring. -# # Note that if a period is configured that is smaller than the minimum for a -# # particular metric, that metric will not be returned by the Cloudwatch API -# # and will not be collected by Telegraf. -# # -# ## Requested CloudWatch aggregation Period (required - must be a multiple of 60s) -# period = "5m" -# -# ## Collection Delay (required - must account for metrics availability via CloudWatch API) -# delay = "5m" -# -# ## Recommended: use metric 'interval' that is a multiple of 'period' to avoid -# ## gaps or overlap in pulled data -# interval = "5m" -# -# ## Recommended if "delay" and "period" are both within 3 hours of request time. Invalid values will be ignored. -# ## Recently Active feature will only poll for CloudWatch ListMetrics values that occurred within the last 3 Hours. -# ## If enabled, it will reduce total API usage of the CloudWatch ListMetrics API and require less memory to retain. -# ## Do not enable if "period" or "delay" is longer than 3 hours, as it will not return data more than 3 hours old. -# ## See https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html -# #recently_active = "PT3H" -# -# ## Configure the TTL for the internal cache of metrics. -# # cache_ttl = "1h" -# -# ## Metric Statistic Namespaces (required) -# namespaces = ["AWS/ELB"] -# # A single metric statistic namespace that will be appended to namespaces on startup -# # namespace = "AWS/ELB" -# -# ## Maximum requests per second. Note that the global default AWS rate limit is -# ## 50 reqs/sec, so if you define multiple namespaces, these should add up to a -# ## maximum of 50. -# ## See http://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_limits.html -# # ratelimit = 25 -# -# ## Timeout for http requests made by the cloudwatch client. -# # timeout = "5s" -# -# ## Namespace-wide statistic filters. These allow fewer queries to be made to -# ## cloudwatch. -# # statistic_include = [ "average", "sum", "minimum", "maximum", sample_count" ] -# # statistic_exclude = [] -# -# ## Metrics to Pull -# ## Defaults to all Metrics in Namespace if nothing is provided -# ## Refreshes Namespace available metrics every 1h -# #[[inputs.cloudwatch.metrics]] -# # names = ["Latency", "RequestCount"] -# # -# # ## Statistic filters for Metric. These allow for retrieving specific -# # ## statistics for an individual metric. -# # # statistic_include = [ "average", "sum", "minimum", "maximum", sample_count" ] -# # # statistic_exclude = [] -# # -# # ## Dimension filters for Metric. All dimensions defined for the metric names -# # ## must be specified in order to retrieve the metric statistics. -# # ## 'value' has wildcard / 'glob' matching support such as 'p-*'. -# # [[inputs.cloudwatch.metrics.dimensions]] -# # name = "LoadBalancerName" -# # value = "p-example" - - -# # Collects conntrack stats from the configured directories and files. -# [[inputs.conntrack]] -# ## The following defaults would work with multiple versions of conntrack. -# ## Note the nf_ and ip_ filename prefixes are mutually exclusive across -# ## kernel versions, as are the directory locations. -# -# ## Superset of filenames to look for within the conntrack dirs. -# ## Missing files will be ignored. -# files = ["ip_conntrack_count","ip_conntrack_max", -# "nf_conntrack_count","nf_conntrack_max"] -# -# ## Directories to search within for the conntrack files above. -# ## Missing directories will be ignored. -# dirs = ["/proc/sys/net/ipv4/netfilter","/proc/sys/net/netfilter"] - - -# # Gather health check statuses from services registered in Consul -# [[inputs.consul]] -# ## Consul server address -# # address = "localhost:8500" -# -# ## URI scheme for the Consul server, one of "http", "https" -# # scheme = "http" -# -# ## Metric version controls the mapping from Consul metrics into -# ## Telegraf metrics. -# ## -# ## example: metric_version = 1; deprecated in 1.15 -# ## metric_version = 2; recommended version -# # metric_version = 1 -# -# ## ACL token used in every request -# # token = "" -# -# ## HTTP Basic Authentication username and password. -# # username = "" -# # password = "" -# -# ## Data center to query the health checks from -# # datacenter = "" -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = true -# -# ## Consul checks' tag splitting -# # When tags are formatted like "key:value" with ":" as a delimiter then -# # they will be splitted and reported as proper key:value in Telegraf -# # tag_delimiter = ":" - - -# # Read metrics from the Consul Agent API -# [[inputs.consul_agent]] -# ## URL for the Consul agent -# # url = "http://127.0.0.1:8500" -# -# ## Use auth token for authorization. -# ## Only one of the options can be set. Leave empty to not use any token. -# # token_file = "/path/to/auth/token" -# ## OR -# # token = "a1234567-40c7-9048-7bae-378687048181" -# -# ## Set timeout (default 5 seconds) -# # timeout = "5s" -# -# ## Optional TLS Config -# # tls_ca = /path/to/cafile -# # tls_cert = /path/to/certfile -# # tls_key = /path/to/keyfile - - -# # Read per-node and per-bucket metrics from Couchbase -# [[inputs.couchbase]] -# ## specify servers via a url matching: -# ## [protocol://][:password]@address[:port] -# ## e.g. -# ## http://couchbase-0.example.com/ -# ## http://admin:secret@couchbase-0.example.com:8091/ -# ## -# ## If no servers are specified, then localhost is used as the host. -# ## If no protocol is specified, HTTP is used. -# ## If no port is specified, 8091 is used. -# servers = ["http://localhost:8091"] -# -# ## Filter bucket fields to include only here. -# # bucket_stats_included = ["quota_percent_used", "ops_per_sec", "disk_fetches", "item_count", "disk_used", "data_used", "mem_used"] -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification (defaults to false) -# ## If set to false, tls_cert and tls_key are required -# # insecure_skip_verify = false - - -# # Read CouchDB Stats from one or more servers -# [[inputs.couchdb]] -# ## Works with CouchDB stats endpoints out of the box -# ## Multiple Hosts from which to read CouchDB stats: -# hosts = ["http://localhost:8086/_stats"] -# -# ## Use HTTP Basic Authentication. -# # basic_username = "telegraf" -# # basic_password = "p@ssw0rd" - - -# # Fetch metrics from a CSGO SRCDS -# [[inputs.csgo]] -# ## Specify servers using the following format: -# ## servers = [ -# ## ["ip1:port1", "rcon_password1"], -# ## ["ip2:port2", "rcon_password2"], -# ## ] -# # -# ## If no servers are specified, no data will be collected -# servers = [] - - -# # Input plugin for DC/OS metrics -# [[inputs.dcos]] -# ## The DC/OS cluster URL. -# cluster_url = "https://dcos-ee-master-1" -# -# ## The ID of the service account. -# service_account_id = "telegraf" -# ## The private key file for the service account. -# service_account_private_key = "/etc/telegraf/telegraf-sa-key.pem" -# -# ## Path containing login token. If set, will read on every gather. -# # token_file = "/home/dcos/.dcos/token" -# -# ## In all filter options if both include and exclude are empty all items -# ## will be collected. Arrays may contain glob patterns. -# ## -# ## Node IDs to collect metrics from. If a node is excluded, no metrics will -# ## be collected for its containers or apps. -# # node_include = [] -# # node_exclude = [] -# ## Container IDs to collect container metrics from. -# # container_include = [] -# # container_exclude = [] -# ## Container IDs to collect app metrics from. -# # app_include = [] -# # app_exclude = [] -# -# ## Maximum concurrent connections to the cluster. -# # max_connections = 10 -# ## Maximum time to receive a response from cluster. -# # response_timeout = "20s" -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## If false, skip chain & host verification -# # insecure_skip_verify = true -# -# ## Recommended filtering to reduce series cardinality. -# # [inputs.dcos.tagdrop] -# # path = ["/var/lib/mesos/slave/slaves/*"] - - -# # Read metrics from one or many disque servers -# [[inputs.disque]] -# ## An array of URI to gather stats about. Specify an ip or hostname -# ## with optional port and password. -# ## ie disque://localhost, disque://10.10.3.33:18832, 10.0.0.1:10000, etc. -# ## If no servers are specified, then localhost is used as the host. -# servers = ["localhost"] - - -# # Provide a native collection for dmsetup based statistics for dm-cache -# [[inputs.dmcache]] -# ## Whether to report per-device stats or not -# per_device = true - - -# # Query given DNS server and gives statistics -# [[inputs.dns_query]] -# ## servers to query -# servers = ["8.8.8.8"] -# -# ## Network is the network protocol name. -# # network = "udp" -# -# ## Domains or subdomains to query. -# # domains = ["."] -# -# ## Query record type. -# ## Possible values: A, AAAA, CNAME, MX, NS, PTR, TXT, SOA, SPF, SRV. -# # record_type = "A" -# -# ## Dns server port. -# # port = 53 -# -# ## Query timeout in seconds. -# # timeout = 2 - - -# # Read metrics about docker containers -# [[inputs.docker]] -# ## Docker Endpoint -# ## To use TCP, set endpoint = "tcp://[ip]:[port]" -# ## To use environment variables (ie, docker-machine), set endpoint = "ENV" -# endpoint = "unix:///var/run/docker.sock" -# -# ## Set to true to collect Swarm metrics(desired_replicas, running_replicas) -# gather_services = false -# -# ## Set the source tag for the metrics to the container ID hostname, eg first 12 chars -# source_tag = false -# -# ## Containers to include and exclude. Globs accepted. -# ## Note that an empty array for both will include all containers -# container_name_include = [] -# container_name_exclude = [] -# -# ## Container states to include and exclude. Globs accepted. -# ## When empty only containers in the "running" state will be captured. -# ## example: container_state_include = ["created", "restarting", "running", "removing", "paused", "exited", "dead"] -# ## example: container_state_exclude = ["created", "restarting", "running", "removing", "paused", "exited", "dead"] -# # container_state_include = [] -# # container_state_exclude = [] -# -# ## Timeout for docker list, info, and stats commands -# timeout = "5s" -# -# ## Specifies for which classes a per-device metric should be issued -# ## Possible values are 'cpu' (cpu0, cpu1, ...), 'blkio' (8:0, 8:1, ...) and 'network' (eth0, eth1, ...) -# ## Please note that this setting has no effect if 'perdevice' is set to 'true' -# # perdevice_include = ["cpu"] -# -# ## Specifies for which classes a total metric should be issued. Total is an aggregated of the 'perdevice' values. -# ## Possible values are 'cpu', 'blkio' and 'network' -# ## Total 'cpu' is reported directly by Docker daemon, and 'network' and 'blkio' totals are aggregated by this plugin. -# ## Please note that this setting has no effect if 'total' is set to 'false' -# # total_include = ["cpu", "blkio", "network"] -# -# ## Which environment variables should we use as a tag -# ##tag_env = ["JAVA_HOME", "HEAP_SIZE"] -# -# ## docker labels to include and exclude as tags. Globs accepted. -# ## Note that an empty array for both will include all labels as tags -# docker_label_include = [] -# docker_label_exclude = [] -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false - - -# # Read statistics from one or many dovecot servers -# [[inputs.dovecot]] -# ## specify dovecot servers via an address:port list -# ## e.g. -# ## localhost:24242 -# ## -# ## If no servers are specified, then localhost is used as the host. -# servers = ["localhost:24242"] -# -# ## Type is one of "user", "domain", "ip", or "global" -# type = "global" -# -# ## Wildcard matches like "*.com". An empty string "" is same as "*" -# ## If type = "ip" filters should be -# filters = [""] - - -# # Reads metrics from DPDK applications using v2 telemetry interface. -# [[inputs.dpdk]] -# ## Path to DPDK telemetry socket. This shall point to v2 version of DPDK telemetry interface. -# # socket_path = "/var/run/dpdk/rte/dpdk_telemetry.v2" -# -# ## Duration that defines how long the connected socket client will wait for a response before terminating connection. -# ## This includes both writing to and reading from socket. Since it's local socket access -# ## to a fast packet processing application, the timeout should be sufficient for most users. -# ## Setting the value to 0 disables the timeout (not recommended) -# # socket_access_timeout = "200ms" -# -# ## Enables telemetry data collection for selected device types. -# ## Adding "ethdev" enables collection of telemetry from DPDK NICs (stats, xstats, link_status). -# ## Adding "rawdev" enables collection of telemetry from DPDK Raw Devices (xstats). -# # device_types = ["ethdev"] -# -# ## List of custom, application-specific telemetry commands to query -# ## The list of available commands depend on the application deployed. Applications can register their own commands -# ## via telemetry library API http://doc.dpdk.org/guides/prog_guide/telemetry_lib.html#registering-commands -# ## For e.g. L3 Forwarding with Power Management Sample Application this could be: -# ## additional_commands = ["/l3fwd-power/stats"] -# # additional_commands = [] -# -# ## Allows turning off collecting data for individual "ethdev" commands. -# ## Remove "/ethdev/link_status" from list to start getting link status metrics. -# [inputs.dpdk.ethdev] -# exclude_commands = ["/ethdev/link_status"] -# -# ## When running multiple instances of the plugin it's recommended to add a unique tag to each instance to identify -# ## metrics exposed by an instance of DPDK application. This is useful when multiple DPDK apps run on a single host. -# ## [inputs.dpdk.tags] -# ## dpdk_instance = "my-fwd-app" - - -# # Read metrics about docker containers from Fargate/ECS v2, v3 meta endpoints. -# [[inputs.ecs]] -# ## ECS metadata url. -# ## Metadata v2 API is used if set explicitly. Otherwise, -# ## v3 metadata endpoint API is used if available. -# # endpoint_url = "" -# -# ## Containers to include and exclude. Globs accepted. -# ## Note that an empty array for both will include all containers -# # container_name_include = [] -# # container_name_exclude = [] -# -# ## Container states to include and exclude. Globs accepted. -# ## When empty only containers in the "RUNNING" state will be captured. -# ## Possible values are "NONE", "PULLED", "CREATED", "RUNNING", -# ## "RESOURCES_PROVISIONED", "STOPPED". -# # container_status_include = [] -# # container_status_exclude = [] -# -# ## ecs labels to include and exclude as tags. Globs accepted. -# ## Note that an empty array for both will include all labels as tags -# ecs_label_include = [ "com.amazonaws.ecs.*" ] -# ecs_label_exclude = [] -# -# ## Timeout for queries. -# # timeout = "5s" - - -# # Read stats from one or more Elasticsearch servers or clusters -# [[inputs.elasticsearch]] -# ## specify a list of one or more Elasticsearch servers -# # you can add username and password to your url to use basic authentication: -# # servers = ["http://user:pass@localhost:9200"] -# servers = ["http://localhost:9200"] -# -# ## Timeout for HTTP requests to the elastic search server(s) -# http_timeout = "5s" -# -# ## When local is true (the default), the node will read only its own stats. -# ## Set local to false when you want to read the node stats from all nodes -# ## of the cluster. -# local = true -# -# ## Set cluster_health to true when you want to also obtain cluster health stats -# cluster_health = false -# -# ## Adjust cluster_health_level when you want to also obtain detailed health stats -# ## The options are -# ## - indices (default) -# ## - cluster -# # cluster_health_level = "indices" -# -# ## Set cluster_stats to true when you want to also obtain cluster stats. -# cluster_stats = false -# -# ## Only gather cluster_stats from the master node. To work this require local = true -# cluster_stats_only_from_master = true -# -# ## Indices to collect; can be one or more indices names or _all -# ## Use of wildcards is allowed. Use a wildcard at the end to retrieve index names that end with a changing value, like a date. -# indices_include = ["_all"] -# -# ## One of "shards", "cluster", "indices" -# indices_level = "shards" -# -# ## node_stats is a list of sub-stats that you want to have gathered. Valid options -# ## are "indices", "os", "process", "jvm", "thread_pool", "fs", "transport", "http", -# ## "breaker". Per default, all stats are gathered. -# # node_stats = ["jvm", "http"] -# -# ## HTTP Basic Authentication username and password. -# # username = "" -# # password = "" -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false -# -# ## Sets the number of most recent indices to return for indices that are configured with a date-stamped suffix. -# ## Each 'indices_include' entry ending with a wildcard (*) or glob matching pattern will group together all indices that match it, and sort them -# ## by the date or number after the wildcard. Metrics then are gathered for only the 'num_most_recent_indices' amount of most recent indices. -# # num_most_recent_indices = 0 - - -# # Derive metrics from aggregating Elasticsearch query results -# [[inputs.elasticsearch_query]] -# ## The full HTTP endpoint URL for your Elasticsearch instance -# ## Multiple urls can be specified as part of the same cluster, -# ## this means that only ONE of the urls will be written to each interval. -# urls = [ "http://node1.es.example.com:9200" ] # required. -# -# ## Elasticsearch client timeout, defaults to "5s". -# # timeout = "5s" -# -# ## Set to true to ask Elasticsearch a list of all cluster nodes, -# ## thus it is not necessary to list all nodes in the urls config option -# # enable_sniffer = false -# -# ## Set the interval to check if the Elasticsearch nodes are available -# ## This option is only used if enable_sniffer is also set (0s to disable it) -# # health_check_interval = "10s" -# -# ## HTTP basic authentication details (eg. when using x-pack) -# # username = "telegraf" -# # password = "mypassword" -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false -# -# [[inputs.elasticsearch_query.aggregation]] -# ## measurement name for the results of the aggregation query -# measurement_name = "measurement" -# -# ## Elasticsearch indexes to query (accept wildcards). -# index = "index-*" -# -# ## The date/time field in the Elasticsearch index (mandatory). -# date_field = "@timestamp" -# -# ## If the field used for the date/time field in Elasticsearch is also using -# ## a custom date/time format it may be required to provide the format to -# ## correctly parse the field. -# ## -# ## If using one of the built in elasticsearch formats this is not required. -# # date_field_custom_format = "" -# -# ## Time window to query (eg. "1m" to query documents from last minute). -# ## Normally should be set to same as collection interval -# query_period = "1m" -# -# ## Lucene query to filter results -# # filter_query = "*" -# -# ## Fields to aggregate values (must be numeric fields) -# # metric_fields = ["metric"] -# -# ## Aggregation function to use on the metric fields -# ## Must be set if 'metric_fields' is set -# ## Valid values are: avg, sum, min, max, sum -# # metric_function = "avg" -# -# ## Fields to be used as tags -# ## Must be text, non-analyzed fields. Metric aggregations are performed per tag -# # tags = ["field.keyword", "field2.keyword"] -# -# ## Set to true to not ignore documents when the tag(s) above are missing -# # include_missing_tag = false -# -# ## String value of the tag when the tag does not exist -# ## Used when include_missing_tag is true -# # missing_tag_value = "null" - - -# # Returns ethtool statistics for given interfaces -# [[inputs.ethtool]] -# ## List of interfaces to pull metrics for -# # interface_include = ["eth0"] -# -# ## List of interfaces to ignore when pulling metrics. -# # interface_exclude = ["eth1"] -# -# ## Some drivers declare statistics with extra whitespace, different spacing, -# ## and mix cases. This list, when enabled, can be used to clean the keys. -# ## Here are the current possible normalizations: -# ## * snakecase: converts fooBarBaz to foo_bar_baz -# ## * trim: removes leading and trailing whitespace -# ## * lower: changes all capitalized letters to lowercase -# ## * underscore: replaces spaces with underscores -# # normalize_keys = ["snakecase", "trim", "lower", "underscore"] - - -# # Read metrics from one or more commands that can output to stdout -# [[inputs.exec]] -# ## Commands array -# commands = [ -# "/tmp/test.sh", -# "/usr/bin/mycollector --foo=bar", -# "/tmp/collect_*.sh" -# ] -# -# ## Timeout for each command to complete. -# timeout = "5s" -# -# ## measurement name suffix (for separating different commands) -# name_suffix = "_mycollector" -# -# ## Data format to consume. -# ## Each data format has its own unique set of configuration options, read -# ## more about them here: -# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md -# data_format = "influx" - - -# # Read metrics from fail2ban. -# [[inputs.fail2ban]] -# ## Use sudo to run fail2ban-client -# use_sudo = false - - -# # Read devices value(s) from a Fibaro controller -# [[inputs.fibaro]] -# ## Required Fibaro controller address/hostname. -# ## Note: at the time of writing this plugin, Fibaro only implemented http - no https available -# url = "http://:80" -# -# ## Required credentials to access the API (http://) -# username = "" -# password = "" -# -# ## Amount of time allowed to complete the HTTP request -# # timeout = "5s" - - -# # Parse a complete file each interval -# [[inputs.file]] -# ## Files to parse each interval. Accept standard unix glob matching rules, -# ## as well as ** to match recursive files and directories. -# files = ["/tmp/metrics.out"] -# -# -# ## Name a tag containing the name of the file the data was parsed from. Leave empty -# ## to disable. Cautious when file name variation is high, this can increase the cardinality -# ## significantly. Read more about cardinality here: -# ## https://docs.influxdata.com/influxdb/cloud/reference/glossary/#series-cardinality -# # file_tag = "" -# # -# -# ## Character encoding to use when interpreting the file contents. Invalid -# ## characters are replaced using the unicode replacement character. When set -# ## to the empty string the data is not decoded to text. -# ## ex: character_encoding = "utf-8" -# ## character_encoding = "utf-16le" -# ## character_encoding = "utf-16be" -# ## character_encoding = "" -# # character_encoding = "" -# -# ## The dataformat to be read from files -# ## Each data format has its own unique set of configuration options, read -# ## more about them here: -# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md -# data_format = "influx" - - -# # Count files in a directory -# [[inputs.filecount]] -# ## Directories to gather stats about. -# ## This accept standard unit glob matching rules, but with the addition of -# ## ** as a "super asterisk". ie: -# ## /var/log/** -> recursively find all directories in /var/log and count files in each directories -# ## /var/log/*/* -> find all directories with a parent dir in /var/log and count files in each directories -# ## /var/log -> count all files in /var/log and all of its subdirectories -# directories = ["/var/cache/apt/archives"] -# -# ## Only count files that match the name pattern. Defaults to "*". -# name = "*.deb" -# -# ## Count files in subdirectories. Defaults to true. -# recursive = false -# -# ## Only count regular files. Defaults to true. -# regular_only = true -# -# ## Follow all symlinks while walking the directory tree. Defaults to false. -# follow_symlinks = false -# -# ## Only count files that are at least this size. If size is -# ## a negative number, only count files that are smaller than the -# ## absolute value of size. Acceptable units are B, KiB, MiB, KB, ... -# ## Without quotes and units, interpreted as size in bytes. -# size = "0B" -# -# ## Only count files that have not been touched for at least this -# ## duration. If mtime is negative, only count files that have been -# ## touched in this duration. Defaults to "0s". -# mtime = "0s" - - -# # Read stats about given file(s) -# [[inputs.filestat]] -# ## Files to gather stats about. -# ## These accept standard unix glob matching rules, but with the addition of -# ## ** as a "super asterisk". ie: -# ## "/var/log/**.log" -> recursively find all .log files in /var/log -# ## "/var/log/*/*.log" -> find all .log files with a parent dir in /var/log -# ## "/var/log/apache.log" -> just tail the apache log file -# ## -# ## See https://github.com/gobwas/glob for more examples -# ## -# files = ["/var/log/**.log"] -# -# ## If true, read the entire file and calculate an md5 checksum. -# md5 = false - - -# # Read real time temps from fireboard.io servers -# [[inputs.fireboard]] -# ## Specify auth token for your account -# auth_token = "invalidAuthToken" -# ## You can override the fireboard server URL if necessary -# # url = https://fireboard.io/api/v1/devices.json -# ## You can set a different http_timeout if you need to -# ## You should set a string using an number and time indicator -# ## for example "12s" for 12 seconds. -# # http_timeout = "4s" - - -# # Read metrics exposed by fluentd in_monitor plugin -# [[inputs.fluentd]] -# ## This plugin reads information exposed by fluentd (using /api/plugins.json endpoint). -# ## -# ## Endpoint: -# ## - only one URI is allowed -# ## - https is not supported -# endpoint = "http://localhost:24220/api/plugins.json" -# -# ## Define which plugins have to be excluded (based on "type" field - e.g. monitor_agent) -# exclude = [ -# "monitor_agent", -# "dummy", -# ] - - -# # Gather repository information from GitHub hosted repositories. -# [[inputs.github]] -# ## List of repositories to monitor. -# repositories = [ -# "influxdata/telegraf", -# "influxdata/influxdb" -# ] -# -# ## Github API access token. Unauthenticated requests are limited to 60 per hour. -# # access_token = "" -# -# ## Github API enterprise url. Github Enterprise accounts must specify their base url. -# # enterprise_base_url = "" -# -# ## Timeout for HTTP requests. -# # http_timeout = "5s" -# -# ## List of additional fields to query. -# ## NOTE: Getting those fields might involve issuing additional API-calls, so please -# ## make sure you do not exceed the rate-limit of GitHub. -# ## -# ## Available fields are: -# ## - pull-requests -- number of open and closed pull requests (2 API-calls per repository) -# # additional_fields = [] - - -# # Read flattened metrics from one or more GrayLog HTTP endpoints -# [[inputs.graylog]] -# ## API endpoint, currently supported API: -# ## -# ## - multiple (e.g. http://:9000/api/system/metrics/multiple) -# ## - namespace (e.g. http://:9000/api/system/metrics/namespace/{namespace}) -# ## -# ## For namespace endpoint, the metrics array will be ignored for that call. -# ## Endpoint can contain namespace and multiple type calls. -# ## -# ## Please check http://[graylog-server-ip]:9000/api/api-browser for full list -# ## of endpoints -# servers = [ -# "http://[graylog-server-ip]:9000/api/system/metrics/multiple", -# ] -# -# ## Set timeout (default 5 seconds) -# # timeout = "5s" -# -# ## Metrics list -# ## List of metrics can be found on Graylog webservice documentation. -# ## Or by hitting the web service api at: -# ## http://[graylog-host]:9000/api/system/metrics -# metrics = [ -# "jvm.cl.loaded", -# "jvm.memory.pools.Metaspace.committed" -# ] -# -# ## Username and password -# username = "" -# password = "" -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false - - -# # Read metrics of haproxy, via socket or csv stats page -# [[inputs.haproxy]] -# ## An array of address to gather stats about. Specify an ip on hostname -# ## with optional port. ie localhost, 10.10.3.33:1936, etc. -# ## Make sure you specify the complete path to the stats endpoint -# ## including the protocol, ie http://10.10.3.33:1936/haproxy?stats -# -# ## If no servers are specified, then default to 127.0.0.1:1936/haproxy?stats -# servers = ["http://myhaproxy.com:1936/haproxy?stats"] -# -# ## Credentials for basic HTTP authentication -# # username = "admin" -# # password = "admin" -# -# ## You can also use local socket with standard wildcard globbing. -# ## Server address not starting with 'http' will be treated as a possible -# ## socket, so both examples below are valid. -# # servers = ["socket:/run/haproxy/admin.sock", "/run/haproxy/*.sock"] -# -# ## By default, some of the fields are renamed from what haproxy calls them. -# ## Setting this option to true results in the plugin keeping the original -# ## field names. -# # keep_field_names = false -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false - - -# # Monitor disks' temperatures using hddtemp -# [[inputs.hddtemp]] -# ## By default, telegraf gathers temps data from all disks detected by the -# ## hddtemp. -# ## -# ## Only collect temps from the selected disks. -# ## -# ## A * as the device name will return the temperature values of all disks. -# ## -# # address = "127.0.0.1:7634" -# # devices = ["sda", "*"] - - -# # Read formatted metrics from one or more HTTP endpoints -# [[inputs.http]] -# ## One or more URLs from which to read formatted metrics -# urls = [ -# "http://localhost/metrics" -# ] -# -# ## HTTP method -# # method = "GET" -# -# ## Optional HTTP headers -# # headers = {"X-Special-Header" = "Special-Value"} -# -# ## Optional file with Bearer token -# ## file content is added as an Authorization header -# # bearer_token = "/path/to/file" -# -# ## Optional HTTP Basic Auth Credentials -# # username = "username" -# # password = "pa$$word" -# -# ## HTTP entity-body to send with POST/PUT requests. -# # body = "" -# -# ## HTTP Content-Encoding for write request body, can be set to "gzip" to -# ## compress body or "identity" to apply no encoding. -# # content_encoding = "identity" -# -# ## HTTP Proxy support -# # http_proxy_url = "" -# -# ## OAuth2 Client Credentials Grant -# # client_id = "clientid" -# # client_secret = "secret" -# # token_url = "https://indentityprovider/oauth2/v1/token" -# # scopes = ["urn:opc:idm:__myscopes__"] -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false -# -# ## Optional Cookie authentication -# # cookie_auth_url = "https://localhost/authMe" -# # cookie_auth_method = "POST" -# # cookie_auth_username = "username" -# # cookie_auth_password = "pa$$word" -# # cookie_auth_headers = '{"Content-Type": "application/json", "X-MY-HEADER":"hello"}' -# # cookie_auth_body = '{"username": "user", "password": "pa$$word", "authenticate": "me"}' -# ## cookie_auth_renewal not set or set to "0" will auth once and never renew the cookie -# # cookie_auth_renewal = "5m" -# -# ## Amount of time allowed to complete the HTTP request -# # timeout = "5s" -# -# ## List of success status codes -# # success_status_codes = [200] -# -# ## Data format to consume. -# ## Each data format has its own unique set of configuration options, read -# ## more about them here: -# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md -# # data_format = "influx" - - -# # HTTP/HTTPS request given an address a method and a timeout -# [[inputs.http_response]] -# ## List of urls to query. -# # urls = ["http://localhost"] -# -# ## Set http_proxy (telegraf uses the system wide proxy settings if it's is not set) -# # http_proxy = "http://localhost:8888" -# -# ## Set response_timeout (default 5 seconds) -# # response_timeout = "5s" -# -# ## HTTP Request Method -# # method = "GET" -# -# ## Whether to follow redirects from the server (defaults to false) -# # follow_redirects = false -# -# ## Optional file with Bearer token -# ## file content is added as an Authorization header -# # bearer_token = "/path/to/file" -# -# ## Optional HTTP Basic Auth Credentials -# # username = "username" -# # password = "pa$$word" -# -# ## Optional HTTP Request Body -# # body = ''' -# # {'fake':'data'} -# # ''' -# -# ## Optional name of the field that will contain the body of the response. -# ## By default it is set to an empty String indicating that the body's content won't be added -# # response_body_field = '' -# -# ## Maximum allowed HTTP response body size in bytes. -# ## 0 means to use the default of 32MiB. -# ## If the response body size exceeds this limit a "body_read_error" will be raised -# # response_body_max_size = "32MiB" -# -# ## Optional substring or regex match in body of the response (case sensitive) -# # response_string_match = "\"service_status\": \"up\"" -# # response_string_match = "ok" -# # response_string_match = "\".*_status\".?:.?\"up\"" -# -# ## Expected response status code. -# ## The status code of the response is compared to this value. If they match, the field -# ## "response_status_code_match" will be 1, otherwise it will be 0. If the -# ## expected status code is 0, the check is disabled and the field won't be added. -# # response_status_code = 0 -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false -# -# ## HTTP Request Headers (all values must be strings) -# # [inputs.http_response.headers] -# # Host = "github.com" -# -# ## Optional setting to map response http headers into tags -# ## If the http header is not present on the request, no corresponding tag will be added -# ## If multiple instances of the http header are present, only the first value will be used -# # http_header_tags = {"HTTP_HEADER" = "TAG_NAME"} -# -# ## Interface to use when dialing an address -# # interface = "eth0" - - -# # Read flattened metrics from one or more JSON HTTP endpoints -# [[inputs.httpjson]] -# ## DEPRECATED: The 'httpjson' plugin is deprecated in version 1.6.0, use 'inputs.http' instead. -# ## NOTE This plugin only reads numerical measurements, strings and booleans -# ## will be ignored. -# -# ## URL of each server in the service's cluster -# servers = [ -# "http://localhost:9999/stats/", -# "http://localhost:9998/stats/", -# ] -# ## Set response_timeout (default 5 seconds) -# response_timeout = "5s" -# -# ## HTTP method to use: GET or POST (case-sensitive) -# method = "GET" -# -# ## List of tag names to extract from top-level of JSON server response -# # tag_keys = [ -# # "my_tag_1", -# # "my_tag_2" -# # ] -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false -# -# ## HTTP parameters (all values must be strings). For "GET" requests, data -# ## will be included in the query. For "POST" requests, data will be included -# ## in the request body as "x-www-form-urlencoded". -# # [inputs.httpjson.parameters] -# # event_type = "cpu_spike" -# # threshold = "0.75" -# -# ## HTTP Headers (all values must be strings) -# # [inputs.httpjson.headers] -# # X-Auth-Token = "my-xauth-token" -# # apiVersion = "v1" - - -# # Gathers huge pages measurements. -# [[inputs.hugepages]] -# ## Supported huge page types: -# ## - "root" - based on root huge page control directory: /sys/kernel/mm/hugepages -# ## - "per_node" - based on per NUMA node directories: /sys/devices/system/node/node[0-9]*/hugepages -# ## - "meminfo" - based on /proc/meminfo file -# # types = ["root", "per_node"] - - -# # Gather Icinga2 status -# [[inputs.icinga2]] -# ## Required Icinga2 server address -# # server = "https://localhost:5665" -# -# ## Required Icinga2 object type ("services" or "hosts") -# # object_type = "services" -# -# ## Credentials for basic HTTP authentication -# # username = "admin" -# # password = "admin" -# -# ## Maximum time to receive response. -# # response_timeout = "5s" -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = true - - -# # Gets counters from all InfiniBand cards and ports installed -# [[inputs.infiniband]] -# # no configuration - - -# # Read InfluxDB-formatted JSON metrics from one or more HTTP endpoints -# [[inputs.influxdb]] -# ## Works with InfluxDB debug endpoints out of the box, -# ## but other services can use this format too. -# ## See the influxdb plugin's README for more details. -# -# ## Multiple URLs from which to read InfluxDB-formatted JSON -# ## Default is "http://localhost:8086/debug/vars". -# urls = [ -# "http://localhost:8086/debug/vars" -# ] -# -# ## Username and password to send using HTTP Basic Authentication. -# # username = "" -# # password = "" -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false -# -# ## http request & header timeout -# timeout = "5s" - - -# # Intel PowerStat plugin enables monitoring of platform metrics (power, TDP) and Core metrics like temperature, power and utilization. -# [[inputs.intel_powerstat]] -# ## All global metrics are always collected by Intel PowerStat plugin. -# ## User can choose which per-CPU metrics are monitored by the plugin in cpu_metrics array. -# ## Empty array means no per-CPU specific metrics will be collected by the plugin - in this case only platform level -# ## telemetry will be exposed by Intel PowerStat plugin. -# ## Supported options: -# ## "cpu_frequency", "cpu_busy_frequency", "cpu_temperature", "cpu_c1_state_residency", "cpu_c6_state_residency", "cpu_busy_cycles" -# # cpu_metrics = [] - - -# # Collect statistics about itself -# [[inputs.internal]] -# ## If true, collect telegraf memory stats. -# # collect_memstats = true - - -# # Monitors internet speed using speedtest.net service -# [[inputs.internet_speed]] -# ## Sets if runs file download test -# # enable_file_download = false -# -# ## Caches the closest server location -# # cache = false - - -# # This plugin gathers interrupts data from /proc/interrupts and /proc/softirqs. -# [[inputs.interrupts]] -# ## When set to true, cpu metrics are tagged with the cpu. Otherwise cpu is -# ## stored as a field. -# ## -# ## The default is false for backwards compatibility, and will be changed to -# ## true in a future version. It is recommended to set to true on new -# ## deployments. -# # cpu_as_tag = false -# -# ## To filter which IRQs to collect, make use of tagpass / tagdrop, i.e. -# # [inputs.interrupts.tagdrop] -# # irq = [ "NET_RX", "TASKLET" ] - - -# # Read metrics from the bare metal servers via IPMI -# [[inputs.ipmi_sensor]] -# ## optionally specify the path to the ipmitool executable -# # path = "/usr/bin/ipmitool" -# ## -# ## Setting 'use_sudo' to true will make use of sudo to run ipmitool. -# ## Sudo must be configured to allow the telegraf user to run ipmitool -# ## without a password. -# # use_sudo = false -# ## -# ## optionally force session privilege level. Can be CALLBACK, USER, OPERATOR, ADMINISTRATOR -# # privilege = "ADMINISTRATOR" -# ## -# ## optionally specify one or more servers via a url matching -# ## [username[:password]@][protocol[(address)]] -# ## e.g. -# ## root:passwd@lan(127.0.0.1) -# ## -# ## if no servers are specified, local machine sensor stats will be queried -# ## -# # servers = ["USERID:PASSW0RD@lan(192.168.1.1)"] -# -# ## Recommended: use metric 'interval' that is a multiple of 'timeout' to avoid -# ## gaps or overlap in pulled data -# interval = "30s" -# -# ## Timeout for the ipmitool command to complete -# timeout = "20s" -# -# ## Schema Version: (Optional, defaults to version 1) -# metric_version = 2 -# -# ## Optionally provide the hex key for the IMPI connection. -# # hex_key = "" -# -# ## If ipmitool should use a cache -# ## for me ipmitool runs about 2 to 10 times faster with cache enabled on HP G10 servers (when using ubuntu20.04) -# ## the cache file may not work well for you if some sensors come up late -# # use_cache = false -# -# ## Path to the ipmitools cache file (defaults to OS temp dir) -# ## The provided path must exist and must be writable -# # cache_path = "" - - -# # Gather packets and bytes counters from Linux ipsets -# [[inputs.ipset]] -# ## By default, we only show sets which have already matched at least 1 packet. -# ## set include_unmatched_sets = true to gather them all. -# include_unmatched_sets = false -# ## Adjust your sudo settings appropriately if using this option ("sudo ipset save") -# use_sudo = false -# ## The default timeout of 1s for ipset execution can be overridden here: -# # timeout = "1s" - - -# # Gather packets and bytes throughput from iptables -# [[inputs.iptables]] -# ## iptables require root access on most systems. -# ## Setting 'use_sudo' to true will make use of sudo to run iptables. -# ## Users must configure sudo to allow telegraf user to run iptables with no password. -# ## iptables can be restricted to only list command "iptables -nvL". -# use_sudo = false -# ## Setting 'use_lock' to true runs iptables with the "-w" option. -# ## Adjust your sudo settings appropriately if using this option ("iptables -w 5 -nvl") -# use_lock = false -# ## Define an alternate executable, such as "ip6tables". Default is "iptables". -# # binary = "ip6tables" -# ## defines the table to monitor: -# table = "filter" -# ## defines the chains to monitor. -# ## NOTE: iptables rules without a comment will not be monitored. -# ## Read the plugin documentation for more information. -# chains = [ "INPUT" ] - - -# # Collect virtual and real server stats from Linux IPVS -# [[inputs.ipvs]] -# # no configuration - - -# # Read jobs and cluster metrics from Jenkins instances -# [[inputs.jenkins]] -# ## The Jenkins URL in the format "schema://host:port" -# url = "http://my-jenkins-instance:8080" -# # username = "admin" -# # password = "admin" -# -# ## Set response_timeout -# response_timeout = "5s" -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use SSL but skip chain & host verification -# # insecure_skip_verify = false -# -# ## Optional Max Job Build Age filter -# ## Default 1 hour, ignore builds older than max_build_age -# # max_build_age = "1h" -# -# ## Optional Sub Job Depth filter -# ## Jenkins can have unlimited layer of sub jobs -# ## This config will limit the layers of pulling, default value 0 means -# ## unlimited pulling until no more sub jobs -# # max_subjob_depth = 0 -# -# ## Optional Sub Job Per Layer -# ## In workflow-multibranch-plugin, each branch will be created as a sub job. -# ## This config will limit to call only the lasted branches in each layer, -# ## empty will use default value 10 -# # max_subjob_per_layer = 10 -# -# ## Jobs to include or exclude from gathering -# ## When using both lists, job_exclude has priority. -# ## Wildcards are supported: [ "jobA/*", "jobB/subjob1/*"] -# # job_include = [ "*" ] -# # job_exclude = [ ] -# -# ## Nodes to include or exclude from gathering -# ## When using both lists, node_exclude has priority. -# # node_include = [ "*" ] -# # node_exclude = [ ] -# -# ## Worker pool for jenkins plugin only -# ## Empty this field will use default value 5 -# # max_connections = 5 - - -# # Read JMX metrics through Jolokia -# [[inputs.jolokia]] -# ## DEPRECATED: The 'jolokia' plugin is deprecated in version 1.5.0, use 'inputs.jolokia2' instead. -# # DEPRECATED: the jolokia plugin has been deprecated in favor of the -# # jolokia2 plugin -# # see https://github.com/influxdata/telegraf/tree/master/plugins/inputs/jolokia2 -# -# ## This is the context root used to compose the jolokia url -# ## NOTE that Jolokia requires a trailing slash at the end of the context root -# ## NOTE that your jolokia security policy must allow for POST requests. -# context = "/jolokia/" -# -# ## This specifies the mode used -# # mode = "proxy" -# # -# ## When in proxy mode this section is used to specify further -# ## proxy address configurations. -# ## Remember to change host address to fit your environment. -# # [inputs.jolokia.proxy] -# # host = "127.0.0.1" -# # port = "8080" -# -# ## Optional http timeouts -# ## -# ## response_header_timeout, if non-zero, specifies the amount of time to wait -# ## for a server's response headers after fully writing the request. -# # response_header_timeout = "3s" -# ## -# ## client_timeout specifies a time limit for requests made by this client. -# ## Includes connection time, any redirects, and reading the response body. -# # client_timeout = "4s" -# -# ## Attribute delimiter -# ## -# ## When multiple attributes are returned for a single -# ## [inputs.jolokia.metrics], the field name is a concatenation of the metric -# ## name, and the attribute name, separated by the given delimiter. -# # delimiter = "_" -# -# ## List of servers exposing jolokia read service -# [[inputs.jolokia.servers]] -# name = "as-server-01" -# host = "127.0.0.1" -# port = "8080" -# # username = "myuser" -# # password = "mypassword" -# -# ## List of metrics collected on above servers -# ## Each metric consists in a name, a jmx path and either -# ## a pass or drop slice attribute. -# ## This collect all heap memory usage metrics. -# [[inputs.jolokia.metrics]] -# name = "heap_memory_usage" -# mbean = "java.lang:type=Memory" -# attribute = "HeapMemoryUsage" -# -# ## This collect thread counts metrics. -# [[inputs.jolokia.metrics]] -# name = "thread_count" -# mbean = "java.lang:type=Threading" -# attribute = "TotalStartedThreadCount,ThreadCount,DaemonThreadCount,PeakThreadCount" -# -# ## This collect number of class loaded/unloaded counts metrics. -# [[inputs.jolokia.metrics]] -# name = "class_count" -# mbean = "java.lang:type=ClassLoading" -# attribute = "LoadedClassCount,UnloadedClassCount,TotalLoadedClassCount" - - -# # Read JMX metrics from a Jolokia REST agent endpoint -# [[inputs.jolokia2_agent]] -# # default_tag_prefix = "" -# # default_field_prefix = "" -# # default_field_separator = "." -# -# # Add agents URLs to query -# urls = ["http://localhost:8080/jolokia"] -# # username = "" -# # password = "" -# # response_timeout = "5s" -# -# ## Optional TLS config -# # tls_ca = "/var/private/ca.pem" -# # tls_cert = "/var/private/client.pem" -# # tls_key = "/var/private/client-key.pem" -# # insecure_skip_verify = false -# -# ## Add metrics to read -# [[inputs.jolokia2_agent.metric]] -# name = "java_runtime" -# mbean = "java.lang:type=Runtime" -# paths = ["Uptime"] - - -# # Read JMX metrics from a Jolokia REST proxy endpoint -# [[inputs.jolokia2_proxy]] -# # default_tag_prefix = "" -# # default_field_prefix = "" -# # default_field_separator = "." -# -# ## Proxy agent -# url = "http://localhost:8080/jolokia" -# # username = "" -# # password = "" -# # response_timeout = "5s" -# -# ## Optional TLS config -# # tls_ca = "/var/private/ca.pem" -# # tls_cert = "/var/private/client.pem" -# # tls_key = "/var/private/client-key.pem" -# # insecure_skip_verify = false -# -# ## Add proxy targets to query -# # default_target_username = "" -# # default_target_password = "" -# [[inputs.jolokia2_proxy.target]] -# url = "service:jmx:rmi:///jndi/rmi://targethost:9999/jmxrmi" -# # username = "" -# # password = "" -# -# ## Add metrics to read -# [[inputs.jolokia2_proxy.metric]] -# name = "java_runtime" -# mbean = "java.lang:type=Runtime" -# paths = ["Uptime"] - - -# # Read Kapacitor-formatted JSON metrics from one or more HTTP endpoints -# [[inputs.kapacitor]] -# ## Multiple URLs from which to read Kapacitor-formatted JSON -# ## Default is "http://localhost:9092/kapacitor/v1/debug/vars". -# urls = [ -# "http://localhost:9092/kapacitor/v1/debug/vars" -# ] -# -# ## Time limit for http requests -# timeout = "5s" -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false - - -# # Get kernel statistics from /proc/vmstat -# [[inputs.kernel_vmstat]] -# # no configuration - - -# # Read status information from one or more Kibana servers -# [[inputs.kibana]] -# ## Specify a list of one or more Kibana servers -# servers = ["http://localhost:5601"] -# -# ## Timeout for HTTP requests -# timeout = "5s" -# -# ## HTTP Basic Auth credentials -# # username = "username" -# # password = "pa$$word" -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false - - -# # Read metrics from the Kubernetes api -# [[inputs.kube_inventory]] -# ## URL for the Kubernetes API -# url = "https://127.0.0.1" -# -# ## Namespace to use. Set to "" to use all namespaces. -# # namespace = "default" -# -# ## Use bearer token for authorization. ('bearer_token' takes priority) -# ## If both of these are empty, we'll use the default serviceaccount: -# ## at: /run/secrets/kubernetes.io/serviceaccount/token -# # bearer_token = "/path/to/bearer/token" -# ## OR -# # bearer_token_string = "abc_123" -# -# ## Set response_timeout (default 5 seconds) -# # response_timeout = "5s" -# -# ## Optional Resources to exclude from gathering -# ## Leave them with blank with try to gather everything available. -# ## Values can be - "daemonsets", deployments", "endpoints", "ingress", "nodes", -# ## "persistentvolumes", "persistentvolumeclaims", "pods", "services", "statefulsets" -# # resource_exclude = [ "deployments", "nodes", "statefulsets" ] -# -# ## Optional Resources to include when gathering -# ## Overrides resource_exclude if both set. -# # resource_include = [ "deployments", "nodes", "statefulsets" ] -# -# ## selectors to include and exclude as tags. Globs accepted. -# ## Note that an empty array for both will include all selectors as tags -# ## selector_exclude overrides selector_include if both set. -# # selector_include = [] -# # selector_exclude = ["*"] -# -# ## Optional TLS Config -# # tls_ca = "/path/to/cafile" -# # tls_cert = "/path/to/certfile" -# # tls_key = "/path/to/keyfile" -# # tls_server_name = "kubernetes.example.com" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false - - -# # Read metrics from the kubernetes kubelet api -# [[inputs.kubernetes]] -# ## URL for the kubelet -# url = "http://127.0.0.1:10255" -# -# ## Use bearer token for authorization. ('bearer_token' takes priority) -# ## If both of these are empty, we'll use the default serviceaccount: -# ## at: /run/secrets/kubernetes.io/serviceaccount/token -# # bearer_token = "/path/to/bearer/token" -# ## OR -# # bearer_token_string = "abc_123" -# -# ## Pod labels to be added as tags. An empty array for both include and -# ## exclude will include all labels. -# # label_include = [] -# # label_exclude = ["*"] -# -# ## Set response_timeout (default 5 seconds) -# # response_timeout = "5s" -# -# ## Optional TLS Config -# # tls_ca = /path/to/cafile -# # tls_cert = /path/to/certfile -# # tls_key = /path/to/keyfile -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false - - -# # Read metrics from a LeoFS Server via SNMP -# [[inputs.leofs]] -# ## An array of URLs of the form: -# ## host [ ":" port] -# servers = ["127.0.0.1:4020"] - - -# # Provides Linux sysctl fs metrics -# [[inputs.linux_sysctl_fs]] -# # no configuration - - -# # Read metrics exposed by Logstash -# [[inputs.logstash]] -# ## The URL of the exposed Logstash API endpoint. -# url = "http://127.0.0.1:9600" -# -# ## Use Logstash 5 single pipeline API, set to true when monitoring -# ## Logstash 5. -# # single_pipeline = false -# -# ## Enable optional collection components. Can contain -# ## "pipelines", "process", and "jvm". -# # collect = ["pipelines", "process", "jvm"] -# -# ## Timeout for HTTP requests. -# # timeout = "5s" -# -# ## Optional HTTP Basic Auth credentials. -# # username = "username" -# # password = "pa$$word" -# -# ## Optional TLS Config. -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# -# ## Use TLS but skip chain & host verification. -# # insecure_skip_verify = false -# -# ## Optional HTTP headers. -# # [inputs.logstash.headers] -# # "X-Special-Header" = "Special-Value" - - -# # Read metrics from local Lustre service on OST, MDS -# [[inputs.lustre2]] -# ## An array of /proc globs to search for Lustre stats -# ## If not specified, the default will work on Lustre 2.5.x -# ## -# # ost_procfiles = [ -# # "/proc/fs/lustre/obdfilter/*/stats", -# # "/proc/fs/lustre/osd-ldiskfs/*/stats", -# # "/proc/fs/lustre/obdfilter/*/job_stats", -# # ] -# # mds_procfiles = [ -# # "/proc/fs/lustre/mdt/*/md_stats", -# # "/proc/fs/lustre/mdt/*/job_stats", -# # ] - - -# # Read metrics about LVM physical volumes, volume groups, logical volumes. -# [[inputs.lvm]] -# ## Use sudo to run LVM commands -# use_sudo = false - - -# # Gathers metrics from the /3.0/reports MailChimp API -# [[inputs.mailchimp]] -# ## MailChimp API key -# ## get from https://admin.mailchimp.com/account/api/ -# api_key = "" # required -# ## Reports for campaigns sent more than days_old ago will not be collected. -# ## 0 means collect all. -# days_old = 0 -# ## Campaign ID to get, if empty gets all campaigns, this option overrides days_old -# # campaign_id = "" - - -# # Retrieves information on a specific host in a MarkLogic Cluster -# [[inputs.marklogic]] -# ## Base URL of the MarkLogic HTTP Server. -# url = "http://localhost:8002" -# -# ## List of specific hostnames to retrieve information. At least (1) required. -# # hosts = ["hostname1", "hostname2"] -# -# ## Using HTTP Basic Authentication. Management API requires 'manage-user' role privileges -# # username = "myuser" -# # password = "mypassword" -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false - - -# # Read metrics from one or many mcrouter servers -# [[inputs.mcrouter]] -# ## An array of address to gather stats about. Specify an ip or hostname -# ## with port. ie tcp://localhost:11211, tcp://10.0.0.1:11211, etc. -# servers = ["tcp://localhost:11211", "unix:///var/run/mcrouter.sock"] -# -# ## Timeout for metric collections from all servers. Minimum timeout is "1s". -# # timeout = "5s" - - -# # Get md array statistics from /proc/mdstat -# [[inputs.mdstat]] -# ## Sets file path -# ## If not specified, then default is /proc/mdstat -# # file_name = "/proc/mdstat" - - -# # Read metrics from one or many memcached servers -# [[inputs.memcached]] -# ## An array of address to gather stats about. Specify an ip on hostname -# ## with optional port. ie localhost, 10.0.0.1:11211, etc. -# servers = ["localhost:11211"] -# # unix_sockets = ["/var/run/memcached.sock"] -# -# ## Optional TLS Config -# # enable_tls = true -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## If false, skip chain & host verification -# # insecure_skip_verify = true - - -# # Telegraf plugin for gathering metrics from N Mesos masters -# [[inputs.mesos]] -# ## Timeout, in ms. -# timeout = 100 -# -# ## A list of Mesos masters. -# masters = ["http://localhost:5050"] -# -# ## Master metrics groups to be collected, by default, all enabled. -# master_collections = [ -# "resources", -# "master", -# "system", -# "agents", -# "frameworks", -# "framework_offers", -# "tasks", -# "messages", -# "evqueue", -# "registrar", -# "allocator", -# ] -# -# ## A list of Mesos slaves, default is [] -# # slaves = [] -# -# ## Slave metrics groups to be collected, by default, all enabled. -# # slave_collections = [ -# # "resources", -# # "agent", -# # "system", -# # "executors", -# # "tasks", -# # "messages", -# # ] -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false - - -# # Collects scores from a Minecraft server's scoreboard using the RCON protocol -# [[inputs.minecraft]] -# ## Address of the Minecraft server. -# # server = "localhost" -# -# ## Server RCON Port. -# # port = "25575" -# -# ## Server RCON Password. -# password = "" -# -# ## Uncomment to remove deprecated metric components. -# # tagdrop = ["server"] - - -# # Generate metrics for test and demonstration purposes -# [[inputs.mock]] -# ## Set the metric name to use for reporting -# metric_name = "mock" -# -# ## Optional string key-value pairs of tags to add to all metrics -# # [inputs.mock.tags] -# # "key" = "value" -# -# ## One or more mock data fields *must* be defined. -# ## -# ## [[inputs.mock.random]] -# ## name = "rand" -# ## min = 1.0 -# ## max = 6.0 -# ## [[inputs.mock.sine_wave]] -# ## name = "wave" -# ## amplitude = 1.0 -# ## period = 0.5 -# ## [[inputs.mock.step]] -# ## name = "plus_one" -# ## start = 0.0 -# ## step = 1.0 -# ## [[inputs.mock.stock]] -# ## name = "abc" -# ## price = 50.00 -# ## volatility = 0.2 - - -# # Retrieve data from MODBUS slave devices -# [[inputs.modbus]] -# ## Connection Configuration -# ## -# ## The plugin supports connections to PLCs via MODBUS/TCP, RTU over TCP, ASCII over TCP or -# ## via serial line communication in binary (RTU) or readable (ASCII) encoding -# ## -# ## Device name -# name = "Device" -# -# ## Slave ID - addresses a MODBUS device on the bus -# ## Range: 0 - 255 [0 = broadcast; 248 - 255 = reserved] -# slave_id = 1 -# -# ## Timeout for each request -# timeout = "1s" -# -# ## Maximum number of retries and the time to wait between retries -# ## when a slave-device is busy. -# # busy_retries = 0 -# # busy_retries_wait = "100ms" -# -# # TCP - connect via Modbus/TCP -# controller = "tcp://localhost:502" -# -# ## Serial (RS485; RS232) -# # controller = "file:///dev/ttyUSB0" -# # baud_rate = 9600 -# # data_bits = 8 -# # parity = "N" -# # stop_bits = 1 -# -# ## Trace the connection to the modbus device as debug messages -# ## Note: You have to enable telegraf's debug mode to see those messages! -# # debug_connection = false -# -# ## For Modbus over TCP you can choose between "TCP", "RTUoverTCP" and "ASCIIoverTCP" -# ## default behaviour is "TCP" if the controller is TCP -# ## For Serial you can choose between "RTU" and "ASCII" -# # transmission_mode = "RTU" -# -# ## Define the configuration schema -# ## |---register -- define fields per register type in the original style (only supports one slave ID) -# ## |---request -- define fields on a requests base -# configuration_type = "register" -# -# ## Per register definition -# ## -# -# ## Digital Variables, Discrete Inputs and Coils -# ## measurement - the (optional) measurement name, defaults to "modbus" -# ## name - the variable name -# ## address - variable address -# -# discrete_inputs = [ -# { name = "start", address = [0]}, -# { name = "stop", address = [1]}, -# { name = "reset", address = [2]}, -# { name = "emergency_stop", address = [3]}, -# ] -# coils = [ -# { name = "motor1_run", address = [0]}, -# { name = "motor1_jog", address = [1]}, -# { name = "motor1_stop", address = [2]}, -# ] -# -# ## Analog Variables, Input Registers and Holding Registers -# ## measurement - the (optional) measurement name, defaults to "modbus" -# ## name - the variable name -# ## byte_order - the ordering of bytes -# ## |---AB, ABCD - Big Endian -# ## |---BA, DCBA - Little Endian -# ## |---BADC - Mid-Big Endian -# ## |---CDAB - Mid-Little Endian -# ## data_type - INT16, UINT16, INT32, UINT32, INT64, UINT64, -# ## FLOAT32-IEEE, FLOAT64-IEEE (the IEEE 754 binary representation) -# ## FLOAT32, FIXED, UFIXED (fixed-point representation on input) -# ## scale - the final numeric variable representation -# ## address - variable address -# -# holding_registers = [ -# { name = "power_factor", byte_order = "AB", data_type = "FIXED", scale=0.01, address = [8]}, -# { name = "voltage", byte_order = "AB", data_type = "FIXED", scale=0.1, address = [0]}, -# { name = "energy", byte_order = "ABCD", data_type = "FIXED", scale=0.001, address = [5,6]}, -# { name = "current", byte_order = "ABCD", data_type = "FIXED", scale=0.001, address = [1,2]}, -# { name = "frequency", byte_order = "AB", data_type = "UFIXED", scale=0.1, address = [7]}, -# { name = "power", byte_order = "ABCD", data_type = "UFIXED", scale=0.1, address = [3,4]}, -# ] -# input_registers = [ -# { name = "tank_level", byte_order = "AB", data_type = "INT16", scale=1.0, address = [0]}, -# { name = "tank_ph", byte_order = "AB", data_type = "INT16", scale=1.0, address = [1]}, -# { name = "pump1_speed", byte_order = "ABCD", data_type = "INT32", scale=1.0, address = [3,4]}, -# ] -# -# -# ## Per request definition -# ## -# -# ## Define a request sent to the device -# ## Multiple of those requests can be defined. Data will be collated into metrics at the end of data collection. -# # [[inputs.modbus.request]] -# ## ID of the modbus slave device to query. -# ## If you need to query multiple slave-devices, create several "request" definitions. -# # slave_id = 0 -# -# ## Byte order of the data. -# ## |---ABCD or MSW-BE -- Big Endian (Motorola) -# ## |---DCBA or LSW-LE -- Little Endian (Intel) -# ## |---BADC or MSW-LE -- Big Endian with byte swap -# ## |---CDAB or LSW-BE -- Little Endian with byte swap -# # byte_order = "ABCD" -# -# ## Type of the register for the request -# ## Can be "coil", "discrete", "holding" or "input" -# # register = "holding" -# -# ## Name of the measurement. -# ## Can be overriden by the individual field definitions. Defaults to "modbus" -# # measurement = "modbus" -# -# ## Field definitions -# ## Analog Variables, Input Registers and Holding Registers -# ## address - address of the register to query. For coil and discrete inputs this is the bit address. -# ## name *1 - field name -# ## type *1,2 - type of the modbus field, can be INT16, UINT16, INT32, UINT32, INT64, UINT64 and -# ## FLOAT32, FLOAT64 (IEEE 754 binary representation) -# ## scale *1,2 - (optional) factor to scale the variable with -# ## output *1,2 - (optional) type of resulting field, can be INT64, UINT64 or FLOAT64. Defaults to FLOAT64 if -# ## "scale" is provided and to the input "type" class otherwise (i.e. INT* -> INT64, etc). -# ## measurement *1 - (optional) measurement name, defaults to the setting of the request -# ## omit - (optional) omit this field. Useful to leave out single values when querying many registers -# ## with a single request. Defaults to "false". -# ## -# ## *1: Those fields are ignored if field is omitted ("omit"=true) -# ## -# ## *2: Thise fields are ignored for both "coil" and "discrete"-input type of registers. For those register types -# ## the fields are output as zero or one in UINT64 format by default. -# -# ## Coil / discrete input example -# # fields = [ -# # { address=0, name="motor1_run"}, -# # { address=1, name="jog", measurement="motor"}, -# # { address=2, name="motor1_stop", omit=true}, -# # { address=3, name="motor1_overheating"}, -# # ] -# -# ## Per-request tags -# ## These tags take precedence over predefined tags. -# # [[inputs.modbus.request.tags]] -# # name = "value" -# -# ## Holding / input example -# ## All of those examples will result in FLOAT64 field outputs -# # fields = [ -# # { address=0, name="voltage", type="INT16", scale=0.1 }, -# # { address=1, name="current", type="INT32", scale=0.001 }, -# # { address=3, name="power", type="UINT32", omit=true }, -# # { address=5, name="energy", type="FLOAT32", scale=0.001, measurement="W" }, -# # { address=7, name="frequency", type="UINT32", scale=0.1 }, -# # { address=8, name="power_factor", type="INT64", scale=0.01 }, -# # ] -# -# ## Holding / input example with type conversions -# # fields = [ -# # { address=0, name="rpm", type="INT16" }, # will result in INT64 field -# # { address=1, name="temperature", type="INT16", scale=0.1 }, # will result in FLOAT64 field -# # { address=2, name="force", type="INT32", output="FLOAT64" }, # will result in FLOAT64 field -# # { address=4, name="hours", type="UINT32" }, # will result in UIN64 field -# # ] -# -# ## Per-request tags -# ## These tags take precedence over predefined tags. -# # [[inputs.modbus.request.tags]] -# # name = "value" -# -# -# -# ## Enable workarounds required by some devices to work correctly -# # [inputs.modbus.workarounds] -# ## Pause between read requests sent to the device. This might be necessary for (slow) serial devices. -# # pause_between_requests = "0ms" -# ## Close the connection after every gather cycle. Usually the plugin closes the connection after a certain -# ## idle-timeout, however, if you query a device with limited simultaneous connectivity (e.g. serial devices) -# ## from multiple instances you might want to only stay connected during gather and disconnect afterwards. -# # close_connection_after_gather = false - - -# # Read metrics from one or many MongoDB servers -# [[inputs.mongodb]] -# ## An array of URLs of the form: -# ## "mongodb://" [user ":" pass "@"] host [ ":" port] -# ## For example: -# ## mongodb://user:auth_key@10.10.3.30:27017, -# ## mongodb://10.10.3.33:18832, -# servers = ["mongodb://127.0.0.1:27017?connect=direct"] -# -# ## When true, collect cluster status -# ## Note that the query that counts jumbo chunks triggers a COLLSCAN, which -# ## may have an impact on performance. -# # gather_cluster_status = true -# -# ## When true, collect per database stats -# # gather_perdb_stats = false -# -# ## When true, collect per collection stats -# # gather_col_stats = false -# -# ## When true, collect usage statistics for each collection -# ## (insert, update, queries, remove, getmore, commands etc...). -# # gather_top_stat = false -# -# ## List of db where collections stats are collected -# ## If empty, all db are concerned -# # col_stats_dbs = ["local"] -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false - - -# # Read metrics and status information about processes managed by Monit -# [[inputs.monit]] -# ## Monit HTTPD address -# address = "http://127.0.0.1:2812" -# -# ## Username and Password for Monit -# # username = "" -# # password = "" -# -# ## Amount of time allowed to complete the HTTP request -# # timeout = "5s" -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false - - -# # Aggregates the contents of multiple files into a single point -# [[inputs.multifile]] -# ## Base directory where telegraf will look for files. -# ## Omit this option to use absolute paths. -# base_dir = "/sys/bus/i2c/devices/1-0076/iio:device0" -# -# ## If true, Telegraf discard all data when a single file can't be read. -# ## Else, Telegraf omits the field generated from this file. -# # fail_early = true -# -# ## Files to parse each interval. -# [[inputs.multifile.file]] -# file = "in_pressure_input" -# dest = "pressure" -# conversion = "float" -# [[inputs.multifile.file]] -# file = "in_temp_input" -# dest = "temperature" -# conversion = "float(3)" -# [[inputs.multifile.file]] -# file = "in_humidityrelative_input" -# dest = "humidityrelative" -# conversion = "float(3)" - - -# # Read metrics from one or many mysql servers -# [[inputs.mysql]] -# ## specify servers via a url matching: -# ## [username[:password]@][protocol[(address)]]/[?tls=[true|false|skip-verify|custom]] -# ## see https://github.com/go-sql-driver/mysql#dsn-data-source-name -# ## e.g. -# ## servers = ["user:passwd@tcp(127.0.0.1:3306)/?tls=false"] -# ## servers = ["user@tcp(127.0.0.1:3306)/?tls=false"] -# # -# ## If no servers are specified, then localhost is used as the host. -# servers = ["tcp(127.0.0.1:3306)/"] -# -# ## Selects the metric output format. -# ## -# ## This option exists to maintain backwards compatibility, if you have -# ## existing metrics do not set or change this value until you are ready to -# ## migrate to the new format. -# ## -# ## If you do not have existing metrics from this plugin set to the latest -# ## version. -# ## -# ## Telegraf >=1.6: metric_version = 2 -# ## <1.6: metric_version = 1 (or unset) -# metric_version = 2 -# -# ## if the list is empty, then metrics are gathered from all database tables -# # table_schema_databases = [] -# -# ## gather metrics from INFORMATION_SCHEMA.TABLES for databases provided above list -# # gather_table_schema = false -# -# ## gather thread state counts from INFORMATION_SCHEMA.PROCESSLIST -# # gather_process_list = false -# -# ## gather user statistics from INFORMATION_SCHEMA.USER_STATISTICS -# # gather_user_statistics = false -# -# ## gather auto_increment columns and max values from information schema -# # gather_info_schema_auto_inc = false -# -# ## gather metrics from INFORMATION_SCHEMA.INNODB_METRICS -# # gather_innodb_metrics = false -# -# ## gather metrics from SHOW SLAVE STATUS command output -# # gather_slave_status = false -# -# ## gather metrics from all channels from SHOW SLAVE STATUS command output -# # gather_all_slave_channels = false -# -# ## use MariaDB dialect for all channels SHOW SLAVE STATUS -# # mariadb_dialect = false -# -# ## gather metrics from SHOW BINARY LOGS command output -# # gather_binary_logs = false -# -# ## gather metrics from PERFORMANCE_SCHEMA.GLOBAL_VARIABLES -# # gather_global_variables = true -# -# ## gather metrics from PERFORMANCE_SCHEMA.TABLE_IO_WAITS_SUMMARY_BY_TABLE -# # gather_table_io_waits = false -# -# ## gather metrics from PERFORMANCE_SCHEMA.TABLE_LOCK_WAITS -# # gather_table_lock_waits = false -# -# ## gather metrics from PERFORMANCE_SCHEMA.TABLE_IO_WAITS_SUMMARY_BY_INDEX_USAGE -# # gather_index_io_waits = false -# -# ## gather metrics from PERFORMANCE_SCHEMA.EVENT_WAITS -# # gather_event_waits = false -# -# ## gather metrics from PERFORMANCE_SCHEMA.FILE_SUMMARY_BY_EVENT_NAME -# # gather_file_events_stats = false -# -# ## gather metrics from PERFORMANCE_SCHEMA.EVENTS_STATEMENTS_SUMMARY_BY_DIGEST -# # gather_perf_events_statements = false -# -# ## the limits for metrics form perf_events_statements -# # perf_events_statements_digest_text_limit = 120 -# # perf_events_statements_limit = 250 -# # perf_events_statements_time_limit = 86400 -# -# ## gather metrics from PERFORMANCE_SCHEMA.EVENTS_STATEMENTS_SUMMARY_BY_ACCOUNT_BY_EVENT_NAME -# # gather_perf_sum_per_acc_per_event = false -# -# ## list of events to be gathered for gather_perf_sum_per_acc_per_event -# ## in case of empty list all events will be gathered -# # perf_summary_events = [] -# -# ## Some queries we may want to run less often (such as SHOW GLOBAL VARIABLES) -# ## example: interval_slow = "30m" -# # interval_slow = "" -# -# ## Optional TLS Config (will be used if tls=custom parameter specified in server uri) -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false - - -# # Provides metrics about the state of a NATS server -# [[inputs.nats]] -# ## The address of the monitoring endpoint of the NATS server -# server = "http://localhost:8222" -# -# ## Maximum time to receive response -# # response_timeout = "5s" - - -# # Neptune Apex data collector -# [[inputs.neptune_apex]] -# ## The Neptune Apex plugin reads the publicly available status.xml data from a local Apex. -# ## Measurements will be logged under "apex". -# -# ## The base URL of the local Apex(es). If you specify more than one server, they will -# ## be differentiated by the "source" tag. -# servers = [ -# "http://apex.local", -# ] -# -# ## The response_timeout specifies how long to wait for a reply from the Apex. -# #response_timeout = "5s" - - -# # Read metrics about network interface usage -# [[inputs.net]] -# ## By default, telegraf gathers stats from any up interface (excluding loopback) -# ## Setting interfaces will tell it to gather these explicit interfaces, -# ## regardless of status. -# ## -# # interfaces = ["eth0"] -# ## -# ## On linux systems telegraf also collects protocol stats. -# ## Setting ignore_protocol_stats to true will skip reporting of protocol metrics. -# ## -# # ignore_protocol_stats = false -# ## - - -# # Collect response time of a TCP or UDP connection -# [[inputs.net_response]] -# ## Protocol, must be "tcp" or "udp" -# ## NOTE: because the "udp" protocol does not respond to requests, it requires -# ## a send/expect string pair (see below). -# protocol = "tcp" -# ## Server address (default localhost) -# address = "localhost:80" -# -# ## Set timeout -# # timeout = "1s" -# -# ## Set read timeout (only used if expecting a response) -# # read_timeout = "1s" -# -# ## The following options are required for UDP checks. For TCP, they are -# ## optional. The plugin will send the given string to the server and then -# ## expect to receive the given 'expect' string back. -# ## string sent to the server -# # send = "ssh" -# ## expected string in answer -# # expect = "ssh" -# -# ## Uncomment to remove deprecated fields -# # fielddrop = ["result_type", "string_found"] - - -# # Read TCP metrics such as established, time wait and sockets counts. -# [[inputs.netstat]] -# # no configuration - - -# # Read per-mount NFS client metrics from /proc/self/mountstats -# [[inputs.nfsclient]] -# ## Read more low-level metrics (optional, defaults to false) -# # fullstat = false -# -# ## List of mounts to explictly include or exclude (optional) -# ## The pattern (Go regexp) is matched against the mount point (not the -# ## device being mounted). If include_mounts is set, all mounts are ignored -# ## unless present in the list. If a mount is listed in both include_mounts -# ## and exclude_mounts, it is excluded. Go regexp patterns can be used. -# # include_mounts = [] -# # exclude_mounts = [] -# -# ## List of operations to include or exclude from collecting. This applies -# ## only when fullstat=true. Symantics are similar to {include,exclude}_mounts: -# ## the default is to collect everything; when include_operations is set, only -# ## those OPs are collected; when exclude_operations is set, all are collected -# ## except those listed. If include and exclude are set, the OP is excluded. -# ## See /proc/self/mountstats for a list of valid operations; note that -# ## NFSv3 and NFSv4 have different lists. While it is not possible to -# ## have different include/exclude lists for NFSv3/4, unused elements -# ## in the list should be okay. It is possible to have different lists -# ## for different mountpoints: use mulitple [[input.nfsclient]] stanzas, -# ## with their own lists. See "include_mounts" above, and be careful of -# ## duplicate metrics. -# # include_operations = [] -# # exclude_operations = [] - - -# # Read Nginx's basic status information (ngx_http_stub_status_module) -# [[inputs.nginx]] -# # An array of Nginx stub_status URI to gather stats. -# urls = ["http://localhost/server_status"] -# -# ## Optional TLS Config -# tls_ca = "/etc/telegraf/ca.pem" -# tls_cert = "/etc/telegraf/cert.cer" -# tls_key = "/etc/telegraf/key.key" -# ## Use TLS but skip chain & host verification -# insecure_skip_verify = false -# -# # HTTP response timeout (default: 5s) -# response_timeout = "5s" - - -# # Read Nginx Plus' full status information (ngx_http_status_module) -# [[inputs.nginx_plus]] -# ## An array of ngx_http_status_module or status URI to gather stats. -# urls = ["http://localhost/status"] -# -# # HTTP response timeout (default: 5s) -# response_timeout = "5s" -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false - - -# # Read Nginx Plus Api documentation -# [[inputs.nginx_plus_api]] -# ## An array of API URI to gather stats. -# urls = ["http://localhost/api"] -# -# # Nginx API version, default: 3 -# # api_version = 3 -# -# # HTTP response timeout (default: 5s) -# response_timeout = "5s" -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false - - -# # Read Nginx virtual host traffic status module information (nginx-module-sts) -# [[inputs.nginx_sts]] -# ## An array of ngx_http_status_module or status URI to gather stats. -# urls = ["http://localhost/status"] -# -# ## HTTP response timeout (default: 5s) -# response_timeout = "5s" -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false - - -# # Read nginx_upstream_check module status information (https://github.com/yaoweibin/nginx_upstream_check_module) -# [[inputs.nginx_upstream_check]] -# ## An URL where Nginx Upstream check module is enabled -# ## It should be set to return a JSON formatted response -# url = "http://127.0.0.1/status?format=json" -# -# ## HTTP method -# # method = "GET" -# -# ## Optional HTTP headers -# # headers = {"X-Special-Header" = "Special-Value"} -# -# ## Override HTTP "Host" header -# # host_header = "check.example.com" -# -# ## Timeout for HTTP requests -# timeout = "5s" -# -# ## Optional HTTP Basic Auth credentials -# # username = "username" -# # password = "pa$$word" -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false - - -# # Read Nginx virtual host traffic status module information (nginx-module-vts) -# [[inputs.nginx_vts]] -# ## An array of ngx_http_status_module or status URI to gather stats. -# urls = ["http://localhost/status"] -# -# ## HTTP response timeout (default: 5s) -# response_timeout = "5s" -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false - - -# # Read metrics from the Nomad API -# [[inputs.nomad]] -# ## URL for the Nomad agent -# # url = "http://127.0.0.1:4646" -# -# ## Set response_timeout (default 5 seconds) -# # response_timeout = "5s" -# -# ## Optional TLS Config -# # tls_ca = /path/to/cafile -# # tls_cert = /path/to/certfile -# # tls_key = /path/to/keyfile - - -# # A plugin to collect stats from the NSD authoritative DNS name server -# [[inputs.nsd]] -# ## Address of server to connect to, optionally ':port'. Defaults to the -# ## address in the nsd config file. -# server = "127.0.0.1:8953" -# -# ## If running as a restricted user you can prepend sudo for additional access: -# # use_sudo = false -# -# ## The default location of the nsd-control binary can be overridden with: -# # binary = "/usr/sbin/nsd-control" -# -# ## The default location of the nsd config file can be overridden with: -# # config_file = "/etc/nsd/nsd.conf" -# -# ## The default timeout of 1s can be overridden with: -# # timeout = "1s" - - -# # Read NSQ topic and channel statistics. -# [[inputs.nsq]] -# ## An array of NSQD HTTP API endpoints -# endpoints = ["http://localhost:4151"] -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false - - -# # Collect kernel snmp counters and network interface statistics -# [[inputs.nstat]] -# ## file paths for proc files. If empty default paths will be used: -# ## /proc/net/netstat, /proc/net/snmp, /proc/net/snmp6 -# ## These can also be overridden with env variables, see README. -# proc_net_netstat = "/proc/net/netstat" -# proc_net_snmp = "/proc/net/snmp" -# proc_net_snmp6 = "/proc/net/snmp6" -# ## dump metrics with 0 values too -# dump_zeros = true - - -# # Get standard NTP query metrics, requires ntpq executable. -# [[inputs.ntpq]] -# ## If false, set the -n ntpq flag. Can reduce metric gather time. -# dns_lookup = true - - -# # Pulls statistics from nvidia GPUs attached to the host -# [[inputs.nvidia_smi]] -# ## Optional: path to nvidia-smi binary, defaults "/usr/bin/nvidia-smi" -# ## We will first try to locate the nvidia-smi binary with the explicitly specified value (or default value), -# ## if it is not found, we will try to locate it on PATH(exec.LookPath), if it is still not found, an error will be returned -# # bin_path = "/usr/bin/nvidia-smi" -# -# ## Optional: timeout for GPU polling -# # timeout = "5s" - - -# # Retrieve data from OPCUA devices -# [[inputs.opcua]] -# ## Metric name -# # name = "opcua" -# # -# ## OPC UA Endpoint URL -# # endpoint = "opc.tcp://localhost:4840" -# # -# ## Maximum time allowed to establish a connect to the endpoint. -# # connect_timeout = "10s" -# # -# ## Maximum time allowed for a request over the estabilished connection. -# # request_timeout = "5s" -# # -# ## Security policy, one of "None", "Basic128Rsa15", "Basic256", -# ## "Basic256Sha256", or "auto" -# # security_policy = "auto" -# # -# ## Security mode, one of "None", "Sign", "SignAndEncrypt", or "auto" -# # security_mode = "auto" -# # -# ## Path to cert.pem. Required when security mode or policy isn't "None". -# ## If cert path is not supplied, self-signed cert and key will be generated. -# # certificate = "/etc/telegraf/cert.pem" -# # -# ## Path to private key.pem. Required when security mode or policy isn't "None". -# ## If key path is not supplied, self-signed cert and key will be generated. -# # private_key = "/etc/telegraf/key.pem" -# # -# ## Authentication Method, one of "Certificate", "UserName", or "Anonymous". To -# ## authenticate using a specific ID, select 'Certificate' or 'UserName' -# # auth_method = "Anonymous" -# # -# ## Username. Required for auth_method = "UserName" -# # username = "" -# # -# ## Password. Required for auth_method = "UserName" -# # password = "" -# # -# ## Option to select the metric timestamp to use. Valid options are: -# ## "gather" -- uses the time of receiving the data in telegraf -# ## "server" -- uses the timestamp provided by the server -# ## "source" -- uses the timestamp provided by the source -# # timestamp = "gather" -# # -# ## Node ID configuration -# ## name - field name to use in the output -# ## namespace - OPC UA namespace of the node (integer value 0 thru 3) -# ## identifier_type - OPC UA ID type (s=string, i=numeric, g=guid, b=opaque) -# ## identifier - OPC UA ID (tag as shown in opcua browser) -# ## Example: -# ## {name="ProductUri", namespace="0", identifier_type="i", identifier="2262"} -# # nodes = [ -# # {name="", namespace="", identifier_type="", identifier=""}, -# # {name="", namespace="", identifier_type="", identifier=""}, -# #] -# # -# ## Node Group -# ## Sets defaults for OPC UA namespace and ID type so they aren't required in -# ## every node. A group can also have a metric name that overrides the main -# ## plugin metric name. -# ## -# ## Multiple node groups are allowed -# #[[inputs.opcua.group]] -# ## Group Metric name. Overrides the top level name. If unset, the -# ## top level name is used. -# # name = -# # -# ## Group default namespace. If a node in the group doesn't set its -# ## namespace, this is used. -# # namespace = -# # -# ## Group default identifier type. If a node in the group doesn't set its -# ## namespace, this is used. -# # identifier_type = -# # -# ## Node ID Configuration. Array of nodes with the same settings as above. -# # nodes = [ -# # {name="", namespace="", identifier_type="", identifier=""}, -# # {name="", namespace="", identifier_type="", identifier=""}, -# #] -# -# ## Enable workarounds required by some devices to work correctly -# # [inputs.opcua.workarounds] -# ## Set additional valid status codes, StatusOK (0x0) is always considered valid -# # additional_valid_status_codes = ["0xC0"] - - -# # OpenLDAP cn=Monitor plugin -# [[inputs.openldap]] -# host = "localhost" -# port = 389 -# -# # ldaps, starttls, or no encryption. default is an empty string, disabling all encryption. -# # note that port will likely need to be changed to 636 for ldaps -# # valid options: "" | "starttls" | "ldaps" -# tls = "" -# -# # skip peer certificate verification. Default is false. -# insecure_skip_verify = false -# -# # Path to PEM-encoded Root certificate to use to verify server certificate -# tls_ca = "/etc/ssl/certs.pem" -# -# # dn/password to bind with. If bind_dn is empty, an anonymous bind is performed. -# bind_dn = "" -# bind_password = "" -# -# # Reverse metric names so they sort more naturally. Recommended. -# # This defaults to false if unset, but is set to true when generating a new config -# reverse_metric_names = true - - -# # Get standard NTP query metrics from OpenNTPD. -# [[inputs.openntpd]] -# ## Run ntpctl binary with sudo. -# # use_sudo = false -# -# ## Location of the ntpctl binary. -# # binary = "/usr/sbin/ntpctl" -# -# ## Maximum time the ntpctl binary is allowed to run. -# # timeout = "5ms" - - -# # A plugin to collect stats from Opensmtpd - a validating, recursive, and caching DNS resolver -# [[inputs.opensmtpd]] -# ## If running as a restricted user you can prepend sudo for additional access: -# #use_sudo = false -# -# ## The default location of the smtpctl binary can be overridden with: -# binary = "/usr/sbin/smtpctl" -# -# ## The default timeout of 1000ms can be overridden with (in milliseconds): -# timeout = 1000 - - -# # Collects performance metrics from OpenStack services -# [[inputs.openstack]] -# ## The recommended interval to poll is '30m' -# -# ## The identity endpoint to authenticate against and get the service catalog from. -# authentication_endpoint = "https://my.openstack.cloud:5000" -# -# ## The domain to authenticate against when using a V3 identity endpoint. -# # domain = "default" -# -# ## The project to authenticate as. -# # project = "admin" -# -# ## User authentication credentials. Must have admin rights. -# username = "admin" -# password = "password" -# -# ## Available services are: -# ## "agents", "aggregates", "flavors", "hypervisors", "networks", "nova_services", -# ## "ports", "projects", "servers", "services", "stacks", "storage_pools", "subnets", "volumes" -# # enabled_services = ["services", "projects", "hypervisors", "flavors", "networks", "volumes"] -# -# ## Collect Server Diagnostics -# # server_diagnotics = false -# -# ## output secrets (such as adminPass(for server) and UserID(for volume)). -# # output_secrets = false -# -# ## Amount of time allowed to complete the HTTP(s) request. -# # timeout = "5s" -# -# ## HTTP Proxy support -# # http_proxy_url = "" -# -# ## Optional TLS Config -# # tls_ca = /path/to/cafile -# # tls_cert = /path/to/certfile -# # tls_key = /path/to/keyfile -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false -# -# ## Options for tags received from Openstack -# # tag_prefix = "openstack_tag_" -# # tag_value = "true" -# -# ## Timestamp format for timestamp data recieved from Openstack. -# ## If false format is unix nanoseconds. -# # human_readable_timestamps = false -# -# ## Measure Openstack call duration -# # measure_openstack_requests = false - - -# # Read current weather and forecasts data from openweathermap.org -# [[inputs.openweathermap]] -# ## OpenWeatherMap API key. -# app_id = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" -# -# ## City ID's to collect weather data from. -# city_id = ["5391959"] -# -# ## Language of the description field. Can be one of "ar", "bg", -# ## "ca", "cz", "de", "el", "en", "fa", "fi", "fr", "gl", "hr", "hu", -# ## "it", "ja", "kr", "la", "lt", "mk", "nl", "pl", "pt", "ro", "ru", -# ## "se", "sk", "sl", "es", "tr", "ua", "vi", "zh_cn", "zh_tw" -# # lang = "en" -# -# ## APIs to fetch; can contain "weather" or "forecast". -# fetch = ["weather", "forecast"] -# -# ## OpenWeatherMap base URL -# # base_url = "https://api.openweathermap.org/" -# -# ## Timeout for HTTP response. -# # response_timeout = "5s" -# -# ## Preferred unit system for temperature and wind speed. Can be one of -# ## "metric", "imperial", or "standard". -# # units = "metric" -# -# ## Query interval; OpenWeatherMap updates their weather data every 10 -# ## minutes. -# interval = "10m" - - -# # Read metrics of passenger using passenger-status -# [[inputs.passenger]] -# ## Path of passenger-status. -# ## -# ## Plugin gather metric via parsing XML output of passenger-status -# ## More information about the tool: -# ## https://www.phusionpassenger.com/library/admin/apache/overall_status_report.html -# ## -# ## If no path is specified, then the plugin simply execute passenger-status -# ## hopefully it can be found in your PATH -# command = "passenger-status -v --show=xml" - - -# # Gather counters from PF -# [[inputs.pf]] -# ## PF require root access on most systems. -# ## Setting 'use_sudo' to true will make use of sudo to run pfctl. -# ## Users must configure sudo to allow telegraf user to run pfctl with no password. -# ## pfctl can be restricted to only list command "pfctl -s info". -# use_sudo = false - - -# # Read metrics of phpfpm, via HTTP status page or socket -# [[inputs.phpfpm]] -# ## An array of addresses to gather stats about. Specify an ip or hostname -# ## with optional port and path -# ## -# ## Plugin can be configured in three modes (either can be used): -# ## - http: the URL must start with http:// or https://, ie: -# ## "http://localhost/status" -# ## "http://192.168.130.1/status?full" -# ## -# ## - unixsocket: path to fpm socket, ie: -# ## "/var/run/php5-fpm.sock" -# ## or using a custom fpm status path: -# ## "/var/run/php5-fpm.sock:fpm-custom-status-path" -# ## -# ## - fcgi: the URL must start with fcgi:// or cgi://, and port must be present, ie: -# ## "fcgi://10.0.0.12:9000/status" -# ## "cgi://10.0.10.12:9001/status" -# ## -# ## Example of multiple gathering from local socket and remote host -# ## urls = ["http://192.168.1.20/status", "/tmp/fpm.sock"] -# urls = ["http://localhost/status"] -# -# ## Duration allowed to complete HTTP requests. -# # timeout = "5s" -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false - - -# # Ping given url(s) and return statistics -# [[inputs.ping]] -# ## Hosts to send ping packets to. -# urls = ["example.org"] -# -# ## Method used for sending pings, can be either "exec" or "native". When set -# ## to "exec" the systems ping command will be executed. When set to "native" -# ## the plugin will send pings directly. -# ## -# ## While the default is "exec" for backwards compatibility, new deployments -# ## are encouraged to use the "native" method for improved compatibility and -# ## performance. -# # method = "exec" -# -# ## Number of ping packets to send per interval. Corresponds to the "-c" -# ## option of the ping command. -# # count = 1 -# -# ## Time to wait between sending ping packets in seconds. Operates like the -# ## "-i" option of the ping command. -# # ping_interval = 1.0 -# -# ## If set, the time to wait for a ping response in seconds. Operates like -# ## the "-W" option of the ping command. -# # timeout = 1.0 -# -# ## If set, the total ping deadline, in seconds. Operates like the -w option -# ## of the ping command. -# # deadline = 10 -# -# ## Interface or source address to send ping from. Operates like the -I or -S -# ## option of the ping command. -# # interface = "" -# -# ## Percentiles to calculate. This only works with the native method. -# # percentiles = [50, 95, 99] -# -# ## Specify the ping executable binary. -# # binary = "ping" -# -# ## Arguments for ping command. When arguments is not empty, the command from -# ## the binary option will be used and other options (ping_interval, timeout, -# ## etc) will be ignored. -# # arguments = ["-c", "3"] -# -# ## Use only IPv6 addresses when resolving a hostname. -# # ipv6 = false -# -# ## Number of data bytes to be sent. Corresponds to the "-s" -# ## option of the ping command. This only works with the native method. -# # size = 56 - - -# # Measure postfix queue statistics -# [[inputs.postfix]] -# ## Postfix queue directory. If not provided, telegraf will try to use -# ## 'postconf -h queue_directory' to determine it. -# # queue_directory = "/var/spool/postfix" - - -# # Read metrics from one or many PowerDNS servers -# [[inputs.powerdns]] -# ## An array of sockets to gather stats about. -# ## Specify a path to unix socket. -# unix_sockets = ["/var/run/pdns.controlsocket"] - - -# # Read metrics from one or many PowerDNS Recursor servers -# [[inputs.powerdns_recursor]] -# ## Path to the Recursor control socket. -# unix_sockets = ["/var/run/pdns_recursor.controlsocket"] -# -# ## Directory to create receive socket. This default is likely not writable, -# ## please reference the full plugin documentation for a recommended setup. -# # socket_dir = "/var/run/" -# ## Socket permissions for the receive socket. -# # socket_mode = "0666" - - -# # Monitor process cpu and memory usage -# [[inputs.procstat]] -# ## PID file to monitor process -# pid_file = "/var/run/nginx.pid" -# ## executable name (ie, pgrep ) -# # exe = "nginx" -# ## pattern as argument for pgrep (ie, pgrep -f ) -# # pattern = "nginx" -# ## user as argument for pgrep (ie, pgrep -u ) -# # user = "nginx" -# ## Systemd unit name, supports globs when include_systemd_children is set to true -# # systemd_unit = "nginx.service" -# # include_systemd_children = false -# ## CGroup name or path, supports globs -# # cgroup = "systemd/system.slice/nginx.service" -# -# ## Windows service name -# # win_service = "" -# -# ## override for process_name -# ## This is optional; default is sourced from /proc//status -# # process_name = "bar" -# -# ## Field name prefix -# # prefix = "" -# -# ## When true add the full cmdline as a tag. -# # cmdline_tag = false -# -# ## Mode to use when calculating CPU usage. Can be one of 'solaris' or 'irix'. -# # mode = "irix" -# -# ## Add the PID as a tag instead of as a field. When collecting multiple -# ## processes with otherwise matching tags this setting should be enabled to -# ## ensure each process has a unique identity. -# ## -# ## Enabling this option may result in a large number of series, especially -# ## when processes have a short lifetime. -# # pid_tag = false -# -# ## Method to use when finding process IDs. Can be one of 'pgrep', or -# ## 'native'. The pgrep finder calls the pgrep executable in the PATH while -# ## the native finder performs the search directly in a manor dependent on the -# ## platform. Default is 'pgrep' -# # pid_finder = "pgrep" - - -# # Provides metrics from Proxmox nodes (Proxmox Virtual Environment > 6.2). -# [[inputs.proxmox]] -# ## API connection configuration. The API token was introduced in Proxmox v6.2. Required permissions for user and token: PVEAuditor role on /. -# base_url = "https://localhost:8006/api2/json" -# api_token = "USER@REALM!TOKENID=UUID" -# ## Node name, defaults to OS hostname -# # node_name = "" -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# insecure_skip_verify = false -# -# # HTTP response timeout (default: 5s) -# response_timeout = "5s" - - -# # Reads last_run_summary.yaml file and converts to measurements -# [[inputs.puppetagent]] -# ## Location of puppet last run summary file -# location = "/var/lib/puppet/state/last_run_summary.yaml" - - -# # Reads metrics from RabbitMQ servers via the Management Plugin -# [[inputs.rabbitmq]] -# ## Management Plugin url. (default: http://localhost:15672) -# # url = "http://localhost:15672" -# ## Credentials -# # username = "guest" -# # password = "guest" -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false -# -# ## Optional request timeouts -# ## -# ## ResponseHeaderTimeout, if non-zero, specifies the amount of time to wait -# ## for a server's response headers after fully writing the request. -# # header_timeout = "3s" -# ## -# ## client_timeout specifies a time limit for requests made by this client. -# ## Includes connection time, any redirects, and reading the response body. -# # client_timeout = "4s" -# -# ## A list of nodes to gather as the rabbitmq_node measurement. If not -# ## specified, metrics for all nodes are gathered. -# # nodes = ["rabbit@node1", "rabbit@node2"] -# -# ## A list of exchanges to gather as the rabbitmq_exchange measurement. If not -# ## specified, metrics for all exchanges are gathered. -# # exchanges = ["telegraf"] -# -# ## Metrics to include and exclude. Globs accepted. -# ## Note that an empty array for both will include all metrics -# ## Currently the following metrics are supported: "exchange", "federation", "node", "overview", "queue" -# # metric_include = [] -# # metric_exclude = [] -# -# ## Queues to include and exclude. Globs accepted. -# ## Note that an empty array for both will include all queues -# queue_name_include = [] -# queue_name_exclude = [] -# -# ## Federation upstreams include and exclude when gathering the rabbitmq_federation measurement. -# ## If neither are specified, metrics for all federation upstreams are gathered. -# ## Federation link metrics will only be gathered for queues and exchanges -# ## whose non-federation metrics will be collected (e.g a queue excluded -# ## by the 'queue_name_exclude' option will also be excluded from federation). -# ## Globs accepted. -# # federation_upstream_include = ["dataCentre-*"] -# # federation_upstream_exclude = [] - - -# # Read raindrops stats (raindrops - real-time stats for preforking Rack servers) -# [[inputs.raindrops]] -# ## An array of raindrops middleware URI to gather stats. -# urls = ["http://localhost:8080/_raindrops"] - - -# # Reads metrics from RavenDB servers via the Monitoring Endpoints -# [[inputs.ravendb]] -# ## Node URL and port that RavenDB is listening on. By default, -# ## attempts to connect securely over HTTPS, however, if the user -# ## is running a local unsecure development cluster users can use -# ## HTTP via a URL like "http://localhost:8080" -# url = "https://localhost:4433" -# -# ## RavenDB X509 client certificate setup -# # tls_cert = "/etc/telegraf/raven.crt" -# # tls_key = "/etc/telegraf/raven.key" -# -# ## Optional request timeout -# ## -# ## Timeout, specifies the amount of time to wait -# ## for a server's response headers after fully writing the request and -# ## time limit for requests made by this client -# # timeout = "5s" -# -# ## List of statistics which are collected -# # At least one is required -# # Allowed values: server, databases, indexes, collections -# # -# # stats_include = ["server", "databases", "indexes", "collections"] -# -# ## List of db where database stats are collected -# ## If empty, all db are concerned -# # db_stats_dbs = [] -# -# ## List of db where index status are collected -# ## If empty, all indexes from all db are concerned -# # index_stats_dbs = [] -# -# ## List of db where collection status are collected -# ## If empty, all collections from all db are concerned -# # collection_stats_dbs = [] - - -# # Read CPU, Fans, Powersupply and Voltage metrics of hardware server through redfish APIs -# [[inputs.redfish]] -# ## Server url -# address = "https://127.0.0.1:5000" -# -# ## Username, Password for hardware server -# username = "root" -# password = "password123456" -# -# ## ComputerSystemId -# computer_system_id="2M220100SL" -# -# ## Amount of time allowed to complete the HTTP request -# # timeout = "5s" -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false - - -# # Read metrics from one or many redis servers -# [[inputs.redis]] -# ## specify servers via a url matching: -# ## [protocol://][:password]@address[:port] -# ## e.g. -# ## tcp://localhost:6379 -# ## tcp://:password@192.168.99.100 -# ## unix:///var/run/redis.sock -# ## -# ## If no servers are specified, then localhost is used as the host. -# ## If no port is specified, 6379 is used -# servers = ["tcp://localhost:6379"] -# -# ## Optional. Specify redis commands to retrieve values -# # [[inputs.redis.commands]] -# # # The command to run where each argument is a separate element -# # command = ["get", "sample-key"] -# # # The field to store the result in -# # field = "sample-key-value" -# # # The type of the result -# # # Can be "string", "integer", or "float" -# # type = "string" -# -# ## specify server password -# # password = "s#cr@t%" -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = true - - -# # Read metrics from one or many redis-sentinel servers -# [[inputs.redis_sentinel]] -# ## specify servers via a url matching: -# ## [protocol://][:password]@address[:port] -# ## e.g. -# ## tcp://localhost:26379 -# ## tcp://:password@192.168.99.100 -# ## unix:///var/run/redis-sentinel.sock -# ## -# ## If no servers are specified, then localhost is used as the host. -# ## If no port is specified, 26379 is used -# # servers = ["tcp://localhost:26379"] -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = true - - -# # Read metrics from one or many RethinkDB servers -# [[inputs.rethinkdb]] -# ## An array of URI to gather stats about. Specify an ip or hostname -# ## with optional port add password. ie, -# ## rethinkdb://user:auth_key@10.10.3.30:28105, -# ## rethinkdb://10.10.3.33:18832, -# ## 10.0.0.1:10000, etc. -# servers = ["127.0.0.1:28015"] -# ## -# ## If you use actual rethinkdb of > 2.3.0 with username/password authorization, -# ## protocol have to be named "rethinkdb2" - it will use 1_0 H. -# # servers = ["rethinkdb2://username:password@127.0.0.1:28015"] -# ## -# ## If you use older versions of rethinkdb (<2.2) with auth_key, protocol -# ## have to be named "rethinkdb". -# # servers = ["rethinkdb://username:auth_key@127.0.0.1:28015"] - - -# # Read metrics one or many Riak servers -# [[inputs.riak]] -# # Specify a list of one or more riak http servers -# servers = ["http://localhost:8098"] - - -# # Read API usage and limits for a Salesforce organisation -# [[inputs.salesforce]] -# ## specify your credentials -# ## -# username = "your_username" -# password = "your_password" -# ## -# ## (optional) security token -# # security_token = "your_security_token" -# ## -# ## (optional) environment type (sandbox or production) -# ## default is: production -# ## -# # environment = "production" -# ## -# ## (optional) API version (default: "39.0") -# ## -# # version = "39.0" - - -# # Monitor sensors, requires lm-sensors package -# [[inputs.sensors]] -# ## Remove numbers from field names. -# ## If true, a field name like 'temp1_input' will be changed to 'temp_input'. -# # remove_numbers = true -# -# ## Timeout is the maximum amount of time that the sensors command can run. -# # timeout = "5s" - - -# # Read metrics from storage devices supporting S.M.A.R.T. -# [[inputs.smart]] -# ## Optionally specify the path to the smartctl executable -# # path_smartctl = "/usr/bin/smartctl" -# -# ## Optionally specify the path to the nvme-cli executable -# # path_nvme = "/usr/bin/nvme" -# -# ## Optionally specify if vendor specific attributes should be propagated for NVMe disk case -# ## ["auto-on"] - automatically find and enable additional vendor specific disk info -# ## ["vendor1", "vendor2", ...] - e.g. "Intel" enable additional Intel specific disk info -# # enable_extensions = ["auto-on"] -# -# ## On most platforms used cli utilities requires root access. -# ## Setting 'use_sudo' to true will make use of sudo to run smartctl or nvme-cli. -# ## Sudo must be configured to allow the telegraf user to run smartctl or nvme-cli -# ## without a password. -# # use_sudo = false -# -# ## Skip checking disks in this power mode. Defaults to -# ## "standby" to not wake up disks that have stopped rotating. -# ## See --nocheck in the man pages for smartctl. -# ## smartctl version 5.41 and 5.42 have faulty detection of -# ## power mode and might require changing this value to -# ## "never" depending on your disks. -# # nocheck = "standby" -# -# ## Gather all returned S.M.A.R.T. attribute metrics and the detailed -# ## information from each drive into the 'smart_attribute' measurement. -# # attributes = false -# -# ## Optionally specify devices to exclude from reporting if disks auto-discovery is performed. -# # excludes = [ "/dev/pass6" ] -# -# ## Optionally specify devices and device type, if unset -# ## a scan (smartctl --scan and smartctl --scan -d nvme) for S.M.A.R.T. devices will be done -# ## and all found will be included except for the excluded in excludes. -# # devices = [ "/dev/ada0 -d atacam", "/dev/nvme0"] -# -# ## Timeout for the cli command to complete. -# # timeout = "30s" -# -# ## Optionally call smartctl and nvme-cli with a specific concurrency policy. -# ## By default, smartctl and nvme-cli are called in separate threads (goroutines) to gather disk attributes. -# ## Some devices (e.g. disks in RAID arrays) may have access limitations that require sequential reading of -# ## SMART data - one individual array drive at the time. In such case please set this configuration option -# ## to "sequential" to get readings for all drives. -# ## valid options: concurrent, sequential -# # read_method = "concurrent" - - -# # Retrieves SNMP values from remote agents -# [[inputs.snmp]] -# ## Agent addresses to retrieve values from. -# ## format: agents = [":"] -# ## scheme: optional, either udp, udp4, udp6, tcp, tcp4, tcp6. -# ## default is udp -# ## port: optional -# ## example: agents = ["udp://127.0.0.1:161"] -# ## agents = ["tcp://127.0.0.1:161"] -# ## agents = ["udp4://v4only-snmp-agent"] -# agents = ["udp://127.0.0.1:161"] -# -# ## Timeout for each request. -# # timeout = "5s" -# -# ## SNMP version; can be 1, 2, or 3. -# # version = 2 -# -# ## Path to mib files -# ## Used by the gosmi translator. -# ## To add paths when translating with netsnmp, use the MIBDIRS environment variable -# # path = ["/usr/share/snmp/mibs"] -# -# ## Agent host tag; the tag used to reference the source host -# # agent_host_tag = "agent_host" -# -# ## SNMP community string. -# # community = "public" -# -# ## Number of retries to attempt. -# # retries = 3 -# -# ## The GETBULK max-repetitions parameter. -# # max_repetitions = 10 -# -# ## SNMPv3 authentication and encryption options. -# ## -# ## Security Name. -# # sec_name = "myuser" -# ## Authentication protocol; one of "MD5", "SHA", "SHA224", "SHA256", "SHA384", "SHA512" or "". -# # auth_protocol = "MD5" -# ## Authentication password. -# # auth_password = "pass" -# ## Security Level; one of "noAuthNoPriv", "authNoPriv", or "authPriv". -# # sec_level = "authNoPriv" -# ## Context Name. -# # context_name = "" -# ## Privacy protocol used for encrypted messages; one of "DES", "AES" or "". -# # priv_protocol = "" -# ## Privacy password used for encrypted messages. -# # priv_password = "" -# -# ## Add fields and tables defining the variables you wish to collect. This -# ## example collects the system uptime and interface variables. Reference the -# ## full plugin documentation for configuration details. - - -# # DEPRECATED! PLEASE USE inputs.snmp INSTEAD. -# [[inputs.snmp_legacy]] -# ## DEPRECATED: The 'snmp_legacy' plugin is deprecated in version 1.0.0, use 'inputs.snmp' instead. -# ## Use 'oids.txt' file to translate oids to names -# ## To generate 'oids.txt' you need to run: -# ## snmptranslate -m all -Tz -On | sed -e 's/"//g' > /tmp/oids.txt -# ## Or if you have an other MIB folder with custom MIBs -# ## snmptranslate -M /mycustommibfolder -Tz -On -m all | sed -e 's/"//g' > oids.txt -# snmptranslate_file = "/tmp/oids.txt" -# [[inputs.snmp.host]] -# address = "192.168.2.2:161" -# # SNMP community -# community = "public" # default public -# # SNMP version (1, 2 or 3) -# # Version 3 not supported yet -# version = 2 # default 2 -# # SNMP response timeout -# timeout = 2.0 # default 2.0 -# # SNMP request retries -# retries = 2 # default 2 -# # Which get/bulk do you want to collect for this host -# collect = ["mybulk", "sysservices", "sysdescr"] -# # Simple list of OIDs to get, in addition to "collect" -# get_oids = [] -# -# [[inputs.snmp.host]] -# address = "192.168.2.3:161" -# community = "public" -# version = 2 -# timeout = 2.0 -# retries = 2 -# collect = ["mybulk"] -# get_oids = [ -# "ifNumber", -# ".1.3.6.1.2.1.1.3.0", -# ] -# -# [[inputs.snmp.get]] -# name = "ifnumber" -# oid = "ifNumber" -# -# [[inputs.snmp.get]] -# name = "interface_speed" -# oid = "ifSpeed" -# instance = "0" -# -# [[inputs.snmp.get]] -# name = "sysuptime" -# oid = ".1.3.6.1.2.1.1.3.0" -# unit = "second" -# -# [[inputs.snmp.bulk]] -# name = "mybulk" -# max_repetition = 127 -# oid = ".1.3.6.1.2.1.1" -# -# [[inputs.snmp.bulk]] -# name = "ifoutoctets" -# max_repetition = 127 -# oid = "ifOutOctets" -# -# [[inputs.snmp.host]] -# address = "192.168.2.13:161" -# #address = "127.0.0.1:161" -# community = "public" -# version = 2 -# timeout = 2.0 -# retries = 2 -# #collect = ["mybulk", "sysservices", "sysdescr", "systype"] -# collect = ["sysuptime" ] -# [[inputs.snmp.host.table]] -# name = "iftable3" -# include_instances = ["enp5s0", "eth1"] -# -# # SNMP TABLEs -# # table without mapping neither subtables -# [[inputs.snmp.table]] -# name = "iftable1" -# oid = ".1.3.6.1.2.1.31.1.1.1" -# -# # table without mapping but with subtables -# [[inputs.snmp.table]] -# name = "iftable2" -# oid = ".1.3.6.1.2.1.31.1.1.1" -# sub_tables = [".1.3.6.1.2.1.2.2.1.13"] -# -# # table with mapping but without subtables -# [[inputs.snmp.table]] -# name = "iftable3" -# oid = ".1.3.6.1.2.1.31.1.1.1" -# # if empty. get all instances -# mapping_table = ".1.3.6.1.2.1.31.1.1.1.1" -# # if empty, get all subtables -# -# # table with both mapping and subtables -# [[inputs.snmp.table]] -# name = "iftable4" -# oid = ".1.3.6.1.2.1.31.1.1.1" -# # if empty get all instances -# mapping_table = ".1.3.6.1.2.1.31.1.1.1.1" -# # if empty get all subtables -# # sub_tables could be not "real subtables" -# sub_tables=[".1.3.6.1.2.1.2.2.1.13", "bytes_recv", "bytes_send"] - - -# # Gather indicators from established connections, using iproute2's `ss` command. -# [[inputs.socketstat]] -# ## ss can display information about tcp, udp, raw, unix, packet, dccp and sctp sockets -# ## List of protocol types to collect -# # protocols = [ "tcp", "udp" ] -# ## The default timeout of 1s for ss execution can be overridden here: -# # timeout = "1s" - - -# # Read stats from one or more Solr servers or cores -# [[inputs.solr]] -# ## specify a list of one or more Solr servers -# servers = ["http://localhost:8983"] -# -# ## specify a list of one or more Solr cores (default - all) -# # cores = ["main"] -# -# ## Optional HTTP Basic Auth Credentials -# # username = "username" -# # password = "pa$$word" - - -# # Gather timeseries from Google Cloud Platform v3 monitoring API -# [[inputs.stackdriver]] -# ## GCP Project -# project = "erudite-bloom-151019" -# -# ## Include timeseries that start with the given metric type. -# metric_type_prefix_include = [ -# "compute.googleapis.com/", -# ] -# -# ## Exclude timeseries that start with the given metric type. -# # metric_type_prefix_exclude = [] -# -# ## Many metrics are updated once per minute; it is recommended to override -# ## the agent level interval with a value of 1m or greater. -# interval = "1m" -# -# ## Maximum number of API calls to make per second. The quota for accounts -# ## varies, it can be viewed on the API dashboard: -# ## https://cloud.google.com/monitoring/quotas#quotas_and_limits -# # rate_limit = 14 -# -# ## The delay and window options control the number of points selected on -# ## each gather. When set, metrics are gathered between: -# ## start: now() - delay - window -# ## end: now() - delay -# # -# ## Collection delay; if set too low metrics may not yet be available. -# # delay = "5m" -# # -# ## If unset, the window will start at 1m and be updated dynamically to span -# ## the time between calls (approximately the length of the plugin interval). -# # window = "1m" -# -# ## TTL for cached list of metric types. This is the maximum amount of time -# ## it may take to discover new metrics. -# # cache_ttl = "1h" -# -# ## If true, raw bucket counts are collected for distribution value types. -# ## For a more lightweight collection, you may wish to disable and use -# ## distribution_aggregation_aligners instead. -# # gather_raw_distribution_buckets = true -# -# ## Aggregate functions to be used for metrics whose value type is -# ## distribution. These aggregate values are recorded in in addition to raw -# ## bucket counts; if they are enabled. -# ## -# ## For a list of aligner strings see: -# ## https://cloud.google.com/monitoring/api/ref_v3/rpc/google.monitoring.v3#aligner -# # distribution_aggregation_aligners = [ -# # "ALIGN_PERCENTILE_99", -# # "ALIGN_PERCENTILE_95", -# # "ALIGN_PERCENTILE_50", -# # ] -# -# ## Filters can be added to reduce the number of time series matched. All -# ## functions are supported: starts_with, ends_with, has_substring, and -# ## one_of. Only the '=' operator is supported. -# ## -# ## The logical operators when combining filters are defined statically using -# ## the following values: -# ## filter ::= {AND } -# ## resource_labels ::= {OR } -# ## metric_labels ::= {OR } -# ## -# ## For more details, see https://cloud.google.com/monitoring/api/v3/filters -# # -# ## Resource labels refine the time series selection with the following expression: -# ## resource.labels. = -# # [[inputs.stackdriver.filter.resource_labels]] -# # key = "instance_name" -# # value = 'starts_with("localhost")' -# # -# ## Metric labels refine the time series selection with the following expression: -# ## metric.labels. = -# # [[inputs.stackdriver.filter.metric_labels]] -# # key = "device_name" -# # value = 'one_of("sda", "sdb")' - - -# # Get synproxy counter statistics from procfs -# [[inputs.synproxy]] -# # no configuration - - -# # Sysstat metrics collector -# [[inputs.sysstat]] -# ## Path to the sadc command. -# # -# ## Common Defaults: -# ## Debian/Ubuntu: /usr/lib/sysstat/sadc -# ## Arch: /usr/lib/sa/sadc -# ## RHEL/CentOS: /usr/lib64/sa/sadc -# sadc_path = "/usr/lib/sa/sadc" # required -# -# ## Path to the sadf command, if it is not in PATH -# # sadf_path = "/usr/bin/sadf" -# -# ## Activities is a list of activities, that are passed as argument to the -# ## sadc collector utility (e.g: DISK, SNMP etc...) -# ## The more activities that are added, the more data is collected. -# # activities = ["DISK"] -# -# ## Group metrics to measurements. -# ## -# ## If group is false each metric will be prefixed with a description -# ## and represents itself a measurement. -# ## -# ## If Group is true, corresponding metrics are grouped to a single measurement. -# # group = true -# -# ## Options for the sadf command. The values on the left represent the sadf -# ## options and the values on the right their description (which are used for -# ## grouping and prefixing metrics). -# ## -# ## Run 'sar -h' or 'man sar' to find out the supported options for your -# ## sysstat version. -# [inputs.sysstat.options] -# -C = "cpu" -# -B = "paging" -# -b = "io" -# -d = "disk" # requires DISK activity -# "-n ALL" = "network" -# "-P ALL" = "per_cpu" -# -q = "queue" -# -R = "mem" -# -r = "mem_util" -# -S = "swap_util" -# -u = "cpu_util" -# -v = "inode" -# -W = "swap" -# -w = "task" -# # -H = "hugepages" # only available for newer linux distributions -# # "-I ALL" = "interrupts" # requires INT activity -# -# ## Device tags can be used to add additional tags for devices. -# ## For example the configuration below adds a tag vg with value rootvg for -# ## all metrics with sda devices. -# # [[inputs.sysstat.device_tags.sda]] -# # vg = "rootvg" - - -# # Gather systemd units state -# [[inputs.systemd_units]] -# ## Set timeout for systemctl execution -# # timeout = "1s" -# # -# ## Filter for a specific unit type, default is "service", other possible -# ## values are "socket", "target", "device", "mount", "automount", "swap", -# ## "timer", "path", "slice" and "scope ": -# # unittype = "service" -# # -# ## Filter for a specific pattern, default is "" (i.e. all), other possible -# ## values are valid pattern for systemctl, e.g. "a*" for all units with -# ## names starting with "a" -# # pattern = "" -# ## pattern = "telegraf* influxdb*" -# ## pattern = "a*" - - -# # Reads metrics from a Teamspeak 3 Server via ServerQuery -# [[inputs.teamspeak]] -# ## Server address for Teamspeak 3 ServerQuery -# # server = "127.0.0.1:10011" -# ## Username for ServerQuery -# username = "serverqueryuser" -# ## Password for ServerQuery -# password = "secret" -# ## Array of virtual servers -# # virtual_servers = [1] - - -# # Read metrics about temperature -# [[inputs.temp]] -# # no configuration - - -# # Read Tengine's basic status information (ngx_http_reqstat_module) -# [[inputs.tengine]] -# # An array of Tengine reqstat module URI to gather stats. -# urls = ["http://127.0.0.1/us"] -# -# # HTTP response timeout (default: 5s) -# # response_timeout = "5s" -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.cer" -# # tls_key = "/etc/telegraf/key.key" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false - - -# # Gather metrics from the Tomcat server status page. -# [[inputs.tomcat]] -# ## URL of the Tomcat server status -# # url = "http://127.0.0.1:8080/manager/status/all?XML=true" -# -# ## HTTP Basic Auth Credentials -# # username = "tomcat" -# # password = "s3cret" -# -# ## Request timeout -# # timeout = "5s" -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false - - -# # Inserts sine and cosine waves for demonstration purposes -# [[inputs.trig]] -# ## Set the amplitude -# amplitude = 10.0 - - -# # Read Twemproxy stats data -# [[inputs.twemproxy]] -# ## Twemproxy stats address and port (no scheme) -# addr = "localhost:22222" -# ## Monitor pool name -# pools = ["redis_pool", "mc_pool"] - - -# # A plugin to collect stats from the Unbound DNS resolver -# [[inputs.unbound]] -# ## Address of server to connect to, read from unbound conf default, optionally ':port' -# ## Will lookup IP if given a hostname -# server = "127.0.0.1:8953" -# -# ## If running as a restricted user you can prepend sudo for additional access: -# # use_sudo = false -# -# ## The default location of the unbound-control binary can be overridden with: -# # binary = "/usr/sbin/unbound-control" -# -# ## The default location of the unbound config file can be overridden with: -# # config_file = "/etc/unbound/unbound.conf" -# -# ## The default timeout of 1s can be overridden with: -# # timeout = "1s" -# -# ## When set to true, thread metrics are tagged with the thread id. -# ## -# ## The default is false for backwards compatibility, and will be changed to -# ## true in a future version. It is recommended to set to true on new -# ## deployments. -# thread_as_tag = false - - -# # Read uWSGI metrics. -# [[inputs.uwsgi]] -# ## List with urls of uWSGI Stats servers. URL must match pattern: -# ## scheme://address[:port] -# ## -# ## For example: -# ## servers = ["tcp://localhost:5050", "http://localhost:1717", "unix:///tmp/statsock"] -# servers = ["tcp://127.0.0.1:1717"] -# -# ## General connection timeout -# # timeout = "5s" - - -# # A plugin to collect stats from Varnish HTTP Cache -# [[inputs.varnish]] -# ## If running as a restricted user you can prepend sudo for additional access: -# #use_sudo = false -# -# ## The default location of the varnishstat binary can be overridden with: -# binary = "/usr/bin/varnishstat" -# -# ## Additional custom arguments for the varnishstat command -# # binary_args = ["-f", "MAIN.*"] -# -# ## The default location of the varnishadm binary can be overriden with: -# adm_binary = "/usr/bin/varnishadm" -# -# ## Custom arguments for the varnishadm command -# # adm_binary_args = [""] -# -# ## Metric version defaults to metric_version=1, use metric_version=2 for removal of nonactive vcls. -# metric_version = 1 -# -# ## Additional regexps to override builtin conversion of varnish metrics into telegraf metrics. -# ## Regexp group "_vcl" is used for extracting the VCL name. Metrics that contains nonactive VCL's are skipped. -# ## Regexp group "_field" overrides field name. Other named regexp groups are used as tags. -# # regexps = ['XCNT\.(?P<_vcl>[\w\-]*)\.(?P[\w\-.+]*)\.(?P<_field>[\w\-.+]*)\.val'] -# -# ## By default, telegraf gather stats for 3 metric points. -# ## Setting stats will override the defaults shown below. -# ## Glob matching can be used, ie, stats = ["MAIN.*"] -# ## stats may also be set to ["*"], which will collect all stats -# stats = ["MAIN.cache_hit", "MAIN.cache_miss", "MAIN.uptime"] -# -# ## Optional name for the varnish instance (or working directory) to query -# ## Usually append after -n in varnish cli -# # instance_name = instanceName -# -# ## Timeout for varnishstat command -# # timeout = "1s" - - -# # Read metrics from the Vault API -# [[inputs.vault]] -# ## URL for the Vault agent -# # url = "http://127.0.0.1:8200" -# -# ## Use Vault token for authorization. -# ## Vault token configuration is mandatory. -# ## If both are empty or both are set, an error is thrown. -# # token_file = "/path/to/auth/token" -# ## OR -# token = "s.CDDrgg5zPv5ssI0Z2P4qxJj2" -# -# ## Set response_timeout (default 5 seconds) -# # response_timeout = "5s" -# -# ## Optional TLS Config -# # tls_ca = /path/to/cafile -# # tls_cert = /path/to/certfile -# # tls_key = /path/to/keyfile - - -# # Collect Wireguard server interface and peer statistics -# [[inputs.wireguard]] -# ## Optional list of Wireguard device/interface names to query. -# ## If omitted, all Wireguard interfaces are queried. -# # devices = ["wg0"] - - -# # Monitor wifi signal strength and quality -# [[inputs.wireless]] -# ## Sets 'proc' directory path -# ## If not specified, then default is /proc -# # host_proc = "/proc" - - -# # Reads metrics from a SSL certificate -# [[inputs.x509_cert]] -# ## List certificate sources -# ## Prefix your entry with 'file://' if you intend to use relative paths -# sources = ["tcp://example.org:443", "https://influxdata.com:443", -# "udp://127.0.0.1:4433", "/etc/ssl/certs/ssl-cert-snakeoil.pem", -# "/etc/mycerts/*.mydomain.org.pem", "file:///path/to/*.pem"] -# -# ## Timeout for SSL connection -# # timeout = "5s" -# -# ## Pass a different name into the TLS request (Server Name Indication) -# ## example: server_name = "myhost.example.org" -# # server_name = "" -# -# ## Don't include root or intermediate certificates in output -# # exclude_root_certs = false -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" - - -# # Gathers Metrics From a Dell EMC XtremIO Storage Array's V3 API -# [[inputs.xtremio]] -# ## XtremIO User Interface Endpoint -# url = "https://xtremio.example.com/" # required -# -# ## Credentials -# username = "user1" -# password = "pass123" -# -# ## Metrics to collect from the XtremIO -# # collectors = ["bbus","clusters","ssds","volumes","xms"] -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use SSL but skip chain & host verification -# # insecure_skip_verify = false - - -# # Read metrics of ZFS from arcstats, zfetchstats, vdev_cache_stats, pools and datasets -# [[inputs.zfs]] -# ## ZFS kstat path. Ignored on FreeBSD -# ## If not specified, then default is: -# # kstatPath = "/proc/spl/kstat/zfs" -# -# ## By default, telegraf gather all zfs stats -# ## If not specified, then default is: -# # kstatMetrics = ["arcstats", "zfetchstats", "vdev_cache_stats"] -# ## For Linux, the default is: -# # kstatMetrics = ["abdstats", "arcstats", "dnodestats", "dbufcachestats", -# # "dmu_tx", "fm", "vdev_mirror_stats", "zfetchstats", "zil"] -# ## By default, don't gather zpool stats -# # poolMetrics = false -# ## By default, don't gather zdataset stats -# # datasetMetrics = false - - -# # Reads 'mntr' stats from one or many zookeeper servers -# [[inputs.zookeeper]] -# ## An array of address to gather stats about. Specify an ip or hostname -# ## with port. ie localhost:2181, 10.0.0.1:2181, etc. -# -# ## If no servers are specified, then localhost is used as the host. -# ## If no port is specified, 2181 is used -# servers = [":2181"] -# -# ## Timeout for metric collections from all servers. Minimum timeout is "1s". -# # timeout = "5s" -# -# ## Optional TLS Config -# # enable_tls = true -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## If false, skip chain & host verification -# # insecure_skip_verify = true - - -############################################################################### -# SERVICE INPUT PLUGINS # -############################################################################### - - -# # Pull Metric Statistics from Aliyun CMS -# [[inputs.aliyuncms]] -# ## Aliyun Credentials -# ## Credentials are loaded in the following order -# ## 1) Ram RoleArn credential -# ## 2) AccessKey STS token credential -# ## 3) AccessKey credential -# ## 4) Ecs Ram Role credential -# ## 5) RSA keypair credential -# ## 6) Environment variables credential -# ## 7) Instance metadata credential -# -# # access_key_id = "" -# # access_key_secret = "" -# # access_key_sts_token = "" -# # role_arn = "" -# # role_session_name = "" -# # private_key = "" -# # public_key_id = "" -# # role_name = "" -# -# ## Specify the ali cloud region list to be queried for metrics and objects discovery -# ## If not set, all supported regions (see below) would be covered, it can provide a significant load on API, so the recommendation here -# ## is to limit the list as much as possible. Allowed values: https://www.alibabacloud.com/help/zh/doc-detail/40654.htm -# ## Default supported regions are: -# ## 21 items: cn-qingdao,cn-beijing,cn-zhangjiakou,cn-huhehaote,cn-hangzhou,cn-shanghai,cn-shenzhen, -# ## cn-heyuan,cn-chengdu,cn-hongkong,ap-southeast-1,ap-southeast-2,ap-southeast-3,ap-southeast-5, -# ## ap-south-1,ap-northeast-1,us-west-1,us-east-1,eu-central-1,eu-west-1,me-east-1 -# ## -# ## From discovery perspective it set the scope for object discovery, the discovered info can be used to enrich -# ## the metrics with objects attributes/tags. Discovery is supported not for all projects (if not supported, then -# ## it will be reported on the start - for example for 'acs_cdn' project: -# ## 'E! [inputs.aliyuncms] Discovery tool is not activated: no discovery support for project "acs_cdn"' ) -# ## Currently, discovery supported for the following projects: -# ## - acs_ecs_dashboard -# ## - acs_rds_dashboard -# ## - acs_slb_dashboard -# ## - acs_vpc_eip -# regions = ["cn-hongkong"] -# -# # The minimum period for AliyunCMS metrics is 1 minute (60s). However not all -# # metrics are made available to the 1 minute period. Some are collected at -# # 3 minute, 5 minute, or larger intervals. -# # See: https://help.aliyun.com/document_detail/51936.html?spm=a2c4g.11186623.2.18.2bc1750eeOw1Pv -# # Note that if a period is configured that is smaller than the minimum for a -# # particular metric, that metric will not be returned by the Aliyun OpenAPI -# # and will not be collected by Telegraf. -# # -# ## Requested AliyunCMS aggregation Period (required - must be a multiple of 60s) -# period = "5m" -# -# ## Collection Delay (required - must account for metrics availability via AliyunCMS API) -# delay = "1m" -# -# ## Recommended: use metric 'interval' that is a multiple of 'period' to avoid -# ## gaps or overlap in pulled data -# interval = "5m" -# -# ## Metric Statistic Project (required) -# project = "acs_slb_dashboard" -# -# ## Maximum requests per second, default value is 200 -# ratelimit = 200 -# -# ## How often the discovery API call executed (default 1m) -# #discovery_interval = "1m" -# -# ## Metrics to Pull (Required) -# [[inputs.aliyuncms.metrics]] -# ## Metrics names to be requested, -# ## described here (per project): https://help.aliyun.com/document_detail/28619.html?spm=a2c4g.11186623.6.690.1938ad41wg8QSq -# names = ["InstanceActiveConnection", "InstanceNewConnection"] -# -# ## Dimension filters for Metric (these are optional). -# ## This allows to get additional metric dimension. If dimension is not specified it can be returned or -# ## the data can be aggregated - it depends on particular metric, you can find details here: https://help.aliyun.com/document_detail/28619.html?spm=a2c4g.11186623.6.690.1938ad41wg8QSq -# ## -# ## Note, that by default dimension filter includes the list of discovered objects in scope (if discovery is enabled) -# ## Values specified here would be added into the list of discovered objects. -# ## You can specify either single dimension: -# #dimensions = '{"instanceId": "p-example"}' -# -# ## Or you can specify several dimensions at once: -# #dimensions = '[{"instanceId": "p-example"},{"instanceId": "q-example"}]' -# -# ## Enrichment tags, can be added from discovery (if supported) -# ## Notation is : -# ## To figure out which fields are available, consult the Describe API per project. -# ## For example, for SLB: https://api.aliyun.com/#/?product=Slb&version=2014-05-15&api=DescribeLoadBalancers¶ms={}&tab=MOCK&lang=GO -# #tag_query_path = [ -# # "address:Address", -# # "name:LoadBalancerName", -# # "cluster_owner:Tags.Tag[?TagKey=='cs.cluster.name'].TagValue | [0]" -# # ] -# ## The following tags added by default: regionId (if discovery enabled), userId, instanceId. -# -# ## Allow metrics without discovery data, if discovery is enabled. If set to true, then metric without discovery -# ## data would be emitted, otherwise dropped. This cane be of help, in case debugging dimension filters, or partial coverage -# ## of discovery scope vs monitoring scope -# #allow_dps_without_discovery = false - - -# # AMQP consumer plugin -# [[inputs.amqp_consumer]] -# ## Brokers to consume from. If multiple brokers are specified a random broker -# ## will be selected anytime a connection is established. This can be -# ## helpful for load balancing when not using a dedicated load balancer. -# brokers = ["amqp://localhost:5672/influxdb"] -# -# ## Authentication credentials for the PLAIN auth_method. -# # username = "" -# # password = "" -# -# ## Name of the exchange to declare. If unset, no exchange will be declared. -# exchange = "telegraf" -# -# ## Exchange type; common types are "direct", "fanout", "topic", "header", "x-consistent-hash". -# # exchange_type = "topic" -# -# ## If true, exchange will be passively declared. -# # exchange_passive = false -# -# ## Exchange durability can be either "transient" or "durable". -# # exchange_durability = "durable" -# -# ## Additional exchange arguments. -# # exchange_arguments = { } -# # exchange_arguments = {"hash_property" = "timestamp"} -# -# ## AMQP queue name. -# queue = "telegraf" -# -# ## AMQP queue durability can be "transient" or "durable". -# queue_durability = "durable" -# -# ## If true, queue will be passively declared. -# # queue_passive = false -# -# ## A binding between the exchange and queue using this binding key is -# ## created. If unset, no binding is created. -# binding_key = "#" -# -# ## Maximum number of messages server should give to the worker. -# # prefetch_count = 50 -# -# ## Maximum messages to read from the broker that have not been written by an -# ## output. For best throughput set based on the number of metrics within -# ## each message and the size of the output's metric_batch_size. -# ## -# ## For example, if each message from the queue contains 10 metrics and the -# ## output metric_batch_size is 1000, setting this to 100 will ensure that a -# ## full batch is collected and the write is triggered immediately without -# ## waiting until the next flush_interval. -# # max_undelivered_messages = 1000 -# -# ## Auth method. PLAIN and EXTERNAL are supported -# ## Using EXTERNAL requires enabling the rabbitmq_auth_mechanism_ssl plugin as -# ## described here: https://www.rabbitmq.com/plugins.html -# # auth_method = "PLAIN" -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false -# -# ## Content encoding for message payloads, can be set to "gzip" to or -# ## "identity" to apply no encoding. -# # content_encoding = "identity" -# -# ## Data format to consume. -# ## Each data format has its own unique set of configuration options, read -# ## more about them here: -# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md -# data_format = "influx" - - -# # Read Cassandra metrics through Jolokia -# [[inputs.cassandra]] -# ## DEPRECATED: The 'cassandra' plugin is deprecated in version 1.7.0, use 'inputs.jolokia2' with the 'cassandra.conf' example configuration instead. -# ## DEPRECATED: The cassandra plugin has been deprecated. Please use the -# ## jolokia2 plugin instead. -# ## -# ## see https://github.com/influxdata/telegraf/tree/master/plugins/inputs/jolokia2 -# -# context = "/jolokia/read" -# ## List of cassandra servers exposing jolokia read service -# servers = ["myuser:mypassword@10.10.10.1:8778","10.10.10.2:8778",":8778"] -# ## List of metrics collected on above servers -# ## Each metric consists of a jmx path. -# ## This will collect all heap memory usage metrics from the jvm and -# ## ReadLatency metrics for all keyspaces and tables. -# ## "type=Table" in the query works with Cassandra3.0. Older versions might -# ## need to use "type=ColumnFamily" -# metrics = [ -# "/java.lang:type=Memory/HeapMemoryUsage", -# "/org.apache.cassandra.metrics:type=Table,keyspace=*,scope=*,name=ReadLatency" -# ] - - -# # Cisco model-driven telemetry (MDT) input plugin for IOS XR, IOS XE and NX-OS platforms -# [[inputs.cisco_telemetry_mdt]] -# ## Telemetry transport can be "tcp" or "grpc". TLS is only supported when -# ## using the grpc transport. -# transport = "grpc" -# -# ## Address and port to host telemetry listener -# service_address = ":57000" -# -# ## Enable TLS; grpc transport only. -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# -# ## Enable TLS client authentication and define allowed CA certificates; grpc -# ## transport only. -# # tls_allowed_cacerts = ["/etc/telegraf/clientca.pem"] -# -# ## Define (for certain nested telemetry measurements with embedded tags) which fields are tags -# # embedded_tags = ["Cisco-IOS-XR-qos-ma-oper:qos/interface-table/interface/input/service-policy-names/service-policy-instance/statistics/class-stats/class-name"] -# -# ## Define aliases to map telemetry encoding paths to simple measurement names -# [inputs.cisco_telemetry_mdt.aliases] -# ifstats = "ietf-interfaces:interfaces-state/interface/statistics" -# ##Define Property Xformation, please refer README and https://pubhub.devnetcloud.com/media/dme-docs-9-3-3/docs/appendix/ for Model details. -# [inputs.cisco_telemetry_mdt.dmes] -# ModTs = "ignore" -# CreateTs = "ignore" - - -# # Read metrics from one or many ClickHouse servers -# [[inputs.clickhouse]] -# ## Username for authorization on ClickHouse server -# ## example: username = "default" -# username = "default" -# -# ## Password for authorization on ClickHouse server -# ## example: password = "super_secret" -# -# ## HTTP(s) timeout while getting metrics values -# ## The timeout includes connection time, any redirects, and reading the response body. -# ## example: timeout = 1s -# # timeout = 5s -# -# ## List of servers for metrics scraping -# ## metrics scrape via HTTP(s) clickhouse interface -# ## https://clickhouse.tech/docs/en/interfaces/http/ -# ## example: servers = ["http://127.0.0.1:8123","https://custom-server.mdb.yandexcloud.net"] -# servers = ["http://127.0.0.1:8123"] -# -# ## If "auto_discovery"" is "true" plugin tries to connect to all servers available in the cluster -# ## with using same "user:password" described in "user" and "password" parameters -# ## and get this server hostname list from "system.clusters" table -# ## see -# ## - https://clickhouse.tech/docs/en/operations/system_tables/#system-clusters -# ## - https://clickhouse.tech/docs/en/operations/server_settings/settings/#server_settings_remote_servers -# ## - https://clickhouse.tech/docs/en/operations/table_engines/distributed/ -# ## - https://clickhouse.tech/docs/en/operations/table_engines/replication/#creating-replicated-tables -# ## example: auto_discovery = false -# # auto_discovery = true -# -# ## Filter cluster names in "system.clusters" when "auto_discovery" is "true" -# ## when this filter present then "WHERE cluster IN (...)" filter will apply -# ## please use only full cluster names here, regexp and glob filters is not allowed -# ## for "/etc/clickhouse-server/config.d/remote.xml" -# ## -# ## -# ## -# ## -# ## clickhouse-ru-1.local9000 -# ## clickhouse-ru-2.local9000 -# ## -# ## -# ## clickhouse-eu-1.local9000 -# ## clickhouse-eu-2.local9000 -# ## -# ## -# ## -# ## -# ## -# ## -# ## example: cluster_include = ["my-own-cluster"] -# # cluster_include = [] -# -# ## Filter cluster names in "system.clusters" when "auto_discovery" is "true" -# ## when this filter present then "WHERE cluster NOT IN (...)" filter will apply -# ## example: cluster_exclude = ["my-internal-not-discovered-cluster"] -# # cluster_exclude = [] -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false - - -# # Read metrics from Google PubSub -# [[inputs.cloud_pubsub]] -# ## Required. Name of Google Cloud Platform (GCP) Project that owns -# ## the given PubSub subscription. -# project = "my-project" -# -# ## Required. Name of PubSub subscription to ingest metrics from. -# subscription = "my-subscription" -# -# ## Required. Data format to consume. -# ## Each data format has its own unique set of configuration options. -# ## Read more about them here: -# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md -# data_format = "influx" -# -# ## Optional. Filepath for GCP credentials JSON file to authorize calls to -# ## PubSub APIs. If not set explicitly, Telegraf will attempt to use -# ## Application Default Credentials, which is preferred. -# # credentials_file = "path/to/my/creds.json" -# -# ## Optional. Number of seconds to wait before attempting to restart the -# ## PubSub subscription receiver after an unexpected error. -# ## If the streaming pull for a PubSub Subscription fails (receiver), -# ## the agent attempts to restart receiving messages after this many seconds. -# # retry_delay_seconds = 5 -# -# ## Optional. Maximum byte length of a message to consume. -# ## Larger messages are dropped with an error. If less than 0 or unspecified, -# ## treated as no limit. -# # max_message_len = 1000000 -# -# ## Optional. Maximum messages to read from PubSub that have not been written -# ## to an output. Defaults to 1000. -# ## For best throughput set based on the number of metrics within -# ## each message and the size of the output's metric_batch_size. -# ## -# ## For example, if each message contains 10 metrics and the output -# ## metric_batch_size is 1000, setting this to 100 will ensure that a -# ## full batch is collected and the write is triggered immediately without -# ## waiting until the next flush_interval. -# # max_undelivered_messages = 1000 -# -# ## The following are optional Subscription ReceiveSettings in PubSub. -# ## Read more about these values: -# ## https://godoc.org/cloud.google.com/go/pubsub#ReceiveSettings -# -# ## Optional. Maximum number of seconds for which a PubSub subscription -# ## should auto-extend the PubSub ACK deadline for each message. If less than -# ## 0, auto-extension is disabled. -# # max_extension = 0 -# -# ## Optional. Maximum number of unprocessed messages in PubSub -# ## (unacknowledged but not yet expired in PubSub). -# ## A value of 0 is treated as the default PubSub value. -# ## Negative values will be treated as unlimited. -# # max_outstanding_messages = 0 -# -# ## Optional. Maximum size in bytes of unprocessed messages in PubSub -# ## (unacknowledged but not yet expired in PubSub). -# ## A value of 0 is treated as the default PubSub value. -# ## Negative values will be treated as unlimited. -# # max_outstanding_bytes = 0 -# -# ## Optional. Max number of goroutines a PubSub Subscription receiver can spawn -# ## to pull messages from PubSub concurrently. This limit applies to each -# ## subscription separately and is treated as the PubSub default if less than -# ## 1. Note this setting does not limit the number of messages that can be -# ## processed concurrently (use "max_outstanding_messages" instead). -# # max_receiver_go_routines = 0 -# -# ## Optional. If true, Telegraf will attempt to base64 decode the -# ## PubSub message data before parsing -# # base64_data = false - - -# # Google Cloud Pub/Sub Push HTTP listener -# [[inputs.cloud_pubsub_push]] -# ## Address and port to host HTTP listener on -# service_address = ":8080" -# -# ## Application secret to verify messages originate from Cloud Pub/Sub -# # token = "" -# -# ## Path to listen to. -# # path = "/" -# -# ## Maximum duration before timing out read of the request -# # read_timeout = "10s" -# ## Maximum duration before timing out write of the response. This should be set to a value -# ## large enough that you can send at least 'metric_batch_size' number of messages within the -# ## duration. -# # write_timeout = "10s" -# -# ## Maximum allowed http request body size in bytes. -# ## 0 means to use the default of 524,288,00 bytes (500 mebibytes) -# # max_body_size = "500MB" -# -# ## Whether to add the pubsub metadata, such as message attributes and subscription as a tag. -# # add_meta = false -# -# ## Optional. Maximum messages to read from PubSub that have not been written -# ## to an output. Defaults to 1000. -# ## For best throughput set based on the number of metrics within -# ## each message and the size of the output's metric_batch_size. -# ## -# ## For example, if each message contains 10 metrics and the output -# ## metric_batch_size is 1000, setting this to 100 will ensure that a -# ## full batch is collected and the write is triggered immediately without -# ## waiting until the next flush_interval. -# # max_undelivered_messages = 1000 -# -# ## Set one or more allowed client CA certificate file names to -# ## enable mutually authenticated TLS connections -# # tls_allowed_cacerts = ["/etc/telegraf/clientca.pem"] -# -# ## Add service certificate and key -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# -# ## Data format to consume. -# ## Each data format has its own unique set of configuration options, read -# ## more about them here: -# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md -# data_format = "influx" - - -# # Ingests files in a directory and then moves them to a target directory. -# [[inputs.directory_monitor]] -# ## The directory to monitor and read files from. -# directory = "" -# # -# ## The directory to move finished files to. -# finished_directory = "" -# # -# ## The directory to move files to upon file error. -# ## If not provided, erroring files will stay in the monitored directory. -# # error_directory = "" -# # -# ## The amount of time a file is allowed to sit in the directory before it is picked up. -# ## This time can generally be low but if you choose to have a very large file written to the directory and it's potentially slow, -# ## set this higher so that the plugin will wait until the file is fully copied to the directory. -# # directory_duration_threshold = "50ms" -# # -# ## A list of the only file names to monitor, if necessary. Supports regex. If left blank, all files are ingested. -# # files_to_monitor = ["^.*\.csv"] -# # -# ## A list of files to ignore, if necessary. Supports regex. -# # files_to_ignore = [".DS_Store"] -# # -# ## Maximum lines of the file to process that have not yet be written by the -# ## output. For best throughput set to the size of the output's metric_buffer_limit. -# ## Warning: setting this number higher than the output's metric_buffer_limit can cause dropped metrics. -# # max_buffered_metrics = 10000 -# # -# ## The maximum amount of file paths to queue up for processing at once, before waiting until files are processed to find more files. -# ## Lowering this value will result in *slightly* less memory use, with a potential sacrifice in speed efficiency, if absolutely necessary. -# # file_queue_size = 100000 -# # -# ## Name a tag containing the name of the file the data was parsed from. Leave empty -# ## to disable. Cautious when file name variation is high, this can increase the cardinality -# ## significantly. Read more about cardinality here: -# ## https://docs.influxdata.com/influxdb/cloud/reference/glossary/#series-cardinality -# # file_tag = "" -# # -# ## The dataformat to be read from the files. -# ## Each data format has its own unique set of configuration options, read -# ## more about them here: -# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md -# ## NOTE: We currently only support parsing newline-delimited JSON. See the format here: https://github.com/ndjson/ndjson-spec -# data_format = "influx" - - -# # Read logging output from the Docker engine -# [[inputs.docker_log]] -# ## Docker Endpoint -# ## To use TCP, set endpoint = "tcp://[ip]:[port]" -# ## To use environment variables (ie, docker-machine), set endpoint = "ENV" -# # endpoint = "unix:///var/run/docker.sock" -# -# ## When true, container logs are read from the beginning; otherwise -# ## reading begins at the end of the log. -# # from_beginning = false -# -# ## Timeout for Docker API calls. -# # timeout = "5s" -# -# ## Containers to include and exclude. Globs accepted. -# ## Note that an empty array for both will include all containers -# # container_name_include = [] -# # container_name_exclude = [] -# -# ## Container states to include and exclude. Globs accepted. -# ## When empty only containers in the "running" state will be captured. -# # container_state_include = [] -# # container_state_exclude = [] -# -# ## docker labels to include and exclude as tags. Globs accepted. -# ## Note that an empty array for both will include all labels as tags -# # docker_label_include = [] -# # docker_label_exclude = [] -# -# ## Set the source tag for the metrics to the container ID hostname, eg first 12 chars -# source_tag = false -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false - - -# # Azure Event Hubs service input plugin -# [[inputs.eventhub_consumer]] -# ## The default behavior is to create a new Event Hub client from environment variables. -# ## This requires one of the following sets of environment variables to be set: -# ## -# ## 1) Expected Environment Variables: -# ## - "EVENTHUB_CONNECTION_STRING" -# ## -# ## 2) Expected Environment Variables: -# ## - "EVENTHUB_NAMESPACE" -# ## - "EVENTHUB_NAME" -# ## - "EVENTHUB_KEY_NAME" -# ## - "EVENTHUB_KEY_VALUE" -# -# ## 3) Expected Environment Variables: -# ## - "EVENTHUB_NAMESPACE" -# ## - "EVENTHUB_NAME" -# ## - "AZURE_TENANT_ID" -# ## - "AZURE_CLIENT_ID" -# ## - "AZURE_CLIENT_SECRET" -# -# ## Uncommenting the option below will create an Event Hub client based solely on the connection string. -# ## This can either be the associated environment variable or hard coded directly. -# ## If this option is uncommented, environment variables will be ignored. -# ## Connection string should contain EventHubName (EntityPath) -# # connection_string = "" -# -# ## Set persistence directory to a valid folder to use a file persister instead of an in-memory persister -# # persistence_dir = "" -# -# ## Change the default consumer group -# # consumer_group = "" -# -# ## By default the event hub receives all messages present on the broker, alternative modes can be set below. -# ## The timestamp should be in https://github.com/toml-lang/toml#offset-date-time format (RFC 3339). -# ## The 3 options below only apply if no valid persister is read from memory or file (e.g. first run). -# # from_timestamp = -# # latest = true -# -# ## Set a custom prefetch count for the receiver(s) -# # prefetch_count = 1000 -# -# ## Add an epoch to the receiver(s) -# # epoch = 0 -# -# ## Change to set a custom user agent, "telegraf" is used by default -# # user_agent = "telegraf" -# -# ## To consume from a specific partition, set the partition_ids option. -# ## An empty array will result in receiving from all partitions. -# # partition_ids = ["0","1"] -# -# ## Max undelivered messages -# # max_undelivered_messages = 1000 -# -# ## Set either option below to true to use a system property as timestamp. -# ## You have the choice between EnqueuedTime and IoTHubEnqueuedTime. -# ## It is recommended to use this setting when the data itself has no timestamp. -# # enqueued_time_as_ts = true -# # iot_hub_enqueued_time_as_ts = true -# -# ## Tags or fields to create from keys present in the application property bag. -# ## These could for example be set by message enrichments in Azure IoT Hub. -# # application_property_tags = [] -# # application_property_fields = [] -# -# ## Tag or field name to use for metadata -# ## By default all metadata is disabled -# # sequence_number_field = "SequenceNumber" -# # enqueued_time_field = "EnqueuedTime" -# # offset_field = "Offset" -# # partition_id_tag = "PartitionID" -# # partition_key_tag = "PartitionKey" -# # iot_hub_device_connection_id_tag = "IoTHubDeviceConnectionID" -# # iot_hub_auth_generation_id_tag = "IoTHubAuthGenerationID" -# # iot_hub_connection_auth_method_tag = "IoTHubConnectionAuthMethod" -# # iot_hub_connection_module_id_tag = "IoTHubConnectionModuleID" -# # iot_hub_enqueued_time_field = "IoTHubEnqueuedTime" -# -# ## Data format to consume. -# ## Each data format has its own unique set of configuration options, read -# ## more about them here: -# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md -# data_format = "influx" - - -# # Run executable as long-running input plugin -# [[inputs.execd]] -# ## Program to run as daemon -# command = ["telegraf-smartctl", "-d", "/dev/sda"] -# -# ## Define how the process is signaled on each collection interval. -# ## Valid values are: -# ## "none" : Do not signal anything. -# ## The process must output metrics by itself. -# ## "STDIN" : Send a newline on STDIN. -# ## "SIGHUP" : Send a HUP signal. Not available on Windows. -# ## "SIGUSR1" : Send a USR1 signal. Not available on Windows. -# ## "SIGUSR2" : Send a USR2 signal. Not available on Windows. -# signal = "none" -# -# ## Delay before the process is restarted after an unexpected termination -# restart_delay = "10s" -# -# ## Data format to consume. -# ## Each data format has its own unique set of configuration options, read -# ## more about them here: -# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md -# data_format = "influx" - - -# # gNMI telemetry input plugin -# [[inputs.gnmi]] -# ## Address and port of the gNMI GRPC server -# addresses = ["10.49.234.114:57777"] -# -# ## define credentials -# username = "cisco" -# password = "cisco" -# -# ## gNMI encoding requested (one of: "proto", "json", "json_ietf", "bytes") -# # encoding = "proto" -# -# ## redial in case of failures after -# redial = "10s" -# -# ## enable client-side TLS and define CA to authenticate the device -# # enable_tls = true -# # tls_ca = "/etc/telegraf/ca.pem" -# # insecure_skip_verify = true -# -# ## define client-side TLS certificate & key to authenticate to the device -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# -# ## gNMI subscription prefix (optional, can usually be left empty) -# ## See: https://github.com/openconfig/reference/blob/master/rpc/gnmi/gnmi-specification.md#222-paths -# # origin = "" -# # prefix = "" -# # target = "" -# -# ## Define additional aliases to map telemetry encoding paths to simple measurement names -# #[inputs.gnmi.aliases] -# # ifcounters = "openconfig:/interfaces/interface/state/counters" -# -# [[inputs.gnmi.subscription]] -# ## Name of the measurement that will be emitted -# name = "ifcounters" -# -# ## Origin and path of the subscription -# ## See: https://github.com/openconfig/reference/blob/master/rpc/gnmi/gnmi-specification.md#222-paths -# ## -# ## origin usually refers to a (YANG) data model implemented by the device -# ## and path to a specific substructure inside it that should be subscribed to (similar to an XPath) -# ## YANG models can be found e.g. here: https://github.com/YangModels/yang/tree/master/vendor/cisco/xr -# origin = "openconfig-interfaces" -# path = "/interfaces/interface/state/counters" -# -# # Subscription mode (one of: "target_defined", "sample", "on_change") and interval -# subscription_mode = "sample" -# sample_interval = "10s" -# -# ## Suppress redundant transmissions when measured values are unchanged -# # suppress_redundant = false -# -# ## If suppression is enabled, send updates at least every X seconds anyway -# # heartbeat_interval = "60s" -# -# #[[inputs.gnmi.subscription]] -# # name = "descr" -# # origin = "openconfig-interfaces" -# # path = "/interfaces/interface/state/description" -# # subscription_mode = "on_change" -# -# ## If tag_only is set, the subscription in question will be utilized to maintain a map of -# ## tags to apply to other measurements emitted by the plugin, by matching path keys -# ## All fields from the tag-only subscription will be applied as tags to other readings, -# ## in the format _. -# # tag_only = true - - -# # Accept metrics over InfluxDB 1.x HTTP API -# [[inputs.http_listener]] -# ## DEPRECATED: The 'http_listener' plugin is deprecated in version 1.9.0, has been renamed to 'influxdb_listener', use 'inputs.influxdb_listener' or 'inputs.http_listener_v2' instead. -# ## Address and port to host InfluxDB listener on -# service_address = ":8186" -# -# ## maximum duration before timing out read of the request -# read_timeout = "10s" -# ## maximum duration before timing out write of the response -# write_timeout = "10s" -# -# ## Maximum allowed HTTP request body size in bytes. -# ## 0 means to use the default of 32MiB. -# max_body_size = "32MiB" -# -# ## Optional tag name used to store the database. -# ## If the write has a database in the query string then it will be kept in this tag name. -# ## This tag can be used in downstream outputs. -# ## The default value of nothing means it will be off and the database will not be recorded. -# # database_tag = "" -# -# ## If set the retention policy specified in the write query will be added as -# ## the value of this tag name. -# # retention_policy_tag = "" -# -# ## Set one or more allowed client CA certificate file names to -# ## enable mutually authenticated TLS connections -# tls_allowed_cacerts = ["/etc/telegraf/clientca.pem"] -# -# ## Add service certificate and key -# tls_cert = "/etc/telegraf/cert.pem" -# tls_key = "/etc/telegraf/key.pem" -# -# ## Optional username and password to accept for HTTP basic authentication. -# ## You probably want to make sure you have TLS configured above for this. -# # basic_username = "foobar" -# # basic_password = "barfoo" -# -# ## Influx line protocol parser -# ## 'internal' is the default. 'upstream' is a newer parser that is faster -# ## and more memory efficient. -# # parser_type = "internal" - - -# # Generic HTTP write listener -# [[inputs.http_listener_v2]] -# ## Address and port to host HTTP listener on -# service_address = ":8080" -# -# ## Paths to listen to. -# # paths = ["/telegraf"] -# -# ## Save path as http_listener_v2_path tag if set to true -# # path_tag = false -# -# ## HTTP methods to accept. -# # methods = ["POST", "PUT"] -# -# ## maximum duration before timing out read of the request -# # read_timeout = "10s" -# ## maximum duration before timing out write of the response -# # write_timeout = "10s" -# -# ## Maximum allowed http request body size in bytes. -# ## 0 means to use the default of 524,288,000 bytes (500 mebibytes) -# # max_body_size = "500MB" -# -# ## Part of the request to consume. Available options are "body" and -# ## "query". -# # data_source = "body" -# -# ## Set one or more allowed client CA certificate file names to -# ## enable mutually authenticated TLS connections -# # tls_allowed_cacerts = ["/etc/telegraf/clientca.pem"] -# -# ## Add service certificate and key -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# -# ## Optional username and password to accept for HTTP basic authentication. -# ## You probably want to make sure you have TLS configured above for this. -# # basic_username = "foobar" -# # basic_password = "barfoo" -# -# ## Optional setting to map http headers into tags -# ## If the http header is not present on the request, no corresponding tag will be added -# ## If multiple instances of the http header are present, only the first value will be used -# # http_header_tags = {"HTTP_HEADER" = "TAG_NAME"} -# -# ## Data format to consume. -# ## Each data format has its own unique set of configuration options, read -# ## more about them here: -# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md -# data_format = "influx" - - -# # Accept metrics over InfluxDB 1.x HTTP API -# [[inputs.influxdb_listener]] -# ## Address and port to host InfluxDB listener on -# service_address = ":8186" -# -# ## maximum duration before timing out read of the request -# read_timeout = "10s" -# ## maximum duration before timing out write of the response -# write_timeout = "10s" -# -# ## Maximum allowed HTTP request body size in bytes. -# ## 0 means to use the default of 32MiB. -# max_body_size = "32MiB" -# -# ## Optional tag name used to store the database. -# ## If the write has a database in the query string then it will be kept in this tag name. -# ## This tag can be used in downstream outputs. -# ## The default value of nothing means it will be off and the database will not be recorded. -# # database_tag = "" -# -# ## If set the retention policy specified in the write query will be added as -# ## the value of this tag name. -# # retention_policy_tag = "" -# -# ## Set one or more allowed client CA certificate file names to -# ## enable mutually authenticated TLS connections -# tls_allowed_cacerts = ["/etc/telegraf/clientca.pem"] -# -# ## Add service certificate and key -# tls_cert = "/etc/telegraf/cert.pem" -# tls_key = "/etc/telegraf/key.pem" -# -# ## Optional username and password to accept for HTTP basic authentication. -# ## You probably want to make sure you have TLS configured above for this. -# # basic_username = "foobar" -# # basic_password = "barfoo" -# -# ## Influx line protocol parser -# ## 'internal' is the default. 'upstream' is a newer parser that is faster -# ## and more memory efficient. -# # parser_type = "internal" - - -# # Accept metrics over InfluxDB 2.x HTTP API -# [[inputs.influxdb_v2_listener]] -# ## Address and port to host InfluxDB listener on -# ## (Double check the port. Could be 9999 if using OSS Beta) -# service_address = ":8086" -# -# ## Maximum allowed HTTP request body size in bytes. -# ## 0 means to use the default of 32MiB. -# # max_body_size = "32MiB" -# -# ## Optional tag to determine the bucket. -# ## If the write has a bucket in the query string then it will be kept in this tag name. -# ## This tag can be used in downstream outputs. -# ## The default value of nothing means it will be off and the database will not be recorded. -# # bucket_tag = "" -# -# ## Set one or more allowed client CA certificate file names to -# ## enable mutually authenticated TLS connections -# # tls_allowed_cacerts = ["/etc/telegraf/clientca.pem"] -# -# ## Add service certificate and key -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# -# ## Optional token to accept for HTTP authentication. -# ## You probably want to make sure you have TLS configured above for this. -# # token = "some-long-shared-secret-token" -# -# ## Influx line protocol parser -# ## 'internal' is the default. 'upstream' is a newer parser that is faster -# ## and more memory efficient. -# # parser_type = "internal" - - -# # Intel Performance Monitoring Unit plugin exposes Intel PMU metrics available through Linux Perf subsystem -# [[inputs.intel_pmu]] -# ## List of filesystem locations of JSON files that contain PMU event definitions. -# event_definitions = ["/var/cache/pmu/GenuineIntel-6-55-4-core.json", "/var/cache/pmu/GenuineIntel-6-55-4-uncore.json"] -# -# ## List of core events measurement entities. There can be more than one core_events sections. -# [[inputs.intel_pmu.core_events]] -# ## List of events to be counted. Event names shall match names from event_definitions files. -# ## Single entry can contain name of the event (case insensitive) augmented with config options and perf modifiers. -# ## If absent, all core events from provided event_definitions are counted skipping unresolvable ones. -# events = ["INST_RETIRED.ANY", "CPU_CLK_UNHALTED.THREAD_ANY:config1=0x4043200000000k"] -# -# ## Limits the counting of events to core numbers specified. -# ## If absent, events are counted on all cores. -# ## Single "0", multiple "0,1,2" and range "0-2" notation is supported for each array element. -# ## example: cores = ["0,2", "4", "12-16"] -# cores = ["0"] -# -# ## Indicator that plugin shall attempt to run core_events.events as a single perf group. -# ## If absent or set to false, each event is counted individually. Defaults to false. -# ## This limits the number of events that can be measured to a maximum of available hardware counters per core. -# ## Could vary depending on type of event, use of fixed counters. -# # perf_group = false -# -# ## Optionally set a custom tag value that will be added to every measurement within this events group. -# ## Can be applied to any group of events, unrelated to perf_group setting. -# # events_tag = "" -# -# ## List of uncore event measurement entities. There can be more than one uncore_events sections. -# [[inputs.intel_pmu.uncore_events]] -# ## List of events to be counted. Event names shall match names from event_definitions files. -# ## Single entry can contain name of the event (case insensitive) augmented with config options and perf modifiers. -# ## If absent, all uncore events from provided event_definitions are counted skipping unresolvable ones. -# events = ["UNC_CHA_CLOCKTICKS", "UNC_CHA_TOR_OCCUPANCY.IA_MISS"] -# -# ## Limits the counting of events to specified sockets. -# ## If absent, events are counted on all sockets. -# ## Single "0", multiple "0,1" and range "0-1" notation is supported for each array element. -# ## example: sockets = ["0-2"] -# sockets = ["0"] -# -# ## Indicator that plugin shall provide an aggregated value for multiple units of same type distributed in an uncore. -# ## If absent or set to false, events for each unit are exposed as separate metric. Defaults to false. -# # aggregate_uncore_units = false -# -# ## Optionally set a custom tag value that will be added to every measurement within this events group. -# # events_tag = "" - - -# # Intel Resource Director Technology plugin -# [[inputs.intel_rdt]] -# ## Optionally set sampling interval to Nx100ms. -# ## This value is propagated to pqos tool. Interval format is defined by pqos itself. -# ## If not provided or provided 0, will be set to 10 = 10x100ms = 1s. -# # sampling_interval = "10" -# -# ## Optionally specify the path to pqos executable. -# ## If not provided, auto discovery will be performed. -# # pqos_path = "/usr/local/bin/pqos" -# -# ## Optionally specify if IPC and LLC_Misses metrics shouldn't be propagated. -# ## If not provided, default value is false. -# # shortened_metrics = false -# -# ## Specify the list of groups of CPU core(s) to be provided as pqos input. -# ## Mandatory if processes aren't set and forbidden if processes are specified. -# ## e.g. ["0-3", "4,5,6"] or ["1-3,4"] -# # cores = ["0-3"] -# -# ## Specify the list of processes for which Metrics will be collected. -# ## Mandatory if cores aren't set and forbidden if cores are specified. -# ## e.g. ["qemu", "pmd"] -# # processes = ["process"] -# -# ## Specify if the pqos process should be called with sudo. -# ## Mandatory if the telegraf process does not run as root. -# # use_sudo = false - - -# # Read JTI OpenConfig Telemetry from listed sensors -# [[inputs.jti_openconfig_telemetry]] -# ## List of device addresses to collect telemetry from -# servers = ["localhost:1883"] -# -# ## Authentication details. Username and password are must if device expects -# ## authentication. Client ID must be unique when connecting from multiple instances -# ## of telegraf to the same device -# username = "user" -# password = "pass" -# client_id = "telegraf" -# -# ## Frequency to get data -# sample_frequency = "1000ms" -# -# ## Sensors to subscribe for -# ## A identifier for each sensor can be provided in path by separating with space -# ## Else sensor path will be used as identifier -# ## When identifier is used, we can provide a list of space separated sensors. -# ## A single subscription will be created with all these sensors and data will -# ## be saved to measurement with this identifier name -# sensors = [ -# "/interfaces/", -# "collection /components/ /lldp", -# ] -# -# ## We allow specifying sensor group level reporting rate. To do this, specify the -# ## reporting rate in Duration at the beginning of sensor paths / collection -# ## name. For entries without reporting rate, we use configured sample frequency -# sensors = [ -# "1000ms customReporting /interfaces /lldp", -# "2000ms collection /components", -# "/interfaces", -# ] -# -# ## Optional TLS Config -# # enable_tls = true -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false -# -# ## Delay between retry attempts of failed RPC calls or streams. Defaults to 1000ms. -# ## Failed streams/calls will not be retried if 0 is provided -# retry_delay = "1000ms" -# -# ## To treat all string values as tags, set this to true -# str_as_tags = false - - -# # Read metrics from Kafka topics -# [[inputs.kafka_consumer]] -# ## Kafka brokers. -# brokers = ["localhost:9092"] -# -# ## Topics to consume. -# topics = ["telegraf"] -# -# ## When set this tag will be added to all metrics with the topic as the value. -# # topic_tag = "" -# -# ## Optional Client id -# # client_id = "Telegraf" -# -# ## Set the minimal supported Kafka version. Setting this enables the use of new -# ## Kafka features and APIs. Must be 0.10.2.0 or greater. -# ## ex: version = "1.1.0" -# # version = "" -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false -# -# ## SASL authentication credentials. These settings should typically be used -# ## with TLS encryption enabled -# # sasl_username = "kafka" -# # sasl_password = "secret" -# -# ## Optional SASL: -# ## one of: OAUTHBEARER, PLAIN, SCRAM-SHA-256, SCRAM-SHA-512, GSSAPI -# ## (defaults to PLAIN) -# # sasl_mechanism = "" -# -# ## used if sasl_mechanism is GSSAPI (experimental) -# # sasl_gssapi_service_name = "" -# # ## One of: KRB5_USER_AUTH and KRB5_KEYTAB_AUTH -# # sasl_gssapi_auth_type = "KRB5_USER_AUTH" -# # sasl_gssapi_kerberos_config_path = "/" -# # sasl_gssapi_realm = "realm" -# # sasl_gssapi_key_tab_path = "" -# # sasl_gssapi_disable_pafxfast = false -# -# ## used if sasl_mechanism is OAUTHBEARER (experimental) -# # sasl_access_token = "" -# -# ## SASL protocol version. When connecting to Azure EventHub set to 0. -# # sasl_version = 1 -# -# # Disable Kafka metadata full fetch -# # metadata_full = false -# -# ## Name of the consumer group. -# # consumer_group = "telegraf_metrics_consumers" -# -# ## Compression codec represents the various compression codecs recognized by -# ## Kafka in messages. -# ## 0 : None -# ## 1 : Gzip -# ## 2 : Snappy -# ## 3 : LZ4 -# ## 4 : ZSTD -# # compression_codec = 0 -# -# ## Initial offset position; one of "oldest" or "newest". -# # offset = "oldest" -# -# ## Consumer group partition assignment strategy; one of "range", "roundrobin" or "sticky". -# # balance_strategy = "range" -# -# ## Maximum length of a message to consume, in bytes (default 0/unlimited); -# ## larger messages are dropped -# max_message_len = 1000000 -# -# ## Maximum messages to read from the broker that have not been written by an -# ## output. For best throughput set based on the number of metrics within -# ## each message and the size of the output's metric_batch_size. -# ## -# ## For example, if each message from the queue contains 10 metrics and the -# ## output metric_batch_size is 1000, setting this to 100 will ensure that a -# ## full batch is collected and the write is triggered immediately without -# ## waiting until the next flush_interval. -# # max_undelivered_messages = 1000 -# -# ## Maximum amount of time the consumer should take to process messages. If -# ## the debug log prints messages from sarama about 'abandoning subscription -# ## to [topic] because consuming was taking too long', increase this value to -# ## longer than the time taken by the output plugin(s). -# ## -# ## Note that the effective timeout could be between 'max_processing_time' and -# ## '2 * max_processing_time'. -# # max_processing_time = "100ms" -# -# ## Data format to consume. -# ## Each data format has its own unique set of configuration options, read -# ## more about them here: -# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md -# data_format = "influx" - - -# # Read metrics from Kafka topic(s) -# [[inputs.kafka_consumer_legacy]] -# ## DEPRECATED: The 'kafka_consumer_legacy' plugin is deprecated in version 1.4.0, use 'inputs.kafka_consumer' instead, NOTE: 'kafka_consumer' only supports Kafka v0.8+. -# ## topic(s) to consume -# topics = ["telegraf"] -# -# ## an array of Zookeeper connection strings -# zookeeper_peers = ["localhost:2181"] -# -# ## Zookeeper Chroot -# zookeeper_chroot = "" -# -# ## the name of the consumer group -# consumer_group = "telegraf_metrics_consumers" -# -# ## Offset (must be either "oldest" or "newest") -# offset = "oldest" -# -# ## Data format to consume. -# ## Each data format has its own unique set of configuration options, read -# ## more about them here: -# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md -# data_format = "influx" -# -# ## Maximum length of a message to consume, in bytes (default 0/unlimited); -# ## larger messages are dropped -# max_message_len = 65536 - - -# # Configuration for the AWS Kinesis input. -# [[inputs.kinesis_consumer]] -# ## Amazon REGION of kinesis endpoint. -# region = "ap-southeast-2" -# -# ## Amazon Credentials -# ## Credentials are loaded in the following order -# ## 1) Web identity provider credentials via STS if role_arn and web_identity_token_file are specified -# ## 2) Assumed credentials via STS if role_arn is specified -# ## 3) explicit credentials from 'access_key' and 'secret_key' -# ## 4) shared profile from 'profile' -# ## 5) environment variables -# ## 6) shared credentials file -# ## 7) EC2 Instance Profile -# # access_key = "" -# # secret_key = "" -# # token = "" -# # role_arn = "" -# # web_identity_token_file = "" -# # role_session_name = "" -# # profile = "" -# # shared_credential_file = "" -# -# ## Endpoint to make request against, the correct endpoint is automatically -# ## determined and this option should only be set if you wish to override the -# ## default. -# ## ex: endpoint_url = "http://localhost:8000" -# # endpoint_url = "" -# -# ## Kinesis StreamName must exist prior to starting telegraf. -# streamname = "StreamName" -# -# ## Shard iterator type (only 'TRIM_HORIZON' and 'LATEST' currently supported) -# # shard_iterator_type = "TRIM_HORIZON" -# -# ## Maximum messages to read from the broker that have not been written by an -# ## output. For best throughput set based on the number of metrics within -# ## each message and the size of the output's metric_batch_size. -# ## -# ## For example, if each message from the queue contains 10 metrics and the -# ## output metric_batch_size is 1000, setting this to 100 will ensure that a -# ## full batch is collected and the write is triggered immediately without -# ## waiting until the next flush_interval. -# # max_undelivered_messages = 1000 -# -# ## Data format to consume. -# ## Each data format has its own unique set of configuration options, read -# ## more about them here: -# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md -# data_format = "influx" -# -# ## -# ## The content encoding of the data from kinesis -# ## If you are processing a cloudwatch logs kinesis stream then set this to "gzip" -# ## as AWS compresses cloudwatch log data before it is sent to kinesis (aws -# ## also base64 encodes the zip byte data before pushing to the stream. The base64 decoding -# ## is done automatically by the golang sdk, as data is read from kinesis) -# ## -# # content_encoding = "identity" -# -# ## Optional -# ## Configuration for a dynamodb checkpoint -# [inputs.kinesis_consumer.checkpoint_dynamodb] -# ## unique name for this consumer -# app_name = "default" -# table_name = "default" - - -# # Listener capable of handling KNX bus messages provided through a KNX-IP Interface. -# [[inputs.knx_listener]] -# ## Type of KNX-IP interface. -# ## Can be either "tunnel" or "router". -# # service_type = "tunnel" -# -# ## Address of the KNX-IP interface. -# service_address = "localhost:3671" -# -# ## Measurement definition(s) -# # [[inputs.knx_listener.measurement]] -# # ## Name of the measurement -# # name = "temperature" -# # ## Datapoint-Type (DPT) of the KNX messages -# # dpt = "9.001" -# # ## List of Group-Addresses (GAs) assigned to the measurement -# # addresses = ["5/5/1"] -# -# # [[inputs.knx_listener.measurement]] -# # name = "illumination" -# # dpt = "9.004" -# # addresses = ["5/5/3"] - - -# # Read metrics off Arista LANZ, via socket -# [[inputs.lanz]] -# ## URL to Arista LANZ endpoint -# servers = [ -# "tcp://127.0.0.1:50001" -# ] - - -# # Stream and parse log file(s). -# [[inputs.logparser]] -# ## DEPRECATED: The 'logparser' plugin is deprecated in version 1.15.0, use 'inputs.tail' with 'grok' data format instead. -# ## Log files to parse. -# ## These accept standard unix glob matching rules, but with the addition of -# ## ** as a "super asterisk". ie: -# ## /var/log/**.log -> recursively find all .log files in /var/log -# ## /var/log/*/*.log -> find all .log files with a parent dir in /var/log -# ## /var/log/apache.log -> only tail the apache log file -# files = ["/var/log/apache/access.log"] -# -# ## Read files that currently exist from the beginning. Files that are created -# ## while telegraf is running (and that match the "files" globs) will always -# ## be read from the beginning. -# from_beginning = false -# -# ## Method used to watch for file updates. Can be either "inotify" or "poll". -# # watch_method = "inotify" -# -# ## Parse logstash-style "grok" patterns: -# [inputs.logparser.grok] -# ## This is a list of patterns to check the given log file(s) for. -# ## Note that adding patterns here increases processing time. The most -# ## efficient configuration is to have one pattern per logparser. -# ## Other common built-in patterns are: -# ## %{COMMON_LOG_FORMAT} (plain apache & nginx access logs) -# ## %{COMBINED_LOG_FORMAT} (access logs + referrer & agent) -# patterns = ["%{COMBINED_LOG_FORMAT}"] -# -# ## Name of the outputted measurement name. -# measurement = "apache_access_log" -# -# ## Full path(s) to custom pattern files. -# custom_pattern_files = [] -# -# ## Custom patterns can also be defined here. Put one pattern per line. -# custom_patterns = ''' -# ''' -# -# ## Timezone allows you to provide an override for timestamps that -# ## don't already include an offset -# ## e.g. 04/06/2016 12:41:45 data one two 5.43µs -# ## -# ## Default: "" which renders UTC -# ## Options are as follows: -# ## 1. Local -- interpret based on machine localtime -# ## 2. "Canada/Eastern" -- Unix TZ values like those found in https://en.wikipedia.org/wiki/List_of_tz_database_time_zones -# ## 3. UTC -- or blank/unspecified, will return timestamp in UTC -# # timezone = "Canada/Eastern" -# -# ## When set to "disable", timestamp will not incremented if there is a -# ## duplicate. -# # unique_timestamp = "auto" - - -# # Read metrics from MQTT topic(s) [[inputs.mqtt_consumer]] -# ## Broker URLs for the MQTT server or cluster. To connect to multiple -# ## clusters or standalone servers, use a separate plugin instance. -# ## example: servers = ["tcp://localhost:1883"] -# ## servers = ["ssl://localhost:1883"] -# ## servers = ["ws://localhost:1883"] -# servers = ["tcp://127.0.0.1:1883"] -# ## Topics that will be subscribed to. -# topics = [ -# "telegraf/host01/cpu", -# "telegraf/+/mem", -# "sensors/#", -# ] -servers = ["tcp://192.168.26.1:1883"] # адрес vm с mqtt-брокером -topics = [ - "sensors/#" -] +servers = ["tcp://192.168.0.104:1883"] +topics = ["sensors/#"] data_format = "value" data_type = "float" -# # topic_fields = "_/_/_/temperature" -# ## The message topic will be stored in a tag specified by this value. If set -# ## to the empty string no topic tag will be created. -# # topic_tag = "topic" -# ## QoS policy for messages -# ## 0 = at most once -# ## 1 = at least once -# ## 2 = exactly once -# ## -# ## When using a QoS of 1 or 2, you should enable persistent_session to allow -# ## resuming unacknowledged messages. -# # qos = 0 -# ## Connection timeout for initial connection in seconds -# # connection_timeout = "30s" -# ## Maximum messages to read from the broker that have not been written by an -# ## output. For best throughput set based on the number of metrics within -# ## each message and the size of the output's metric_batch_size. -# ## -# ## For example, if each message from the queue contains 10 metrics and the -# ## output metric_batch_size is 1000, setting this to 100 will ensure that a -# ## full batch is collected and the write is triggered immediately without -# ## waiting until the next flush_interval. -# # max_undelivered_messages = 1000 -# ## Persistent session disables clearing of the client session on connection. -# ## In order for this option to work you must also set client_id to identify -# ## the client. To receive messages that arrived while the client is offline, -# ## also set the qos option to 1 or 2 and don't forget to also set the QoS when -# ## publishing. -# # persistent_session = false -# ## If unset, a random client ID will be generated. -# # client_id = "" -# ## Username and password to connect MQTT server. -# # username = "telegraf" -# # password = "metricsmetricsmetricsmetrics" -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false -# ## Data format to consume. -# ## Each data format has its own unique set of configuration options, read -# ## more about them here: -# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md -# data_format = "influx" -# ## Enable extracting tag values from MQTT topics -# ## _ denotes an ignored entry in the topic path -# ## [[inputs.mqtt_consumer.topic_parsing]] -# ## topic = "" -# ## measurement = "" -# ## tags = "" -# ## fields = "" -# ## [inputs.mqtt_consumer.topic_parsing.types] -# ## - - -# # Read metrics from NATS subject(s) -# [[inputs.nats_consumer]] -# ## urls of NATS servers -# servers = ["nats://localhost:4222"] -# -# ## subject(s) to consume -# subjects = ["telegraf"] -# -# ## name a queue group -# queue_group = "telegraf_consumers" -# -# ## Optional credentials -# # username = "" -# # password = "" -# -# ## Optional NATS 2.0 and NATS NGS compatible user credentials -# # credentials = "/etc/telegraf/nats.creds" -# -# ## Use Transport Layer Security -# # secure = false -# -# ## Optional TLS Config -# # tls_ca = "/etc/telegraf/ca.pem" -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false -# -# ## Sets the limits for pending msgs and bytes for each subscription -# ## These shouldn't need to be adjusted except in very high throughput scenarios -# # pending_message_limit = 65536 -# # pending_bytes_limit = 67108864 -# -# ## Maximum messages to read from the broker that have not been written by an -# ## output. For best throughput set based on the number of metrics within -# ## each message and the size of the output's metric_batch_size. -# ## -# ## For example, if each message from the queue contains 10 metrics and the -# ## output metric_batch_size is 1000, setting this to 100 will ensure that a -# ## full batch is collected and the write is triggered immediately without -# ## waiting until the next flush_interval. -# # max_undelivered_messages = 1000 -# -# ## Data format to consume. -# ## Each data format has its own unique set of configuration options, read -# ## more about them here: -# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md -# data_format = "influx" - - -# # Read NSQ topic for metrics. -# [[inputs.nsq_consumer]] -# ## An array representing the NSQD TCP HTTP Endpoints -# nsqd = ["localhost:4150"] -# -# ## An array representing the NSQLookupd HTTP Endpoints -# nsqlookupd = ["localhost:4161"] -# topic = "telegraf" -# channel = "consumer" -# max_in_flight = 100 -# -# ## Maximum messages to read from the broker that have not been written by an -# ## output. For best throughput set based on the number of metrics within -# ## each message and the size of the output's metric_batch_size. -# ## -# ## For example, if each message from the queue contains 10 metrics and the -# ## output metric_batch_size is 1000, setting this to 100 will ensure that a -# ## full batch is collected and the write is triggered immediately without -# ## waiting until the next flush_interval. -# # max_undelivered_messages = 1000 -# -# ## Data format to consume. -# ## Each data format has its own unique set of configuration options, read -# ## more about them here: -# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md -# data_format = "influx" - - -# # Receive OpenTelemetry traces, metrics, and logs over gRPC -# [[inputs.opentelemetry]] -# ## Override the default (0.0.0.0:4317) destination OpenTelemetry gRPC service -# ## address:port -# # service_address = "0.0.0.0:4317" -# -# ## Override the default (5s) new connection timeout -# # timeout = "5s" -# -# ## Override the default (prometheus-v1) metrics schema. -# ## Supports: "prometheus-v1", "prometheus-v2" -# ## For more information about the alternatives, read the Prometheus input -# ## plugin notes. -# # metrics_schema = "prometheus-v1" -# -# ## Optional TLS Config. -# ## For advanced options: https://github.com/influxdata/telegraf/blob/v1.18.3/docs/TLS.md -# ## -# ## Set one or more allowed client CA certificate file names to -# ## enable mutually authenticated TLS connections. -# # tls_allowed_cacerts = ["/etc/telegraf/clientca.pem"] -# ## Add service certificate and key. -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" - - -# # Read metrics from one or many pgbouncer servers -# [[inputs.pgbouncer]] -# ## specify address via a url matching: -# ## postgres://[pqgotest[:password]]@localhost[/dbname]\ -# ## ?sslmode=[disable|verify-ca|verify-full] -# ## or a simple string: -# ## host=localhost user=pqgotest password=... sslmode=... dbname=app_production -# ## -# ## All connection parameters are optional. -# ## -# address = "host=localhost user=pgbouncer sslmode=disable" - - -# # Read metrics from one or many postgresql servers -# [[inputs.postgresql]] -# ## specify address via a url matching: -# ## postgres://[pqgotest[:password]]@localhost[/dbname]\ -# ## ?sslmode=[disable|verify-ca|verify-full] -# ## or a simple string: -# ## host=localhost user=pqgotest password=... sslmode=... dbname=app_production -# ## -# ## All connection parameters are optional. -# ## -# ## Without the dbname parameter, the driver will default to a database -# ## with the same name as the user. This dbname is just for instantiating a -# ## connection with the server and doesn't restrict the databases we are trying -# ## to grab metrics for. -# ## -# address = "host=localhost user=postgres sslmode=disable" -# ## A custom name for the database that will be used as the "server" tag in the -# ## measurement output. If not specified, a default one generated from -# ## the connection address is used. -# # outputaddress = "db01" -# -# ## connection configuration. -# ## maxlifetime - specify the maximum lifetime of a connection. -# ## default is forever (0s) -# max_lifetime = "0s" -# -# ## A list of databases to explicitly ignore. If not specified, metrics for all -# ## databases are gathered. Do NOT use with the 'databases' option. -# # ignored_databases = ["postgres", "template0", "template1"] -# -# ## A list of databases to pull metrics about. If not specified, metrics for all -# ## databases are gathered. Do NOT use with the 'ignored_databases' option. -# # databases = ["app_production", "testing"] -# -# ## Whether to use prepared statements when connecting to the database. -# ## This should be set to false when connecting through a PgBouncer instance -# ## with pool_mode set to transaction. -# # prepared_statements = true - - -# # Read metrics from one or many postgresql servers -# [[inputs.postgresql_extensible]] -# ## specify address via a url matching: -# ## postgres://[pqgotest[:password]]@localhost[/dbname]\ -# ## ?sslmode=[disable|verify-ca|verify-full] -# ## or a simple string: -# ## host=localhost user=pqgotest password=... sslmode=... dbname=app_production -# # -# ## All connection parameters are optional. # -# ## Without the dbname parameter, the driver will default to a database -# ## with the same name as the user. This dbname is just for instantiating a -# ## connection with the server and doesn't restrict the databases we are trying -# ## to grab metrics for. -# # -# address = "host=localhost user=postgres sslmode=disable" -# -# ## connection configuration. -# ## maxlifetime - specify the maximum lifetime of a connection. -# ## default is forever (0s) -# max_lifetime = "0s" -# -# ## Whether to use prepared statements when connecting to the database. -# ## This should be set to false when connecting through a PgBouncer instance -# ## with pool_mode set to transaction. -# # prepared_statements = true -# -# ## A list of databases to pull metrics about. If not specified, metrics for all -# ## databases are gathered. -# ## databases = ["app_production", "testing"] -# # -# ## A custom name for the database that will be used as the "server" tag in the -# ## measurement output. If not specified, a default one generated from -# ## the connection address is used. -# # outputaddress = "db01" -# # -# ## Define the toml config where the sql queries are stored -# ## New queries can be added, if the withdbname is set to true and there is no -# ## databases defined in the 'databases field', the sql query is ended by a -# ## 'is not null' in order to make the query succeed. -# ## Example : -# ## The sqlquery : "SELECT * FROM pg_stat_database where datname" become -# ## "SELECT * FROM pg_stat_database where datname IN ('postgres', 'pgbench')" -# ## because the databases variable was set to ['postgres', 'pgbench' ] and the -# ## withdbname was true. Be careful that if the withdbname is set to false you -# ## don't have to define the where clause (aka with the dbname) the tagvalue -# ## field is used to define custom tags (separated by commas) -# ## The optional "measurement" value can be used to override the default -# ## output measurement name ("postgresql"). -# ## -# ## The script option can be used to specify the .sql file path. -# ## If script and sqlquery options specified at same time, sqlquery will be used -# ## -# ## the tagvalue field is used to define custom tags (separated by comas). -# ## the query is expected to return columns which match the names of the -# ## defined tags. The values in these columns must be of a string-type, -# ## a number-type or a blob-type. -# ## -# ## The timestamp field is used to override the data points timestamp value. By -# ## default, all rows inserted with current time. By setting a timestamp column, -# ## the row will be inserted with that column's value. -# ## -# ## Structure : -# ## [[inputs.postgresql_extensible.query]] -# ## sqlquery string -# ## version string -# ## withdbname boolean -# ## tagvalue string (comma separated) -# ## measurement string -# ## timestamp string -# [[inputs.postgresql_extensible.query]] -# sqlquery="SELECT * FROM pg_stat_database" -# version=901 -# withdbname=false -# tagvalue="" -# measurement="" -# [[inputs.postgresql_extensible.query]] -# sqlquery="SELECT * FROM pg_stat_bgwriter" -# version=901 -# withdbname=false -# tagvalue="postgresql.stats" - - -# # Read metrics from one or many prometheus clients -# [[inputs.prometheus]] -# ## An array of urls to scrape metrics from. -# urls = ["http://localhost:9100/metrics"] -# -# ## Metric version controls the mapping from Prometheus metrics into -# ## Telegraf metrics. When using the prometheus_client output, use the same -# ## value in both plugins to ensure metrics are round-tripped without -# ## modification. -# ## -# ## example: metric_version = 1; -# ## metric_version = 2; recommended version -# # metric_version = 1 -# -# ## Url tag name (tag containing scrapped url. optional, default is "url") -# # url_tag = "url" -# -# ## Whether the timestamp of the scraped metrics will be ignored. -# ## If set to true, the gather time will be used. -# # ignore_timestamp = false -# -# ## An array of Kubernetes services to scrape metrics from. -# # kubernetes_services = ["http://my-service-dns.my-namespace:9100/metrics"] -# -# ## Kubernetes config file to create client from. -# # kube_config = "/path/to/kubernetes.config" -# -# ## Scrape Kubernetes pods for the following prometheus annotations: -# ## - prometheus.io/scrape: Enable scraping for this pod -# ## - prometheus.io/scheme: If the metrics endpoint is secured then you will need to -# ## set this to 'https' & most likely set the tls config. -# ## - prometheus.io/path: If the metrics path is not /metrics, define it with this annotation. -# ## - prometheus.io/port: If port is not 9102 use this annotation -# # monitor_kubernetes_pods = true -# ## Get the list of pods to scrape with either the scope of -# ## - cluster: the kubernetes watch api (default, no need to specify) -# ## - node: the local cadvisor api; for scalability. Note that the config node_ip or the environment variable NODE_IP must be set to the host IP. -# # pod_scrape_scope = "cluster" -# ## Only for node scrape scope: node IP of the node that telegraf is running on. -# ## Either this config or the environment variable NODE_IP must be set. -# # node_ip = "10.180.1.1" -# ## Only for node scrape scope: interval in seconds for how often to get updated pod list for scraping. -# ## Default is 60 seconds. -# # pod_scrape_interval = 60 -# ## Restricts Kubernetes monitoring to a single namespace -# ## ex: monitor_kubernetes_pods_namespace = "default" -# # monitor_kubernetes_pods_namespace = "" -# # label selector to target pods which have the label -# # kubernetes_label_selector = "env=dev,app=nginx" -# # field selector to target pods -# # eg. To scrape pods on a specific node -# # kubernetes_field_selector = "spec.nodeName=$HOSTNAME" -# -# ## Scrape Services available in Consul Catalog -# # [inputs.prometheus.consul] -# # enabled = true -# # agent = "http://localhost:8500" -# # query_interval = "5m" -# -# # [[inputs.prometheus.consul.query]] -# # name = "a service name" -# # tag = "a service tag" -# # url = 'http://{{if ne .ServiceAddress ""}}{{.ServiceAddress}}{{else}}{{.Address}}{{end}}:{{.ServicePort}}/{{with .ServiceMeta.metrics_path}}{{.}}{{else}}metrics{{end}}' -# # [inputs.prometheus.consul.query.tags] -# # host = "{{.Node}}" -# -# ## Use bearer token for authorization. ('bearer_token' takes priority) -# # bearer_token = "/path/to/bearer/token" -# ## OR -# # bearer_token_string = "abc_123" -# -# ## HTTP Basic Authentication username and password. ('bearer_token' and -# ## 'bearer_token_string' take priority) -# # username = "" -# # password = "" -# -# ## Specify timeout duration for slower prometheus clients (default is 3s) -# # response_timeout = "3s" -# -# ## Optional TLS Config -# # tls_ca = /path/to/cafile -# # tls_cert = /path/to/certfile -# # tls_key = /path/to/keyfile -# ## Use TLS but skip chain & host verification -# # insecure_skip_verify = false - - -# # RAS plugin exposes counter metrics for Machine Check Errors provided by RASDaemon (sqlite3 output is required). -# [[inputs.ras]] -# ## Optional path to RASDaemon sqlite3 database. -# ## Default: /var/lib/rasdaemon/ras-mc_event.db -# # db_path = "" - - -# # Riemann protobuff listener. -# [[inputs.riemann_listener]] -# ## URL to listen on. -# ## Default is "tcp://:5555" -# # service_address = "tcp://:8094" -# # service_address = "tcp://127.0.0.1:http" -# # service_address = "tcp4://:8094" -# # service_address = "tcp6://:8094" -# # service_address = "tcp6://[2001:db8::1]:8094" -# -# ## Maximum number of concurrent connections. -# ## 0 (default) is unlimited. -# # max_connections = 1024 -# ## Read timeout. -# ## 0 (default) is unlimited. -# # read_timeout = "30s" -# ## Optional TLS configuration. -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Enables client authentication if set. -# # tls_allowed_cacerts = ["/etc/telegraf/clientca.pem"] -# ## Maximum socket buffer size (in bytes when no unit specified). -# # read_buffer_size = "64KiB" -# ## Period between keep alive probes. -# ## 0 disables keep alive probes. -# ## Defaults to the OS configuration. -# # keep_alive_period = "5m" - - -# # SFlow V5 Protocol Listener -# [[inputs.sflow]] -# ## Address to listen for sFlow packets. -# ## example: service_address = "udp://:6343" -# ## service_address = "udp4://:6343" -# ## service_address = "udp6://:6343" -# service_address = "udp://:6343" -# -# ## Set the size of the operating system's receive buffer. -# ## example: read_buffer_size = "64KiB" -# # read_buffer_size = "" - - -# # Receive SNMP traps -# [[inputs.snmp_trap]] -# ## Transport, local address, and port to listen on. Transport must -# ## be "udp://". Omit local address to listen on all interfaces. -# ## example: "udp://127.0.0.1:1234" -# ## -# ## Special permissions may be required to listen on a port less than -# ## 1024. See README.md for details -# ## -# # service_address = "udp://:162" -# ## -# ## Path to mib files -# # path = ["/usr/share/snmp/mibs"] -# ## -# ## Snmp version, defaults to 2c -# # version = "2c" -# ## SNMPv3 authentication and encryption options. -# ## -# ## Security Name. -# # sec_name = "myuser" -# ## Authentication protocol; one of "MD5", "SHA" or "". -# # auth_protocol = "MD5" -# ## Authentication password. -# # auth_password = "pass" -# ## Security Level; one of "noAuthNoPriv", "authNoPriv", or "authPriv". -# # sec_level = "authNoPriv" -# ## Privacy protocol used for encrypted messages; one of "DES", "AES", "AES192", "AES192C", "AES256", "AES256C" or "". -# # priv_protocol = "" -# ## Privacy password used for encrypted messages. -# # priv_password = "" - - -# # Generic socket listener capable of handling multiple socket types. -# [[inputs.socket_listener]] -# ## URL to listen on -# # service_address = "tcp://:8094" -# # service_address = "tcp://127.0.0.1:http" -# # service_address = "tcp4://:8094" -# # service_address = "tcp6://:8094" -# # service_address = "tcp6://[2001:db8::1]:8094" -# # service_address = "udp://:8094" -# # service_address = "udp4://:8094" -# # service_address = "udp6://:8094" -# # service_address = "unix:///tmp/telegraf.sock" -# # service_address = "unixgram:///tmp/telegraf.sock" -# -# ## Change the file mode bits on unix sockets. These permissions may not be -# ## respected by some platforms, to safely restrict write permissions it is best -# ## to place the socket into a directory that has previously been created -# ## with the desired permissions. -# ## ex: socket_mode = "777" -# # socket_mode = "" -# -# ## Maximum number of concurrent connections. -# ## Only applies to stream sockets (e.g. TCP). -# ## 0 (default) is unlimited. -# # max_connections = 1024 -# -# ## Read timeout. -# ## Only applies to stream sockets (e.g. TCP). -# ## 0 (default) is unlimited. -# # read_timeout = "30s" -# -# ## Optional TLS configuration. -# ## Only applies to stream sockets (e.g. TCP). -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# ## Enables client authentication if set. -# # tls_allowed_cacerts = ["/etc/telegraf/clientca.pem"] -# -# ## Maximum socket buffer size (in bytes when no unit specified). -# ## For stream sockets, once the buffer fills up, the sender will start backing up. -# ## For datagram sockets, once the buffer fills up, metrics will start dropping. -# ## Defaults to the OS default. -# # read_buffer_size = "64KiB" -# -# ## Period between keep alive probes. -# ## Only applies to TCP sockets. -# ## 0 disables keep alive probes. -# ## Defaults to the OS configuration. -# # keep_alive_period = "5m" -# -# ## Data format to consume. -# ## Each data format has its own unique set of configuration options, read -# ## more about them here: -# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md -# # data_format = "influx" -# -# ## Content encoding for message payloads, can be set to "gzip" to or -# ## "identity" to apply no encoding. -# # content_encoding = "identity" - - -# # Read metrics from SQL queries -# [[inputs.sql]] -# ## Database Driver -# ## See https://github.com/influxdata/telegraf/blob/master/docs/SQL_DRIVERS_INPUT.md for -# ## a list of supported drivers. -# driver = "mysql" -# -# ## Data source name for connecting -# ## The syntax and supported options depends on selected driver. -# dsn = "username:password@mysqlserver:3307/dbname?param=value" -# -# ## Timeout for any operation -# ## Note that the timeout for queries is per query not per gather. -# # timeout = "5s" -# -# ## Connection time limits -# ## By default the maximum idle time and maximum lifetime of a connection is unlimited, i.e. the connections -# ## will not be closed automatically. If you specify a positive time, the connections will be closed after -# ## idleing or existing for at least that amount of time, respectively. -# # connection_max_idle_time = "0s" -# # connection_max_life_time = "0s" -# -# ## Connection count limits -# ## By default the number of open connections is not limited and the number of maximum idle connections -# ## will be inferred from the number of queries specified. If you specify a positive number for any of the -# ## two options, connections will be closed when reaching the specified limit. The number of idle connections -# ## will be clipped to the maximum number of connections limit if any. -# # connection_max_open = 0 -# # connection_max_idle = auto -# -# [[inputs.sql.query]] -# ## Query to perform on the server -# query="SELECT user,state,latency,score FROM Scoreboard WHERE application > 0" -# ## Alternatively to specifying the query directly you can select a file here containing the SQL query. -# ## Only one of 'query' and 'query_script' can be specified! -# # query_script = "/path/to/sql/script.sql" -# -# ## Name of the measurement -# ## In case both measurement and 'measurement_col' are given, the latter takes precedence. -# # measurement = "sql" -# -# ## Column name containing the name of the measurement -# ## If given, this will take precedence over the 'measurement' setting. In case a query result -# ## does not contain the specified column, we fall-back to the 'measurement' setting. -# # measurement_column = "" -# -# ## Column name containing the time of the measurement -# ## If ommited, the time of the query will be used. -# # time_column = "" -# -# ## Format of the time contained in 'time_col' -# ## The time must be 'unix', 'unix_ms', 'unix_us', 'unix_ns', or a golang time format. -# ## See https://golang.org/pkg/time/#Time.Format for details. -# # time_format = "unix" -# -# ## Column names containing tags -# ## An empty include list will reject all columns and an empty exclude list will not exclude any column. -# ## I.e. by default no columns will be returned as tag and the tags are empty. -# # tag_columns_include = [] -# # tag_columns_exclude = [] -# -# ## Column names containing fields (explicit types) -# ## Convert the given columns to the corresponding type. Explicit type conversions take precedence over -# ## the automatic (driver-based) conversion below. -# ## NOTE: Columns should not be specified for multiple types or the resulting type is undefined. -# # field_columns_float = [] -# # field_columns_int = [] -# # field_columns_uint = [] -# # field_columns_bool = [] -# # field_columns_string = [] -# -# ## Column names containing fields (automatic types) -# ## An empty include list is equivalent to '[*]' and all returned columns will be accepted. An empty -# ## exclude list will not exclude any column. I.e. by default all columns will be returned as fields. -# ## NOTE: We rely on the database driver to perform automatic datatype conversion. -# # field_columns_include = [] -# # field_columns_exclude = [] - - -# # Read metrics from Microsoft SQL Server -# [[inputs.sqlserver]] -# ## Specify instances to monitor with a list of connection strings. -# ## All connection parameters are optional. -# ## By default, the host is localhost, listening on default port, TCP 1433. -# ## for Windows, the user is the currently running AD user (SSO). -# ## See https://github.com/denisenkom/go-mssqldb for detailed connection -# ## parameters, in particular, tls connections can be created like so: -# ## "encrypt=true;certificate=;hostNameInCertificate=" -# servers = [ -# "Server=192.168.1.10;Port=1433;User Id=;Password=;app name=telegraf;log=1;", -# ] -# -# ## Authentication method -# ## valid methods: "connection_string", "AAD" -# # auth_method = "connection_string" -# -# ## "database_type" enables a specific set of queries depending on the database type. -# ## In the config file, the sql server plugin section should be repeated each with a set of servers for a specific database_type. -# ## Possible values for database_type are - "SQLServer" or "AzureSQLDB" or "AzureSQLManagedInstance" or "AzureSQLPool" -# -# database_type = "SQLServer" -# -# ## A list of queries to include. If not specified, all the below listed queries are used. -# include_query = [] -# -# ## A list of queries to explicitly ignore. -# exclude_query = ["SQLServerAvailabilityReplicaStates", "SQLServerDatabaseReplicaStates"] -# -# ## Queries enabled by default for database_type = "SQLServer" are - -# ## SQLServerPerformanceCounters, SQLServerWaitStatsCategorized, SQLServerDatabaseIO, SQLServerProperties, SQLServerMemoryClerks, -# ## SQLServerSchedulers, SQLServerRequests, SQLServerVolumeSpace, SQLServerCpu, SQLServerAvailabilityReplicaStates, SQLServerDatabaseReplicaStates -# -# ## Queries enabled by default for database_type = "AzureSQLDB" are - -# ## AzureSQLDBResourceStats, AzureSQLDBResourceGovernance, AzureSQLDBWaitStats, AzureSQLDBDatabaseIO, AzureSQLDBServerProperties, -# ## AzureSQLDBOsWaitstats, AzureSQLDBMemoryClerks, AzureSQLDBPerformanceCounters, AzureSQLDBRequests, AzureSQLDBSchedulers -# -# ## Queries enabled by default for database_type = "AzureSQLManagedInstance" are - -# ## AzureSQLMIResourceStats, AzureSQLMIResourceGovernance, AzureSQLMIDatabaseIO, AzureSQLMIServerProperties, AzureSQLMIOsWaitstats, -# ## AzureSQLMIMemoryClerks, AzureSQLMIPerformanceCounters, AzureSQLMIRequests, AzureSQLMISchedulers -# -# ## Queries enabled by default for database_type = "AzureSQLPool" are - -# ## AzureSQLPoolResourceStats, AzureSQLPoolResourceGovernance, AzureSQLPoolDatabaseIO, AzureSQLPoolWaitStats, -# ## AzureSQLPoolMemoryClerks, AzureSQLPoolPerformanceCounters, AzureSQLPoolSchedulers - - -# # Statsd UDP/TCP Server -# [[inputs.statsd]] -# ## Protocol, must be "tcp", "udp", "udp4" or "udp6" (default=udp) -# protocol = "udp" -# -# ## MaxTCPConnection - applicable when protocol is set to tcp (default=250) -# max_tcp_connections = 250 -# -# ## Enable TCP keep alive probes (default=false) -# tcp_keep_alive = false -# -# ## Specifies the keep-alive period for an active network connection. -# ## Only applies to TCP sockets and will be ignored if tcp_keep_alive is false. -# ## Defaults to the OS configuration. -# # tcp_keep_alive_period = "2h" -# -# ## Address and port to host UDP listener on -# service_address = ":8125" -# -# ## The following configuration options control when telegraf clears it's cache -# ## of previous values. If set to false, then telegraf will only clear it's -# ## cache when the daemon is restarted. -# ## Reset gauges every interval (default=true) -# delete_gauges = true -# ## Reset counters every interval (default=true) -# delete_counters = true -# ## Reset sets every interval (default=true) -# delete_sets = true -# ## Reset timings & histograms every interval (default=true) -# delete_timings = true -# -# ## Percentiles to calculate for timing & histogram stats -# percentiles = [50.0, 90.0, 99.0, 99.9, 99.95, 100.0] -# -# ## separator to use between elements of a statsd metric -# metric_separator = "_" -# -# ## Parses tags in the datadog statsd format -# ## http://docs.datadoghq.com/guides/dogstatsd/ -# parse_data_dog_tags = false -# -# ## Parses datadog extensions to the statsd format -# datadog_extensions = false -# -# ## Parses distributions metric as specified in the datadog statsd format -# ## https://docs.datadoghq.com/developers/metrics/types/?tab=distribution#definition -# datadog_distributions = false -# -# ## Statsd data translation templates, more info can be read here: -# ## https://github.com/influxdata/telegraf/blob/master/docs/TEMPLATE_PATTERN.md -# # templates = [ -# # "cpu.* measurement*" -# # ] -# -# ## Number of UDP messages allowed to queue up, once filled, -# ## the statsd server will start dropping packets -# allowed_pending_messages = 10000 -# -# ## Number of timing/histogram values to track per-measurement in the -# ## calculation of percentiles. Raising this limit increases the accuracy -# ## of percentiles but also increases the memory usage and cpu time. -# percentile_limit = 1000 -# -# ## Max duration (TTL) for each metric to stay cached/reported without being updated. -# #max_ttl = "1000h" -# -# ## Sanitize name method -# ## By default, telegraf will pass names directly as they are received. -# ## However, upstream statsd now does sanitization of names which can be -# ## enabled by using the "upstream" method option. This option will a) replace -# ## white space with '_', replace '/' with '-', and remove charachters not -# ## matching 'a-zA-Z_\-0-9\.;='. -# #sanitize_name_method = "" - - -# # Suricata stats and alerts plugin -# [[inputs.suricata]] -# ## Data sink for Suricata stats and alerts logs -# # This is expected to be a filename of a -# # unix socket to be created for listening. -# source = "/var/run/suricata-stats.sock" -# -# # Delimiter for flattening field keys, e.g. subitem "alert" of "detect" -# # becomes "detect_alert" when delimiter is "_". -# delimiter = "_" -# -# ## Detect alert logs -# # alerts = false - - -# # Accepts syslog messages following RFC5424 format with transports as per RFC5426, RFC5425, or RFC6587 -# [[inputs.syslog]] -# ## Specify an ip or hostname with port - eg., tcp://localhost:6514, tcp://10.0.0.1:6514 -# ## Protocol, address and port to host the syslog receiver. -# ## If no host is specified, then localhost is used. -# ## If no port is specified, 6514 is used (RFC5425#section-4.1). -# server = "tcp://:6514" -# -# ## TLS Config -# # tls_allowed_cacerts = ["/etc/telegraf/ca.pem"] -# # tls_cert = "/etc/telegraf/cert.pem" -# # tls_key = "/etc/telegraf/key.pem" -# -# ## Period between keep alive probes. -# ## 0 disables keep alive probes. -# ## Defaults to the OS configuration. -# ## Only applies to stream sockets (e.g. TCP). -# # keep_alive_period = "5m" -# -# ## Maximum number of concurrent connections (default = 0). -# ## 0 means unlimited. -# ## Only applies to stream sockets (e.g. TCP). -# # max_connections = 1024 -# -# ## Read timeout is the maximum time allowed for reading a single message (default = 5s). -# ## 0 means unlimited. -# # read_timeout = "5s" -# -# ## The framing technique with which it is expected that messages are transported (default = "octet-counting"). -# ## Whether the messages come using the octect-counting (RFC5425#section-4.3.1, RFC6587#section-3.4.1), -# ## or the non-transparent framing technique (RFC6587#section-3.4.2). -# ## Must be one of "octet-counting", "non-transparent". -# # framing = "octet-counting" -# -# ## The trailer to be expected in case of non-transparent framing (default = "LF"). -# ## Must be one of "LF", or "NUL". -# # trailer = "LF" -# -# ## Whether to parse in best effort mode or not (default = false). -# ## By default best effort parsing is off. -# # best_effort = false -# -# ## The RFC standard to use for message parsing -# ## By default RFC5424 is used. RFC3164 only supports UDP transport (no streaming support) -# ## Must be one of "RFC5424", or "RFC3164". -# # syslog_standard = "RFC5424" -# -# ## Character to prepend to SD-PARAMs (default = "_"). -# ## A syslog message can contain multiple parameters and multiple identifiers within structured data section. -# ## Eg., [id1 name1="val1" name2="val2"][id2 name1="val1" nameA="valA"] -# ## For each combination a field is created. -# ## Its name is created concatenating identifier, sdparam_separator, and parameter name. -# # sdparam_separator = "_" - - -# # Parse the new lines appended to a file -# [[inputs.tail]] -# ## File names or a pattern to tail. -# ## These accept standard unix glob matching rules, but with the addition of -# ## ** as a "super asterisk". ie: -# ## "/var/log/**.log" -> recursively find all .log files in /var/log -# ## "/var/log/*/*.log" -> find all .log files with a parent dir in /var/log -# ## "/var/log/apache.log" -> just tail the apache log file -# ## "/var/log/log[!1-2]* -> tail files without 1-2 -# ## "/var/log/log[^1-2]* -> identical behavior as above -# ## See https://github.com/gobwas/glob for more examples -# ## -# files = ["/var/mymetrics.out"] -# -# ## Read file from beginning. -# # from_beginning = false -# -# ## Whether file is a named pipe -# # pipe = false -# -# ## Method used to watch for file updates. Can be either "inotify" or "poll". -# # watch_method = "inotify" -# -# ## Maximum lines of the file to process that have not yet be written by the -# ## output. For best throughput set based on the number of metrics on each -# ## line and the size of the output's metric_batch_size. -# # max_undelivered_lines = 1000 -# -# ## Character encoding to use when interpreting the file contents. Invalid -# ## characters are replaced using the unicode replacement character. When set -# ## to the empty string the data is not decoded to text. -# ## ex: character_encoding = "utf-8" -# ## character_encoding = "utf-16le" -# ## character_encoding = "utf-16be" -# ## character_encoding = "" -# # character_encoding = "" -# -# ## Data format to consume. -# ## Each data format has its own unique set of configuration options, read -# ## more about them here: -# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md -# data_format = "influx" -# -# ## Set the tag that will contain the path of the tailed file. If you don't want this tag, set it to an empty string. -# # path_tag = "path" -# -# ## multiline parser/codec -# ## https://www.elastic.co/guide/en/logstash/2.4/plugins-filters-multiline.html -# #[inputs.tail.multiline] -# ## The pattern should be a regexp which matches what you believe to be an -# ## indicator that the field is part of an event consisting of multiple lines of log data. -# #pattern = "^\s" -# -# ## This field must be either "previous" or "next". -# ## If a line matches the pattern, "previous" indicates that it belongs to the previous line, -# ## whereas "next" indicates that the line belongs to the next one. -# #match_which_line = "previous" -# -# ## The invert_match field can be true or false (defaults to false). -# ## If true, a message not matching the pattern will constitute a match of the multiline -# ## filter and the what will be applied. (vice-versa is also true) -# #invert_match = false -# -# ## After the specified timeout, this plugin sends a multiline event even if no new pattern -# ## is found to start a new event. The default timeout is 5s. -# #timeout = 5s - - -# # Generic TCP listener -# [[inputs.tcp_listener]] -# ## DEPRECATED: The 'tcp_listener' plugin is deprecated in version 1.3.0, use 'inputs.socket_listener' instead. -# # DEPRECATED: the TCP listener plugin has been deprecated in favor of the -# # socket_listener plugin -# # see https://github.com/influxdata/telegraf/tree/master/plugins/inputs/socket_listener - - -# # Generic UDP listener -# [[inputs.udp_listener]] -# ## DEPRECATED: The 'udp_listener' plugin is deprecated in version 1.3.0, use 'inputs.socket_listener' instead. -# # DEPRECATED: the TCP listener plugin has been deprecated in favor of the -# # socket_listener plugin -# # see https://github.com/influxdata/telegraf/tree/master/plugins/inputs/socket_listener - - -# # Read metrics from VMware vCenter -# [[inputs.vsphere]] -# ## List of vCenter URLs to be monitored. These three lines must be uncommented -# ## and edited for the plugin to work. -# vcenters = [ "https://vcenter.local/sdk" ] -# username = "user@corp.local" -# password = "secret" -# -# ## VMs -# ## Typical VM metrics (if omitted or empty, all metrics are collected) -# # vm_include = [ "/*/vm/**"] # Inventory path to VMs to collect (by default all are collected) -# # vm_exclude = [] # Inventory paths to exclude -# vm_metric_include = [ -# "cpu.demand.average", -# "cpu.idle.summation", -# "cpu.latency.average", -# "cpu.readiness.average", -# "cpu.ready.summation", -# "cpu.run.summation", -# "cpu.usagemhz.average", -# "cpu.used.summation", -# "cpu.wait.summation", -# "mem.active.average", -# "mem.granted.average", -# "mem.latency.average", -# "mem.swapin.average", -# "mem.swapinRate.average", -# "mem.swapout.average", -# "mem.swapoutRate.average", -# "mem.usage.average", -# "mem.vmmemctl.average", -# "net.bytesRx.average", -# "net.bytesTx.average", -# "net.droppedRx.summation", -# "net.droppedTx.summation", -# "net.usage.average", -# "power.power.average", -# "virtualDisk.numberReadAveraged.average", -# "virtualDisk.numberWriteAveraged.average", -# "virtualDisk.read.average", -# "virtualDisk.readOIO.latest", -# "virtualDisk.throughput.usage.average", -# "virtualDisk.totalReadLatency.average", -# "virtualDisk.totalWriteLatency.average", -# "virtualDisk.write.average", -# "virtualDisk.writeOIO.latest", -# "sys.uptime.latest", -# ] -# # vm_metric_exclude = [] ## Nothing is excluded by default -# # vm_instances = true ## true by default -# -# ## Hosts -# ## Typical host metrics (if omitted or empty, all metrics are collected) -# # host_include = [ "/*/host/**"] # Inventory path to hosts to collect (by default all are collected) -# # host_exclude [] # Inventory paths to exclude -# host_metric_include = [ -# "cpu.coreUtilization.average", -# "cpu.costop.summation", -# "cpu.demand.average", -# "cpu.idle.summation", -# "cpu.latency.average", -# "cpu.readiness.average", -# "cpu.ready.summation", -# "cpu.swapwait.summation", -# "cpu.usage.average", -# "cpu.usagemhz.average", -# "cpu.used.summation", -# "cpu.utilization.average", -# "cpu.wait.summation", -# "disk.deviceReadLatency.average", -# "disk.deviceWriteLatency.average", -# "disk.kernelReadLatency.average", -# "disk.kernelWriteLatency.average", -# "disk.numberReadAveraged.average", -# "disk.numberWriteAveraged.average", -# "disk.read.average", -# "disk.totalReadLatency.average", -# "disk.totalWriteLatency.average", -# "disk.write.average", -# "mem.active.average", -# "mem.latency.average", -# "mem.state.latest", -# "mem.swapin.average", -# "mem.swapinRate.average", -# "mem.swapout.average", -# "mem.swapoutRate.average", -# "mem.totalCapacity.average", -# "mem.usage.average", -# "mem.vmmemctl.average", -# "net.bytesRx.average", -# "net.bytesTx.average", -# "net.droppedRx.summation", -# "net.droppedTx.summation", -# "net.errorsRx.summation", -# "net.errorsTx.summation", -# "net.usage.average", -# "power.power.average", -# "storageAdapter.numberReadAveraged.average", -# "storageAdapter.numberWriteAveraged.average", -# "storageAdapter.read.average", -# "storageAdapter.write.average", -# "sys.uptime.latest", -# ] -# ## Collect IP addresses? Valid values are "ipv4" and "ipv6" -# # ip_addresses = ["ipv6", "ipv4" ] -# -# # host_metric_exclude = [] ## Nothing excluded by default -# # host_instances = true ## true by default -# -# -# ## Clusters -# # cluster_include = [ "/*/host/**"] # Inventory path to clusters to collect (by default all are collected) -# # cluster_exclude = [] # Inventory paths to exclude -# # cluster_metric_include = [] ## if omitted or empty, all metrics are collected -# # cluster_metric_exclude = [] ## Nothing excluded by default -# # cluster_instances = false ## false by default -# -# ## Datastores -# # datastore_include = [ "/*/datastore/**"] # Inventory path to datastores to collect (by default all are collected) -# # datastore_exclude = [] # Inventory paths to exclude -# # datastore_metric_include = [] ## if omitted or empty, all metrics are collected -# # datastore_metric_exclude = [] ## Nothing excluded by default -# # datastore_instances = false ## false by default -# -# ## Datacenters -# # datacenter_include = [ "/*/host/**"] # Inventory path to clusters to collect (by default all are collected) -# # datacenter_exclude = [] # Inventory paths to exclude -# datacenter_metric_include = [] ## if omitted or empty, all metrics are collected -# datacenter_metric_exclude = [ "*" ] ## Datacenters are not collected by default. -# # datacenter_instances = false ## false by default -# -# ## Plugin Settings -# ## separator character to use for measurement and field names (default: "_") -# # separator = "_" -# -# ## number of objects to retrieve per query for realtime resources (vms and hosts) -# ## set to 64 for vCenter 5.5 and 6.0 (default: 256) -# # max_query_objects = 256 -# -# ## number of metrics to retrieve per query for non-realtime resources (clusters and datastores) -# ## set to 64 for vCenter 5.5 and 6.0 (default: 256) -# # max_query_metrics = 256 -# -# ## number of go routines to use for collection and discovery of objects and metrics -# # collect_concurrency = 1 -# # discover_concurrency = 1 -# -# ## the interval before (re)discovering objects subject to metrics collection (default: 300s) -# # object_discovery_interval = "300s" -# -# ## timeout applies to any of the api request made to vcenter -# # timeout = "60s" -# -# ## When set to true, all samples are sent as integers. This makes the output -# ## data types backwards compatible with Telegraf 1.9 or lower. Normally all -# ## samples from vCenter, with the exception of percentages, are integer -# ## values, but under some conditions, some averaging takes place internally in -# ## the plugin. Setting this flag to "false" will send values as floats to -# ## preserve the full precision when averaging takes place. -# # use_int_samples = true -# -# ## Custom attributes from vCenter can be very useful for queries in order to slice the -# ## metrics along different dimension and for forming ad-hoc relationships. They are disabled -# ## by default, since they can add a considerable amount of tags to the resulting metrics. To -# ## enable, simply set custom_attribute_exclude to [] (empty set) and use custom_attribute_include -# ## to select the attributes you want to include. -# ## By default, since they can add a considerable amount of tags to the resulting metrics. To -# ## enable, simply set custom_attribute_exclude to [] (empty set) and use custom_attribute_include -# ## to select the attributes you want to include. -# # custom_attribute_include = [] -# # custom_attribute_exclude = ["*"] -# -# ## The number of vSphere 5 minute metric collection cycles to look back for non-realtime metrics. In -# ## some versions (6.7, 7.0 and possible more), certain metrics, such as cluster metrics, may be reported -# ## with a significant delay (>30min). If this happens, try increasing this number. Please note that increasing -# ## it too much may cause performance issues. -# # metric_lookback = 3 -# -# ## Optional SSL Config -# # ssl_ca = "/path/to/cafile" -# # ssl_cert = "/path/to/certfile" -# # ssl_key = "/path/to/keyfile" -# ## Use SSL but skip chain & host verification -# # insecure_skip_verify = false -# -# ## The Historical Interval value must match EXACTLY the interval in the daily -# # "Interval Duration" found on the VCenter server under Configure > General > Statistics > Statistic intervals -# # historical_interval = "5m" - - -# # A Webhooks Event collector -# [[inputs.webhooks]] -# ## Address and port to host Webhook listener on -# service_address = ":1619" -# -# [inputs.webhooks.filestack] -# path = "/filestack" -# -# ## HTTP basic auth -# #username = "" -# #password = "" -# -# [inputs.webhooks.github] -# path = "/github" -# # secret = "" -# -# ## HTTP basic auth -# #username = "" -# #password = "" -# -# [inputs.webhooks.mandrill] -# path = "/mandrill" -# -# ## HTTP basic auth -# #username = "" -# #password = "" -# -# [inputs.webhooks.rollbar] -# path = "/rollbar" -# -# ## HTTP basic auth -# #username = "" -# #password = "" -# -# [inputs.webhooks.papertrail] -# path = "/papertrail" -# -# ## HTTP basic auth -# #username = "" -# #password = "" -# -# [inputs.webhooks.particle] -# path = "/particle" -# -# ## HTTP basic auth -# #username = "" -# #password = "" - - -# # This plugin implements the Zipkin http server to gather trace and timing data needed to troubleshoot latency problems in microservice architectures. -# [[inputs.zipkin]] -# # path = "/api/v1/spans" # URL path for span data -# # port = 9411 # Port on which Telegraf listens -