From 26ddf79a27c277525ef9debc891f926b0dc99534 Mon Sep 17 00:00:00 2001
From: "th.l" <thl-cmk@outlook.com>
Date: Mon, 22 May 2023 22:01:51 +0200
Subject: [PATCH] update project

---
 agent_based/squid.py       |   6 +++---
 agents/bakery/squid.py     |   2 --
 agents/plugins/squid       |   9 +++++----
 gui/metrics/squid.py       |   5 ++---
 gui/wato/squid.py          |  29 -----------------------------
 packages/squid             |   2 +-
 squid-2.0.3-2023-05-22.mkp | Bin 0 -> 4518 bytes
 squid.mkp                  | Bin 4686 -> 4518 bytes
 8 files changed, 11 insertions(+), 42 deletions(-)
 create mode 100644 squid-2.0.3-2023-05-22.mkp

diff --git a/agent_based/squid.py b/agent_based/squid.py
index 2bf9847..2fdd9c3 100644
--- a/agent_based/squid.py
+++ b/agent_based/squid.py
@@ -56,14 +56,14 @@ def parse_squid(string_table) -> Dict[str, float]:
         except ValueError:
             continue
         if 'kbytes' in entry:
-            value = value * 1024 + 8 # change kbytes to bits
+            value = value * 1024 + 8  # change kbytes to bits
         section[entry] = value
 
     return section
 
 
 register.agent_section(
-    name="squid",
+    name='squid',
     parse_function=parse_squid,
 )
 
@@ -164,7 +164,7 @@ def check_squid(item, params, section: Dict[str, float]) -> CheckResult:
     for value in squid_map[item].keys():
         entry = squid_map[item][value]
         levels_upper = params.get(entry['levels_upper'], None)
-        yield from  check_levels_predictive(
+        yield from check_levels_predictive(
             label=entry['label'],
             value=section[value],
             levels=levels_upper,
diff --git a/agents/bakery/squid.py b/agents/bakery/squid.py
index 25a0191..dbaa895 100755
--- a/agents/bakery/squid.py
+++ b/agents/bakery/squid.py
@@ -29,8 +29,6 @@ def get_squid_files(conf) -> FileGenerator:
     yield Plugin(
         base_os=OS.LINUX,
         source=Path('squid'),
-        # interval=interval,
-        # timeout=timeout
     )
 
     yield PluginConfig(
diff --git a/agents/plugins/squid b/agents/plugins/squid
index 03aa184..d88aaf6 100755
--- a/agents/plugins/squid
+++ b/agents/plugins/squid
@@ -2,13 +2,14 @@
 
 # based on https://github.com/allangood/check_mk/tree/master/plugins/squid by Allan GooD: allan.cassaro@gmail.com
 #
-# 2023-05-20: changed separator to :sep(0)
-#             changed section from check_squid to squid
-#
 # https://etutorials.org/Server+Administration/Squid.+The+definitive+guide/Chapter+14.+Monitoring+Squid/14.2+The+Cache+Manager/
 #
 # Table 14-1. Cache manager pages for squidclient mgr:<page>
 #
+# 2023-05-20: changed separator to :sep(0)
+#             changed section from check_squid to squid
+# 2023-05-22: fixed missing "<" in section name
+#
 MK_CONFDIR="/etc/check_mk"
 
 
@@ -22,7 +23,7 @@ fi
 
 
 if type squidclient > /dev/null 2>&1 ; then
-  echo "<<squid:sep(0)>>>"
+  echo "<<<squid:sep(0)>>>"
 
   # one squid instance
   squidclient -p "$port" -T2 mgr:5min | grep =
diff --git a/gui/metrics/squid.py b/gui/metrics/squid.py
index a6bd657..41df441 100644
--- a/gui/metrics/squid.py
+++ b/gui/metrics/squid.py
@@ -27,14 +27,13 @@ check_metrics['check_mk-squid'] = {
     'predict_util': {'auto_graph': False},
 }
 
-
 metric_info['client_hits_per_second'] = {'title': _('Cache hits'), 'unit': '1/s', 'color': '11/a', }
 metric_info['client_requests_per_second'] = {'title': _('Requests'), 'unit': '1/s', 'color': '31/a', }
 metric_info['client_errors_per_second'] = {'title': _('Errors'), 'unit': '1/s', 'color': '21/a', }
 
 metric_info['predict_client_hits_per_second'] = {'title': _('Cache hits (Predicted)'), 'unit': '1/s', 'color': '52/a', }
-metric_info['predict_client_requests_per_second'] = {'title': _('Requests (Predicted)'), 'unit': '1/s', 'color': '51/a', }
-
+metric_info['predict_client_requests_per_second'] = {'title': _('Requests (Predicted)'), 'unit': '1/s',
+                                                     'color': '51/a', }
 
 graph_info['squid_client'] = {
     'title': _('Squid Client statistics'),
diff --git a/gui/wato/squid.py b/gui/wato/squid.py
index 50bc02a..f94de21 100644
--- a/gui/wato/squid.py
+++ b/gui/wato/squid.py
@@ -42,35 +42,6 @@ def _valuespec_squid():
     return Dictionary(
         title=_('Squid Web Proxy (Linux)'),
         elements=[
-            # ('client_requests',
-            #  Tuple(
-            #      title=_('Set levels for Client Requests'),
-            #      elements=[
-            #          Integer(title=_('Warning at'), default_value=600, unit='/s'),
-            #          Integer(title=_('Critical at'), default_value=800, unit='/s'),
-            #      ])),
-            # not sure if client hits as upper levels are use full
-            # ('client_hits',
-            #  Tuple(
-            #      title=_('Set levels for Client Hits'),
-            #      elements=[
-            #          Integer(title=_('Warning at'), default_value=600, unit='/s'),
-            #          Integer(title=_('Critical at'), default_value=800, unit='/s'),
-            #      ])),
-            # ('server_requests',
-            #  Tuple(
-            #      title=_('Set levels for Server Requests'),
-            #      elements=[
-            #          Integer(title=_('Warning at'), default_value=600, unit='/s'),
-            #          Integer(title=_('Critical at'), default_value=800, unit='/s'),
-            #      ])),
-            # ('cpu_usage',
-            #  Tuple(
-            #      title=_('Set levels for Squid CPU usage'),
-            #      elements=[
-            #          Float(title=_('Warning at'), default_value=60.0, unit='%'),
-            #          Float(title=_('Critical at'), default_value=80.0, unit='%')
-            #      ])),
             ('client_requests',
              Levels(
                  title=_('Set levels for Client Requests'),
diff --git a/packages/squid b/packages/squid
index f238333..96c8476 100644
--- a/packages/squid
+++ b/packages/squid
@@ -12,7 +12,7 @@
            'gui': ['wato/squid.py', 'metrics/squid.py']},
  'name': 'squid',
  'title': 'Squid3 Health Check',
- 'version': '2.0.2-2023-05-21',
+ 'version': '2.0.3-2023-05-22',
  'version.min_required': '2.1.0b1',
  'version.packaged': '2.1.0p21',
  'version.usable_until': None}
\ No newline at end of file
diff --git a/squid-2.0.3-2023-05-22.mkp b/squid-2.0.3-2023-05-22.mkp
new file mode 100644
index 0000000000000000000000000000000000000000..fb912a247b4de607eef751901df98259ae2a2751
GIT binary patch
literal 4518
zcmZu!XE+;-<7|1&s!_EXdzMP<8bxZBQfepm-l-9L#VCqeQG4&!-myc?s7-09O;OaA
znEAi|kH6=6@7vvdx-WOnvBi;+0!LhI3Gi?aZzo%zC`cG21{4(*6$1)O07XSXFc<fG
z2WElrMJXh9<?6AN-S*RJp4UZoFUsR|vm3UP7i3Li;BX^Wwzwkp7>3wQni96`<KT-u
zV%$A`BvP)$p@kUzB}TAdYUka(hoQ~{38*7%9-~svl;0@${?^1)FV50UoRy7nXrpg!
zjiZE(g(VR??0(2Z-8f8MIMM~?>vl3^uD*GjO??nlik?yDGj0nGygmOK3%Zr^494#b
z{7MAD5KG?!fJI~cjY@nUm{<CA^YM~Czc(FZxEu-*aE*|nG(hz*CU(IBaoj}DuTZI(
z1N}H2bC@hy<Kn;hY6Z*_Y`w;?)WX=Ph<E$eywxf*tWa}%RH-Gv6kPVHs_3a@O0VUv
za;0As4{^@SG<KU1KqNMgO*)|MqRf3-#0tf6Nc-b`t#`O?i5=UdZ(JtMtJ|2OK?_{f
zvLeOZClSN*x9*rP3<(-cNnuOrvvHa=l0oQ6#swX!cg^4O1j7q#a%}B`OV<wAi}z`O
z?i-~WBFToJ5d$+5^KrCh{YREOf0#;0*kP7xp-rRg!3pI6wn{>Uhe%8_CTF-53YK~*
z4(4ku;?QW1Eu=b+=oS&Dyz1-gwi>>?S~wm}B1lOBC@TS|9Eu6vSpKx=W%UoSd`xC-
zKW6GYXufG_6LcgOfGU4WMRJ3_1CL@uUg5zq!msb}I7eCiJ3RCTVS>Y7yl+BX<9!mF
zc(93)Sxb1K<v!+XxlWvrc{Sqq`s=?;Th-nZYNK6ZZ^H~c4=GlJ7QV2#S`cKqV`RHF
zk;&@4Jn*Yos_h&<Q7MZ&UH9(c!u_Dd)gX01u#hu5<4XeHE-2u!nb2=OEgJrjJfjhi
zl)1t;mRe2Z)si6KrY1+I!>r)gdfwn2HlIKjJU>MvkH$+5;(UAYiBUsGg*SLHc5ji1
zCOm*8F>!z|fBW*xjhW5<8XYmUM!JCT@;j@#1}k3J*Kdpic3QUZDeD7h3Tt{w`vl2?
zWjeBVRwAn`P3B2=7T5h3+X<+gBq`%F3+vZ=M4O#(*FPdM9N-X~Vn_+=LtuK&fY^Nf
zjI5`f`?O>bOoZcHgPi^9WS7NNg}21Vo;XYIS&>@Gm}MV*iM>l)ZW?*S(-N<`7Kn16
zf)(<2LsX=}Kcx36KLGMljAS@m@Z=RAgH8~H^C+P2s!U@i@#Cj9z_vLB3R*5gLs7+8
zv8x<GMF@_R-dbEH?_dxf+g#E|yZJKGz^2z2?(?jghtFFBGx$8R3XY$R{(35H<w1?J
z>Q|qu2S|r$km)l(^WH!!2NwC-ANI8OL*dhULkY?<e-g5GV?MUa7QRMg8?Npc6@OAF
z=LzVURv;S4GyVK``q`g`vBzSeTTJ?UraH-&nNdcQp<VA&B+IQTuh|Q|-X>(h+bva&
zwOH(xe5u^PI>bIS635@|vL++V$+pxiBR|G2FIv_4oTu5pfA$r$i~c>>9y-ek?NO9%
z&vBRkxX>EOu6J^fz*lf-Hl#E|n>oZCXnEf=8YSmx*CrC_sTL&CISXBt(Rr2ayu`_q
zbfnGFMwBbdFwGlTF3bN4WD$+fXrpWb)hgAg>8T?Hx`T(%>dh-Z#6Jup*z*tjs0Z~6
zpD#w+H89KwPC=;;_V%9_X)0~CO@1ecoj@aLs<MXV{ndvb>~ITvJ*A<TbQsO~U{^{j
zX5n6z&L3wu?NlUnru)coqzTL$%#ESWy&wEt9PyWsI==gZoR&oD)yriOWwbaUj;-}_
z*%ac-sX5j`lHtP{*ErctmR0yp@Gr3@p<zyCTMNNHC<pSwgC&V3zohwO+e~&$nWT6l
zAxiXab>E~nEz4!>DMA;^&$F9K+8;`YdU*+-dJlsrfqY!-uN<qCfxG6Q3`P<lDUqaR
zs@}?Zg?Gu1wk+`*bL#yvwrcL0Iju?g(s$3w>kqU9-4izX9Jc37q&r%eb>&O#txK{J
z<_nfh++H>7n)7OYH<^Xgt4Tii0eZ5_8h>OpI(qVZeq7f0po)Q9xAw=-8xb}YG4=r2
z??|eL<q%NHrVXR^jMew!43Mh(()R)GS#~8@49U5!I_i}tFs9^18@+m^^VLel%mziL
z^5}~HDy-r>duS=*aUjye*Yl!Oyq=_<Neq%I?ud)rb~^<!72A)wqgzt6dKjMT=*0WJ
zU*L3D;y#zQKV<jPS1`)!b{-bkQdOjfn8N@$Avjal2<d$;%Z@*gJWS0#ETC)q(_6rU
zpkFqsFLuZz_KWzCsYLz-BL(|r4Z6AI*|}Z-E_!rI{DDS8IlpT>?@!9Xn4PRc%W1mG
zyVT_dElG=s6`9%G@(vW`wDxhn*MOiL>1w8&se_5j9M{+*_3H-HC-oLd18pz!(gBL4
zfU-wRL=Ntm$rvE<tfFYJdNHMgyN>JhH&*=p786~wfaUu7=7Yxz$=EWdku2Zp^}~6^
zUZ-{p%``o~GMyf@jx%i5Xu4waubwsE`M@XRzj=?m8L-}z8f@HN<d3LlQ5x)F^qR-|
zS8>h=s%OKCuM5BUJ=H-~+FDzZE~~p^e0Oh<RMW1D&?l&qh?I}2PxL(HDI_06#bG)`
zi0=Os_jM3@jt!=rmVQDRxVh#2<G_HL*Cg#p(aEFQEMed9B)7BS*2T&^;zHrHgApy0
z&vb(zJ8{vtmV=hrL^JaL0YbN=5Ti|h(}pd;X>a^^dz?RU|ITkGX3sGJ&rCTqSnr5W
z_K=ljwZ7RN{(qC;j<Q$zCZGo)s<zCtV`^cs*9kv^Q8f2Vc7veDk`%`4x6x#(mIIQ&
z#aO|43#|_m#4gc4fs%33vVrqiFBo4)#0_XOu&v~`lrX6A0zJDuGyL57@9Y*!GoYjO
zw9qs9OCc~XE1gc}jZ?=S(orSGZ(Otc_{2Af=rZFD7!%vU1?MaA*^EZ@TO^r)DaqzF
z-M%=K{!ga=CWxR9Z)?gw-UYqA;p48vO>Dp1y;<jT!E-M+3f#?vE^{m(KAQbI6?jWW
z=Fk7yp)&YWj%|czZ6<NX$*JJ<#><~0<WA<L?zK=Dr{x9FPx9T+Db)mtSFy1=X4G$U
za{1Z#1;%431nW>@8rmVU5w)dC+^{S*Zhl5Swp0h>yVX{Guh?Pj@eCXe8kFb3d$PjU
zjdD-x`f8Q&^JkdGlNd38W{6<m5V3X0ta>52M^uaybW>9XN)Wc5EuS57Q-uz^Ui*gl
z{fb{0ObL@wfxW=ckYN-aEX@%sacqHHkJVm3?}9iwChbao!WG3MP(p{BdLlhrp+27H
z?OhP(X($zjsqS~IG5m=ZqRv!R?EWdO1TxA|UN<6J2>h_v*2r7DKc9&RjC;R_9=yc+
zeX79^Mw8TOF*Cg?wvoVtXKoVV;MS(^hu&&%W4d_jqisq*nVd6{^`n7X$<yYIwHMs<
zGPU;+BFZaZi>crYE_M>__yr3^PL`ais(ai&+2YS{vGTT;ez8aLLZYF{5eyrA(SOk>
z*$nl*`{}F96HL6t9*7cJkGdUW+rItQlJ)q<HEB{i(N*bdn{@VF%Mi8?Gk)9ebz}`l
zxqJA1307qK-Z?dls}HCTZ^3&SF~&7tGeTdW!*pGuMP!rPZ!5;AaIZ58uq1`c_$Ap(
z+*<SuD!&XST$L*U1=v$LD1g-Rk?2kR2-ioP>6<IZ5=>NOl(|hjSw32`#!~#*h<gw7
z*M{v36DC3syTYnh$pF7iqXr76BteA`9v!u-kB&zxwfzZP)A<`Kw?s_aWVCsfUjA<&
zba^^vj_>Dfh0BcyJ6+y0*5bWC#l1O5rSkDVk4@nlMBH9^1IjNLCOc?Ve{!rO3Bv!9
zWNO{QBTyF{USIX&zgVWQ(3x)z_}O2@qeuvi>64jw=7qB??`uLV@AK4mN^6Hlwmg85
zuyAr4_FL!{E$4^{V7!Gz%?-&*llf76lopQ0@el6;kDk+5i!(V&jNTnAk5bqY#}}1p
z5&btJ!Q5%}r%k>2fm9#x%&cq_-)|2m!d;%7kZ1>y-K3p@6IC}N1n*`T0gQMLN9GD#
z;&x~(K4|oMr8nC?$HVp@U?b2yn<((?xB)vNm3$*p5xR0}+MZYOyq&wt=k+H6GbIBf
zBhPg9TD~stid2%Q^`^Ct<^fLo<<QY}hUEItg{=nz{z<WP%dtKED0AiX-8Z(|9;>_@
z3EOA90eeIqp4IDAe&5WryMHn7sVV7Bjms?0L)yD?EFy?FGdLll)u(*<D)~skWMs&-
z$k|3H+xx&YGtvuQ(gKsyNiN<cL>^6v9U>|LOYgR~A%2K_@vDO;4wKwux_<`pVb#wj
zAFXKOC(R_0>{^@Zxv`+B969MgjaAVh_x|aK3~V_a9Og2)bn4M-O!?JuA(ormIEilK
z$@OJy`<2S2|3zaSa(PzdE@A5M&HHDJM=ZlqszAApCya$HcD>9EX;!*;085MSW!Hn%
z=|EA+znoeruX>TkCZ7SN3%vTL=V&a0X8*Wc7RDL$COFiz(<C=1m?PYx%XGzw4!Ro|
zjLA*NEiN1v>Ya&Rg2~MO0t$4F%ZW?f9<_OWaZ06>u;C)aI_6d-<X2DjLFAtiyvs~m
zfA@;e;PG>sd1fP&J<&XE#(0l!TdM0&M}5~Ppnv92etK|ao@$A&k2|uhZGgE|Ip6->
zU^SQD@>vKdYvrwz%Ed^3LGPC+U)XEG#ywUzi8Szf#2mxZJ{RyD#cMkwK_7mhAf0lm
zvD=tg^<&_lnHEdCYmw0is}9FII`4=tX{NN_`bZmh6m)9dFz5a$>6+qNMAqzTJfwq%
zX9W7>GPOz--1>*qT~$5}7>h$c>9Js3-?I>du$RJVSu4!N)08qni+eg{fE?~`#WGNc
zc>JDNj!BoFT(Oni#KdEH>5bzmGN7Pc^=E1|vWTH#pZ9Ukx{!Jvt5*Lw{M?ueUJCBP
zRAy<-tU8&?ln@O-9?SLrc0+595H@=5s|5=LLshy=Pokq*Thirrxk7>0cpDpW5E}3F
z84I4hL;K?sZ&H@CyLK|V%acuc!o}mW=l-zReQkCIr0t&(g}HlR2Il{LvMOIio5EAi
z<O<flGCZKv?7xMEjYX!(gLfYA1*(@Rn<`iHNET<8%B7OYzNvpV!@HSnKalKp60r6R
zVI<r}(>{6+C5IKtan-hrO0TV5F6GXu%R8(2j;!)6{7#BFC_K(I+0YO^P8fgf+VLUk
z8)SG=wKbFDNw+4=$zgFA5t(mls(z+tF{cxufyJ1Do`g8XZCxAkP+HxFPSseYJ^>iN
zXel`@O>4K?xd=He)G7T%xzsS1HfDetR$|9wLj~BP7_5zw)t*rasdw7C2+Vm2^C{Q0
zhxcaI>>#fX>Q}ZOOlp}W5>+1=So%x<_;N_|X4aq#IK_8J=R$E2U<mnCr`m&&*q3Tv
zHWUT4BpDlOMCgpM!)BhG+QYP1?RS7?ESl3OMQ1u#tCD17xM$mJnmjsh#B)r*sfAom
z1IiO-yY!W@(z88rw}AVuNJBo-p*{Uk$BWV^1(35V^Co7dKKFXLtW@BYYiiA-wTpV=
zUQ3$-!>N7Y*D2OmmQrl9zFwnSLR0)M_;RYydR^ukDew9%P{pYM?40!(CsTq1{+7b8
zCMG&xul((*{j9jeo#HYhg(~TE4$^N%Ym>tQaN;%$`3Y1(y&x?1k4nVfA0~bqu7|8R
zQs0L>f)lnzK5w+Y1jw7rCk^TZE6o`i&XhrF3u;4TO>M#}od3@JqT7-*?vAxDrv3Ds
zzn$)%*=%23Z#TkOL-=he5s#6}&>VSym3=8F+|jP>!EpvDX*_rGa%iTz!eGkZ*$B@6
W?&E*e$dy<;Nn7V0>%HN7_x=y6JG`*~

literal 0
HcmV?d00001

diff --git a/squid.mkp b/squid.mkp
index ab2975478a692f0d9de368cfaa175e1679c7626e..fb912a247b4de607eef751901df98259ae2a2751 100644
GIT binary patch
literal 4518
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
W?&E*e$dy<;Nn7V0>%HN7_x=y6JG`*~

literal 4686
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

-- 
GitLab