From 2256b79a8952f22604c030e4c10246a29e6f9001 Mon Sep 17 00:00:00 2001 From: Aliaksandr Valialkin Date: Sat, 3 Apr 2021 00:29:19 +0300 Subject: [PATCH] docs/vmgateway.md: update docs --- app/vmgateway/README.md | 28 ++++++++++++--------- app/vmgateway/vmgateway-access-control.jpg | Bin 39434 -> 40967 bytes docs/vmgateway-access-control.jpg | Bin 39434 -> 40967 bytes docs/vmgateway.md | 28 ++++++++++++--------- 4 files changed, 32 insertions(+), 24 deletions(-) diff --git a/app/vmgateway/README.md b/app/vmgateway/README.md index 46a7465b3..e9e5ef571 100644 --- a/app/vmgateway/README.md +++ b/app/vmgateway/README.md @@ -57,20 +57,20 @@ Start single version of Victoria Metrics Start vmgateway -``` +```bash ./bin/vmgateway -eula -enable.auth -read.url http://localhost:8428 --write.url http://localhost:8428 ``` -Retieve data frof database -``` +Retrieve data from database +```bash curl 'http://localhost:8431/api/v1/series/count' -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2bV9hY2Nlc3MiOnsidGVuYW50X2lkIjp7fSwicm9sZSI6MX0sImV4cCI6MTkzOTM0NjIxMH0.5WUxEfdcV9hKo4CtQdtuZYOGpGXWwaqM9VuVivMMrVg' - -TODO: need to have queries to show the limits ``` -Expected result -``` -TODO: must be provided + Request with incorrect token or with out token will be rejected: +```bash +curl 'http://localhost:8431/api/v1/series/count' + +curl 'http://localhost:8431/api/v1/series/count' -H 'Authorization: Bearer incorrect-token' ``` @@ -78,9 +78,10 @@ TODO: must be provided vmgateway-rl -TODO: no information about source for rate limiting + Limits incoming requests by given pre-configured limits. It supports read and write limiting by a tenant. -Limits incoming requests by given pre-configured limits. It supports read and write limiting with `minute` and `hour` interval. + `vmgateway` needs datasource for rate limits queries. It can be single-node or cluster version of `victoria-metrics`. +It must have metrics scrapped from cluster, that you want to rate limit. List of supported limit types: - `queries` - count of api requests made at tenant to read api, such as `/api/v1/query`, `/api/v1/series` and others. @@ -113,7 +114,7 @@ limits: #### QuickStart -ClusterMode + cluster version required for rate limiting. ```bash # start datasource for cluster metrics @@ -157,6 +158,8 @@ EOF curl 'http://localhost:8431/api/v1/import/prometheus' -X POST -d 'foo{bar="baz1"} 123' -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MjAxNjIwMDAwMDAsInZtX2FjY2VzcyI6eyJ0ZW5hbnRfaWQiOnsiYWNjb3VudF9pZCI6MTV9fX0.PB1_KXDKPUp-40pxOGk6lt_jt9Yq80PIMpWVJqSForQ' # read metric from tenant 1:5 curl 'http://localhost:8431/api/v1/labels' -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MjAxNjIwMDAwMDAsInZtX2FjY2VzcyI6eyJ0ZW5hbnRfaWQiOnsiYWNjb3VudF9pZCI6MTV9fX0.PB1_KXDKPUp-40pxOGk6lt_jt9Yq80PIMpWVJqSForQ' + +# check rate limit ``` ### Configuration @@ -278,6 +281,7 @@ The shortlist of configuration flags is the following: ### Limitations * Access Control: - * `jwt` token must be validated by external system, currently `vmauth` can't validate the signature. + * `jwt` token must be validated by external system, currently `vmgateway` can't validate the signature. * RateLimiting: * limits applied based on queries to `datasource.url` + * only cluster version can be rate-limited. diff --git a/app/vmgateway/vmgateway-access-control.jpg b/app/vmgateway/vmgateway-access-control.jpg index 24380bf4286f277306dac74e569e8f64d9531386..91988329a6d29a1e84f1affd942b77ad84b1cf64 100644 GIT binary patch literal 40967 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 b{M85k>H~lEfxr5|Uwz>JyFP&WefEC=ihSuZ literal 39434 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

-w`XEEUAEO1jpKFhzLHOO5xmkJ~&l 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 diff --git a/docs/vmgateway-access-control.jpg b/docs/vmgateway-access-control.jpg index 24380bf4286f277306dac74e569e8f64d9531386..91988329a6d29a1e84f1affd942b77ad84b1cf64 100644 GIT binary patch literal 40967 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 b{M85k>H~lEfxr5|Uwz>JyFP&WefEC=ihSuZ literal 39434 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

-w`XEEUAEO1jpKFhzLHOO5xmkJ~&l zo@{T&UB~PE;6$YKKQHH~t^?hILrWTBCXJ2gkri`laamSmI9Ni33Pdcd1@`PFq1oh1 zPmUAnoz|EggkJ~=>vt3?zz<^RP?w#Xbt0N&lhFE&F(OQ`-f3kT%^DaR>?NEUEE=Ng zrW*Ws=_Bh$7WskTwWxl(k+BgS+ZyQF3{Sxk`+I>h0`9J{5?1_uZKl`U1E4gyFN9oPlIKKi@V1KRD9jxbTx7ru^6xl z(?P)JemMM2&^mv9dAQi1w0S^C;#&e&JT2cO0&5_a^Rvq())97|Yxctn18-LAdV}ZD z{FE*`A4Z!ag`)IVs!?f<6RKB#U`u=F*rZ#Iek5JW#=5_LMap>EpBX|nq~g-0cDw`& zrctdTP7st8FB|I8PUveJZJyKR;xfxIsv^T#B2uoWq-^<%Iy%S>VM@)l8@xAYjQ0qp zxk{nu$35T@7pgXPKfZ)I5rc@**c*bfP7lq-U&$IeI3p~OgQum4#1C|`M&SOG(tqI? zg=VD{&2T4;sCmr&ne2YpKuE3r%N;5CSz?#!fS&wqy#|!_2w~|-cg3pWeSXemZ%fGu zhT!MSt-@&xCfq+T9LZnZB+VYPhp;tiWUBai<8vxd99*uNB4QTIpu~EYrTN1Q)U`BZ z^va31ORRN1@x#x48(2}4SO*k*F?>h92rJCpfo1H#P@G%rpAW#a__3?|1JJ_=>mxf2 z4NTgGVp_v$wu&>d{xZ^Y2k_1_SZTr(7|IlN{d|SWQ)ik8x~87KrR0XMiUNx$9;KL^ zlfZ^~bq;QSM!Z`J@_ztkB!|z+0z-lA2Vj-p0VuevhZSL`-`k1*cJ$YI;CiDho)Ffd z(h06f`H+z{}N`Ly_t8}JFih?)c}BEF-+i)vgma;7p7;=Wtw0k?C*W-KiW8`BR~ zRo4BtsmeOG?%2RCtP{VUq&ki?@i=j;6Gu0JavLGx!wthMk02O!nPdG=Si$~DsQ4y5A-j495D`lp`#-Mvaoa=vOcEzNYx(arOj&Gs^puYNHB!geCYLxQQ_)+uN;Tw(y?MwufEL63K ziI>`zpWa-fz0UEVs5{Tk4{nml>G3now5w6wopx2=ad1K4sR@=&Kn+B|h?VuRZuW3f z>kmBGK71p}+ZxKsYt>{shRHI+nfQg)Y;V4A_fEW2Gl8b~PQE5yuy*9oVre};T?{ZO zkm-Zfg!@eEC~0agR!c0rcIJ%RS8j8eP?O<=VWQ3%}R0>DbWC&sk{@?gqI)AuuIvF~m<@+u8$CsHP?=qv^sl+Z4*3A_5B)sdu z6i4*^Ie#J2mzeWkxyN~X!R-^UU40l+;#aWx9JHB{Cap}b-nvp&r_4D z!tXuO`~7*_{S^R<3o%GCk&RKd%?@XmYeRn2-Lot^_1(FIdRqr?ERkLd^ZM5a7$-ZD zcXsJ_tSSiLkwIAHi67N*2C6$Y#{TIZQI%~POTyUH!I2FEga{LE9`ch#*B*tW4H03` z-j)%Z3IyjBAjHP%ZHF6%4kV&5Xb`f_DY!^Whj!7@x3rP`^P6$pX&uX zleCmen4SkpNYshl9th?WP6jFtcTn#b5i$}U<*Qabj|E;M6bOhlO)43WL4PPGu`;VF z37wqOY?gM;dv9;jT8Ce)6@yxsMw+-czz%lKdVblS@msO{hutpc3*thsq)1R9Y)2_c z3HV1g6d$f}_3$w^){b_AR%25LeCk;1QcNGqkl(;#FzI-SA9|NQRY=nVaA2g2zFc*9 z_9jbtaJKtxqspe{g$mWRhRlTJ_yw!S*xV7hcXV&h>kVX*^^te5Ob+y8WKjf8GTnA3*5^Sz+kiA9wTtTSmyfT+2&Ah zwt4+mRMBQQUMHgy%<^H=FdAh~A_M)C4y>*iT?4i|l^cd_F3a699mTKzK-*6W*MIw^ zOy9_8AT>r-dFvbPgf3~PGSRJg38&dTb+NI-&Fl6m<+ukHJ+B$f`; z05;Zdi?YkJsNJLcOWyWBAF*sA=JdYR2BN{LHt?JOp|9GB%D3+llynue$71F%7ES#l z^`pB)a=cg`1evwB-%QfosEb{JbmG+y$**8BTltIR-ReLR*RVqls>{h2cbxSV>{+QJ zFBvt11N1&(<%@IPgQVM+SZ@iULdw~zy)R6#Z7aK3ss(9~wijA?UKPMgkq04SDQedw zulhkbP8^Pk^9=?q3z}$@fy@4Q{G%?R7(lmk2K5j*=2cT#nI)F9u-uXWnjtc2zR1)Zi|Zg zV;87pKYnah`AbybaUVq&sFr>she|$22$DePwYsQ(q|JqQbeT`4g)Km~FTadgr8_{~spD**o zFSit0;adc@)h$g+MH=i%?UjlSwgu)Pv4-(&+qZQ;H1Z?YYR@98vi6dmgKX&zoL+xy zm(M0~y0D)&gvXj{D`|b~C9E;cD~?b6+(pjM)G8si5wnzsOC(trOJZn5S@^0Hm95FV zq~t3MmYLoCimsq7e?g+Y%4TKR&WKx!d(kIAOZf@TSN6oPA@_iAniMNPKdj*8<+w79 z*M?+dDH&gP8wzIVNaNJuLG`_`e1hQfhQJpi{lM(!Z*(exLs)VY5zbJ8$LW* z0qOeVqg3+OU>p6KEQY|<(ADQ^!47qfu0bp2%DWzt5>bt=t4o}2 zx6c>MYfuJ0yq_(~n#d$U{2cAIG7NcG@@rvKfQfAj*BBv^^y)1LWLt){n$Q@?5F)VO zYiYk;gr-=I0UFu$5Ox#5-aCMrN(oVvN^F znT+h?2D8)V+7t~uClxnlk8tE<-#v57c=_Rl5!bXT#P4!iHD{EQxc@7n%Q^4&T_L_) zg6VLEy6V%`YC1jEPrW%`Z-t(qpoDYKBuyN9q`T%^vp*j%H^*JnpOwKVAm*FW1i~Y+ zdEjadiQb8C$Q)nYzhiAZSD*I%{dfve%UxJe4=XO}e)2CwQGbcN{?A|{##`+}S59+> z)ai~MKP!TJ#(B*`fnjJn%njW6RW0nl3neg{Y9AT^&$3e2E=MeBn(~|Hxm^6}mM<2U zxA1-35cWS5`j@>og7l&s6$q#<38P>svtp_{6qVyrG)8y<>fkwo;78e^bhm}1L2AqX zOzD4gK@h)1mxHD4U?r3Y`PW)~E5TcY!E210AuXr!nV+t9>|QYb-bFLoR>%P|z}u2; zi(hblyNIA(HFg@D;4mK6`APrj_4al1ke-v@ba{BkO5m%N{7 zo6pC}SYC@q(4YA68cAO?z-sRFGuQmgb>4O9i$&zw5o)7)JGt=0EgF#2hxhm+pYJza zWxzbC16C?%fVTKGR{E+Abs(9IHu2L)#>6byOij-n=BUv(3I!c&1B2)~6FdXgrsL4X z%YFIqr#Mu$3iyoyJ>Rilg@z3};SeLUQ!)cRM?%H-|D(OHj*GKfuN?vb0t5^02@nVl z!Ciud;O+#sfe_pY1b5fq?(Xgcw*dxs*I>bN-}F>Y@_n~G_t&0Z+uQyHGq3Hv-`Td- zde+0DiGOJ1Yo%n*T$PUs+74SdPe%qeq#6SEkBU7{hy^;s|LTeA4of^^R>$CywbX5+ zsa#~&xawH&R)oo>mv`fHnHXtibd`k%73h zX*NB!Nxdy=0w~aVb6kSU;KJ@JrcQ{wIxEXp;?9SIz+}4DDF*4RF!Ms$yR}txkQ?`6 zg);FlY!%|hPYT-q_$Hqnj4ZP=-P+FJ->C5CtxG?XY)zfmvhZ^?Qf+jiH;Sc?3GtyV zj7YH^09=it6;2&Oa~5)%Cx_`m5$oSuSW~QVhD#Eq^Qe|ljorvS9{sDvQK7fAJg9Sz znn2`OcZ|i8p50AxH}^|kb0=4g`^rO`MXLj?Ss-nC-%4quFh?Gy_Q828BdwQ!z9q8J zB9Yi*hB8VV3-wHrn_1>jjFa5?C)72Mc_WIL4+mak{o0)b zokm5t70pRa6J9JJt9Z>zZU=@-+?6z4IrehfP9}YYc)U=X+ZkV06S3v>k@xF$A{lv4 zK{@AWCEfH1I;X?0FNi-v4O{Mq2+mN`3*yYw2?)X#U-`9H6^-{(22#kiv-rWp6yRSV zM7W1?d%Xtm)#~t@pM3fXx2LaG>JnkT24R3f+{?WvY9oP91=Q&Pe)U&Pr11NjAq~L( z7z8S_e{bSicjyoyTgBrx+XWugGXAqpMhl&to3py5EJnBPJ*Hu5s+i==-=46WPfRj9 zzm+tyZaxz(?%R_nijjl&{Ob{+D5B$OGc5{+IF{5nhH(DfV@Xkv$?u(5puGCi4-nHo z4>Lbq2w_vE+?-cSXcg-xt=Z_~<8Iw%cbRHw1E)X}j5AkAT9$iI0Gnj#_$j2JM7M6*a7TFEPhQi6Is84HOjh)(q|+ zW8YEEGz&TAOCv34kp;^Jdf@~_eLho4m+`fySU;8&!A)181#wiT$j#PK6b%lNX9qgz7)rshInfJWd^v3@LQmQ{-<_C6eB7en`R0Bj@XVDqXyHvlL%q&cWTAQ)*T&?wl;OuW8pX8MT1% ziH3UV2|ipDlPsJZLb1F=F}}zvIE)B!7ma^rp#Dad2_ULwyZ<$|>aUOe4gyL3Hr@A@ ziD=rJ0R53r)d|4Af7GFanGF8RB(Qdhn2b`U3gLUD4~3$pO-+>P<=Rwg7F@(R93h*HJLA;xM4drRVzy?4JZ zlWeRH8=0_33`Wcli@Yo_@M8IZK(#{?l1euDJV>3Q5qV?ozV!`_V=>X)rcK%^ul>px zLSk3Ob?WT{##YN@O#x%^1+DWjbnS?uMzHLgGc);nuMsg-FFvOtN2quJxS25DNf-@n z)RBCtd0h92K6J{UG57Rv6X38>6kN6?zMq$<^1|3z}F#Ozl=yoC9PkBvmV# zV4S_KZhnk$x~!=Ktta5;q2!wRn*Q=Bk8P$k!xDH2c3DYrc6BK9S(j^B0=hG{DwD8` z_>ijd5z5TR+NSAQd#g1Y-V!$X*7|Q!*@ZlT4NG~oaVkgx&cC)*s-AWe34N{A8m^qO zph-w9s`oiQRH=_Up74X}F=$T9MZd=G@U`-ZLlF;jC)!+PCdoag5!o!_J7&8tJ9A`A z44F?;^bC2@ITAJOfEy`JjzRV{hi=V;6&s<^_*PXCtyl=Jx(aBam`H=hbYiGqh!{zTbx#KMLZgf7p3_n1POtR+U6TI>qe#ab| zdyXH33e~k|HTEz&XF{*VCn zw0~V$5A#*`8ou{Rt93eSx~7RRdBV@ez-=rmMliUY#5+e9POT<}-LcWHBww@7uFjRQ zbSPuaW3N`61`)yf-Hfy-$hIyOY5dr)I;wadwY=!EJ}cTBS0{@40e8hPtR8<@W8#j( zENAbjM?9`0uC)bm*03$ZrJZm$rp>@$ss*q_Ufa5UpD~&%og-;qNc?Ipi3h{s4O5h( zk+{y2ez*uU^S!bI{i*7vFZ?SFep|TS!l-yfuM|g1pK1W~1U*MPJ5;GQ)Vl0CpvPQs zur6A`A=rE!Ni{=(BTD0vMTTkteT%?NgL#9YSP`fngywRb$#{j zBcSQ`vigYj!8WzUA`7@lJ}+`smm&Q?W9;yq%jY`GAszMH&`$~nF5xjKC@6M4LXIa_ z5>2TmHN9EHUk-X*ix5kL=7%;mgBf)b!UV|(_Nmk1K-7T3cm)OuSPcHNUoa4q>ra9- zuFuPhV>931GQBPrf>v(?fVr0qe6qr=lZ;1f(x}Y5s!zAHcYC~#Ja_CK|>R$@Tq6{yGn|S1!98f}U-0-DS1PPxwa8(HBqbKM&vA8Mi(CSOvb@6_-Wp(<hZ~p^~k{@T9uCBC->@>Lmq~Vy@{KntE#y@Up3!GG&bg2^g z-QUtNqdnl$Y74u}0MyN^P9NFrA2QcSb=j_dp_S8|>mDL7t2}KVvK^QWrQ+-7Kc7!#OICm|Zq_%u z`k%a0WWOyys$v<+qiuq-NiiS{w8~Dp5X#)msDZ~}g3S-nK~LN7U2NkhBT{;HZStlu z=}F$iVX7KE6v9ExQeGMRD(z?`GTc^>NG8~X-M7FAKYi)~-><;xR7c##?o8~umgSWa zmAPJi?-*z4d^eyWd9^Qau`cis%w}=R(B~d~AIAsb!pS4ut87ADmW_!#FWB~@O?D{y2vj!Efc?%@O*OV?4u;T<%oeZswCo&n2Zc(nSArfWq7_>gjt=7eKW*i^$jzN z4bHgl{GtSrp+d*%{R_whWa23|l-5=9&52l~7kPAAg6o;{RXQ4LvielcNmxMb74-AW zO>W7hw&qad8HJx-sm>zW3ycQg(E9!>%Sn5}FRs#KcjEf-bvU$Gjm~wlhp+8zO%3an z^|bEh)%3i87C_&z(MhyfT_iYUj9Qnjjb)tE*wtZrQ=Em=?Gl3OazevnjclrtWS8XL z8Ve>auB59Jdv@Fy@pZ^03dtvWhZ+_^qBi=?budFTd`7;Ox@?YnK~{64^C@+_)h2@^ zK0*ZNdX7Vl?g4un6!329m#qnCPU9hEAKJEZe?6@Bw<-Dm#uW_8p{nr2MYZUZW#*Tx zEiNu~a{l~vl)MEDwJ0Y8mC9|&83MIFDR&tGR(H7In!f3}8Ff)s=&UqVLl56llR?i9 zkiSW!xO(+&+^WEF+$<1ek`(-a*@8hNZtp^8#EW>mZecu{OM#qpR8SiH0?QsHTdxSk zN2QR3nAJ97^l7)g1f`?_A3h$FKtKVFRQTg-<1G=|9hFzF_UV`cQUEw19^s;Jc*UL1 za~(j()N0P>@(0OCKl}RcDj&+VB+_GRH&f*UusX>D&6LD>eO+CI=XyoKy_tX4!%Nu< z53)%u7wMcPWIttxEUZ+b_vR7CB+h0p0UgC%XZO>{+@VxqZr?rl%2MJ zr|i<&W?b`0;GES(XB?r*C<*X>_1!R1CRPsv`T$R0eUq|)d&Scv-^cNMG)IgK!zZ&160^!E;QXRI5`erEVn1tC&UX^ zv+J)D7#k!L$b5BG5=z^pArnd~Yi9a%GK6nx$SAQdBQns^73j7lq9WiUfKdQuf#-jW zR8dWH3h&bh^F0-i7`sb$7%$ZeEHyIXHw06J6QJ9AHF?8EE_w062dz9%T`vKmaHxI! zr4p00GjCJ&vjQUttimcijFIgSv=Y0dnV@P$)B!A)+5&3}iu6jc!#FZ~PNMbY9FV2F zR(Rl@XO5H0{F{2sBK7oXh6&2};qPy#;$tvUKD7hl0i=nvULB&^sf@{72tDSdnF93+ z?+qq`oEmAuxbf8Zg#8>stF zW$fiAZynznKVPH=>VzeAw%qs%Uv-mK# zhr=P?Aa#pK!uWj3#IjJ`kFWwEzelI>6tJbPu|8<}Vl_fL)3*yR=f=PfUe z{89%#huzi}TBdXr$eh*r$0B;iOB0PmDeHLh(45ITv(*w+#fOm!NbzNXu$Qkz` zA0f$H`co(^n(}G9KP%6wQNccY+ziDd1IJC69nIVHn-pcVYnkffYc;9W_iU}}##ETj ziS)Eg^LV63ZgZo;)UZXF4Nat2a~e)!gK9JOp|35w;J4-i{8R?oLpX+9>^4r!H|v6` z35N;Xb(WQDqGjtwzi@iI=#yKVx+MV3W|kiSTB>116?d9G_3HXot%psD0nYupDua}D zKH87J8N+bjvX*uOGF`sr1iU&T3m36mIsL1RWDk!470Vc`7|<2E+kp6p%c~&I z9hfZ7l{MW5u_8P9gEf-zge3drAiLXPmGxUfvFO7q{cY>Z>a4+T=Ds=sMvgG|zzN}yCsN6_> zX@h3^HSM={3;)|n7G#ZWaVcwg1;t52^HBVBrG;V?E!G? z2}fqUMcQ4yQGZGW7cn(&Vhb$(UUvMgEWqFUJRRM&7TgC+#sFw*OrB-cwURS^3OGiq zirfPQ3-A`iS`6HBPFD3`ZX#Nr@ZzNfRw<{RUc4e}g9%A2lAs=}5pzc!TI;HA2%%{Mo(*z zqvZ_ycu&4MzWpth`g2_5FJY2A>WW@{c;Ee3_g*4~ynKd<7tkS{Wp+m`@jMI$=}j;? z-fZEc^+_z4?Np@cBda?bcO$-|@G`8)@sYYbVT{%X9Q?OY4P0~}zEE>F!6`dewdz}e zXJ#0SP9A4sQppW4M%58$i&3Edr%@b_n6GDaA2;KSfBzstB$;v;DjahEm@iiQZKa%6NqlJ=_VoN5f=?2TemtY_B>Ky=?o zRWk-_KT{>vWB;*>bhH=KbZk^pHSYYwM=z&5R}uUu8JdhDuli91sZgBPsiGnILVT?S z*-pB$;k^#=bag7dGcpwu(TD6upGgy(8$uWmjmdLeX6g>KZ!bfydk<{G-|B13_wkHG zyr~j+N+yWkn%4qy&W$YIAt6cbg``r~*Lv@{zjac245Jmu-BjUK4kWp3L@LUUn{f)Nl5H67k+s>J$5NjYsdG9g)*VojPvK5CiPWqAK zORUBsF?8v%{7W$~Ya|%;wG#*YM0<@**&6R0R6pc&H;X>*68Nf?ic5p{$bC;2dqLB@ z=oDFb{0rqovbf)q()U}hj+7HN)jssdc}bL+F$s?)ypvA|=n&4b;*X(2FMjkmh#4IZ z!6x+&l61rQGppX^F;`C?-cuSEXe}e*QOh@H~KlTl8UkYJMIO)*aN@} zUUxkR+|dJgH(*6F!IPAle(Hbcd9C@-S@r{z?a0PwEo(sVGZ%~o{vVe!f1*D#xQ>3{ zrE5E&&GXzfWUKgXNP1Um5Vmt{5=;)Y-S%(QfZ!vUKDZujAF4+ zcsiY!`Ndx}j*b9tcSCS4aEI6R1JolAh+vm}0HoUDXYic?+7A%+KZzm#_r(7h&9iY6 z-+hd9?cc4zo@SO$BWqOrmT2%3VSZhG2)D!&h2o+5ZK@AzO(uE)Ba2vu5R*W=P?j$B zlZ)xpFJ{&@Hbwp4q)=$WX$hsGq|jL;dB16VHq<*W**!2&v>iUDXOuZr^&bu9RsVQK zIqqx_rdb<=%qfDc3}V7>$2S;dv+7c-Jn8ed-)|An^3j<*u;FWI)Olj~39&;gn$9M| zVY{vbhubrtnbM3Q*ep}1bSGo6#O7n9B<5?JvqfD$P_#Fi%(SpI!oFi8W6+UdMP*ep zgg(=6S++I;1Ml7acDsViQ5TUMd8RDpeyCnFDbnb+)=+^N=7Qg2MEX`08Hpy1ZYr|LLA0U&JUCePq zLCab$`jJ9X`4f%uWr+J^ggADr^XeBvQ~qbwaUB=PJjg=W56RfG0nN!+v?gRs3TXJp zONHVqEy{Fv+QhZNW_dk@v*Oq})tCiHgU#sM;R#0rd|Z1rQc47`v+GX%(i`LANwU&w zzJwJ%XqWUsV;7hezETMCYk9dm3p+RWpoJ8#O<9BQSV!~JUI$V(0H8{&oZBz~7MHHD z#He|i=6IR4=PK?QxytS1J6kOyFQ_+%f_NE)U8&e{$4$$IMmO#fiI2k6kzsQGbm=kd zn}E5wS{6x#bT5#Wp?&TVQeW<@j%fZaq;Bl!tW;kz`a=h_9V4xMI%w!*v-px9f1>y( z>+FdBU@b_gpVLSXjohcdggX-$Z2!f|Bl90Y(PB?b&pzMydtbZbdpf^bTGH;c(^Vs2 zCeY^j0g`%N5I1DANIZ-suhl2<@6ieWCtv$Ne1`iQp|9U(O;p|Ac8f*%yW9>HmbK8_ zGz<4fiD6ajW>b^>?OS|(qM-((COQDU{7csmI^ z_(}tZ9|P0oDG+e*%_F}59lW~M>RI9 z^hmPL1sri_pTmpu(%diWw0b>*R@W8-W}U`#7!FS&5f}~ zec38>a5rf8cWIvAR(6(uczaWE4=5)!IYX-KO9bN?sV~upDrUQjLr{g_7=#d7P;;h> z*i@3))20C`_$dD@z*gu72nZ^LstRe{Z{Nl65k7PPYwH{K39p|P zt-pXcKRE~D9hb2fY2;Uin0M9R(dpcVY={S3JualjVf-h|A@GEPrNPgY&~ z?!a$}nSen?1`7pMk}Z6_4Txg|(4BJSnTH_roqr*_{%MT=@A0?$op|TbB6eE#zKY9O z3%lj^f#XN@!3LYaXM`1dT>Bb79nb)qfQ;IygJKdcsAk1;F^K`uSs0$=%!_qCKve#d z$HG=vSF8e3TU4alOC?XNEwP{)&Nd~J3hhhg?aA#4?{pFEURwCqd9t%48ttj_sg7L% zYWjbS^~4@s0$fhVfw*ZP5Go5yn_lYi4e)IQ;4nQvo^(%W2Dsz?#+Cj24De-P034U< z6c79?bZ=f2rI&j4c><{#fKf!RsO%nVdQ1*58CfILw(gR*h&z23cSc?>30n50Ao(1= z%D3l^tLmdQR%~yIz3zR6mBbbgBX>6c2~Lj)@X)GG09P*~X_zaTW}eLpi-I}2sZ|#47l)$k)Wtq7Y&8)6tY?Y65r#(wFwGmjj4|~il)amIb&7*n;(=`eIT5Sq!b#aBU=)?B2YCR^P36CJ>QKq6 zcezibf-{^;m^)ud?>}T}`vXMJaY6gdec2pzY{zH5tTRSe6KwBPaZ4drz6wE-Nl|C9DrEJ2 z$0f9KyvkFh@&(Om0efw=6BYr#6#m|0n?vNx?k+)kHCz-V{ z;AuEUK9th=ofpTT#gpLTschF}QfpC;?jmnb^?-({z6yyZmv%;i0YyF)QOGmNH32kr zrz~-I_V2k8LxD6>u#clS#88T}eS9K!7slYx{Ml#+1DnmM8e@BMb0|JoTYi^#F8t^Q zCCZavosKL`tL0kV-L+s3ers!DW#EMt6GgFRox98jS({JVi`!nTw=D{n7xwfj(`--M ztZHiOpFABvuA^h$z=TJgXvpydnYGO&VW;3Wh8CG7;>0t(E24hvP;OA|jkt0uNFk=tat8? z2foDi68{~hmh^Mv(EWaS?+?ra*ia28{oX-Y2wkT0kVZ-O74G8%L)NUPbzum(wn|hd zFH<0m!Wv6^IJg?hg>&;d(62?zpF!;WN=2~MMA-ZNJ)jRakc!e>0`Z`8TCnk+q+Qb? zr~2~S`CO%XJ4)iVV4^T*vTxe3bBoumy&hQOYmf_zCW{VF$}SykeEj|(zAWAks1n41 zY^A&~*`E4ZX5sW3etUa7P00XkQtV<9!!w2f<8Y=M`Q%%m4|s*zk=Tg0_0O z)_pTR)PIYiCGn2{k&oSsAs{wtkCd%rO|p`r?=QcfGqMh*gtirnlB9|7suRbsI9Ful0W0YMJ9(G#FW+2vn%y^cWnV5Y8dC@70ur2&pBcv{rVuuxP&fSUJW5#^#=&AF3{fjg39$Z-AAowaFGKqGDJv4&gzzK=eF5)2t2(H zijNr>OUo{ZWgaYSEiQ|8l~Xyxl?4k68+fBblA>hccPp>OM!TdbM`yvjY4kqfOyA!X zH*oeT+s8mMi=E|5q&7g-SsOd1D&YLnkQm@+$^l~dA+$Oj)%#C&9H_s~ zaH;~ou3Q#U5lg`v-gfFQVv)Ex!~necjv6N1$c*yq!hi+xNScF62##*XzLbrHwZkU{ zy&xmS2nxY=QXPxImnY&rhaMD5n#1V;pKH>QUNR~C;=9O`6r8@&@u0cNQ%Ph)fNehrCKa?v#Eun!&_n1LYKIBA(8ny`_1rnNz0?6Y8jwC+$ZEpWzLa z_dO3e68?%hxyMKAJJqbZruXnFO{Q+bH`QySydD#`ULNVIlAf18+}(mtWP7iyjnT)t zTAVBM92KWH!MuDFn7(~MxHyN(`Cw=I3@3PILNXcw)L5!$90Pt0V}XXV@c0m$-5&lR zP-w}DeWV87oFUf-CG=%o9q;Ia+AWUo{$PXqi&>_{2I3o}xFArsPgjqd40L+>JRY7? z1DV#ApimUq%5m>q283yVbL@Uw$N^!rf3j+Z zO*>r%GB5zl=Pb=WU^>nQTy}j780Q3f9$*6j^qEP3Lbcx-t%EA)C1fKqF=w*JM^F$d z$HVV=x<-pL+3q2122tEsb>wDGW|212-|;aMNtj-EI#SS!Kn!mibYPl}D)06bjO8%; z_+VT|V^7f>UCWm+e)!{rn7Ex@kHjTHel8lEG(xhO(HiotG>Jv@M~IxSio$41Bqb?J zhGi52Zv^77{gfO6{{!}?LtZKC%S7hVc$P0&SDG1Wt-3n6ypZA8!Z|ffC@qfK3$-qi zY#_`fNA|y7KJVAdSdWx%m%De?pQ zD6;2R4ZwKA>E20`p7=RwKKPaZ96aa+U@KvI`HnA>2TJP=*iF3dTt24<2y__SpIFE5 z)#8gr1F8|U()J%%zQsTEi1s#bw^tOF{#_b^D2P0kSqLX&hCjiF|CG8xJStYdz{&*6 zHdc(C&uhj^+ucVCnGtYr9g%$y?C+=WVEw`#+o2?#nhY@H#-IM)%=h2%{s@fgXx9MD zRd?^J`vW9#WbWeg8+zBm7h-OOr6M{SXxAi*0o{2mqbk=BJ`~EHVz9O6^2nhU!A+$_ zJpq7fe@a;Y5{XbutlD#99G_3jOSyS?lkZqtUTe0*#)k~X)9s#ad8RwrEM)#|_uFe{ z8H1!(=-H8+d&PNh1gatxd7@Z~=<>>Gay8Oo^nAJUj&#y2q6?W3Pi_o@ssP6dW%}1D z)zj+@uHwd;u7UK~3)%W_INyH^%J z^?{it0bVOi9UWvVYjt@Qq0*y7jZ@jvK){S{-6Wec+pDtm=1D8^ipWe1%~QMucqY}M z(c25C&c1?En%v2BSehqatY4l5{lSE0>zuk01NqZCAerBG*z~N~C6ieaxW>2gu&y>x zKUDTgNzapJJG!0QkifnsCujPiYHpO`(h)-JcBj}#RU{P>`g0po_{MCcLd#{Szqr(GG`<*oRe22pese+$* zC3Gy3ZOtcixxbXB=4W6Fj>4swgjK5t?QB|FvCZ>|NXCsU_bB#XJs}1{km9=FBI{7U z!V-VBC$wqr$Y-+{R+XM&!@p=+M&I4Enme>76xyEcLp_e+ee1ODQxBMx6<43I72~qY z+86G{pQv$0O+b!}OxN_7N;4cxaoqt^J9X(G`to_VWhi}EC=pgZH04tB){<~uob?(qql zBU6yy(}{0>&;FoRc9P-~ISX-L_5p898MjVe@QJ^TbDH3S42;obz)w@K)FKiY8U)Qw z*fmK%ds{bYX}~;7U{3X%jlDOqfh$RB67zk6+;!dv?r9R=m}1;q(^pVuRM>bYvuV`-HS7uip+W?Oc6WT$&%w>7-w0 zmdF|o0Dq_Wn&MM!f>%)D#+a+=WGstT$$R6LYHFWYsU~r-9T|22tg&$n8o7qwLT)>8 zHHbI3w{qMVY7i~0R-2QDB;R}v{VL$)GdlPw4Cw7%0_%g?!1#7}{1C#XKiJ^_xvF*K zNXpGCKqhaTpdC<-!s&&5uY{w=0;6xE(I^%Q&g`)#u9D~kQf}0JL*#TOw1x5F9DQqM z{_>m^7_xsdeCdxW?j!;AFOKdd_GH_6CBf{k3}3D$bDy0ftGuW!@$!;&m!xLzYyy_V|P;PU`OFP2-psceV8Y_i_siO!AW5dLq@`9kv`t6 znQPukTn%}dN{e@dF`F|~n1h5_%3>3NxPM+s+fG6RVZ3{sBS{*}hAbtiZ>c%og+2>d z2s9`xhw4t;#E<5s&a5yjIq*zKzZ<8=6%B>H8YjOy83qzAmkeS}==P>EkdSGLa2&a{)q?xxcq^_P zJy8$m`aG&jak$Y?uS40ak;O}N6X?d8ziwuCQcJ4CP~04neleThYqVdC)|uCZ4x4(# zrEZb&5s1`r>2n!G$;cLze9e{umI(=eKr8-db|H@%gb;ys zV5Po%iS2n$-cYdb;)*x55CnxTjV#h1>IEU9zb6lTRCo_sk-Hp|;#C}gvu5Qw%Qk!* zO^#r;_j(zd9y=pZTyEU1MRV|BV$$-Mx2@qa07ts*olj6Tc$IzGn5l0AYi<)v=&+90 z_s*b3Qk0CgHqG#oRv!|55f|0Lo;X5GcC%+vT oEQglu(F85pGX2>*gvc_3XpsNA?1%ohoPSgY{8w%hfgf}K2i^f`1ONa4 diff --git a/docs/vmgateway.md b/docs/vmgateway.md index 46a7465b3..e9e5ef571 100644 --- a/docs/vmgateway.md +++ b/docs/vmgateway.md @@ -57,20 +57,20 @@ Start single version of Victoria Metrics Start vmgateway -``` +```bash ./bin/vmgateway -eula -enable.auth -read.url http://localhost:8428 --write.url http://localhost:8428 ``` -Retieve data frof database -``` +Retrieve data from database +```bash curl 'http://localhost:8431/api/v1/series/count' -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2bV9hY2Nlc3MiOnsidGVuYW50X2lkIjp7fSwicm9sZSI6MX0sImV4cCI6MTkzOTM0NjIxMH0.5WUxEfdcV9hKo4CtQdtuZYOGpGXWwaqM9VuVivMMrVg' - -TODO: need to have queries to show the limits ``` -Expected result -``` -TODO: must be provided + Request with incorrect token or with out token will be rejected: +```bash +curl 'http://localhost:8431/api/v1/series/count' + +curl 'http://localhost:8431/api/v1/series/count' -H 'Authorization: Bearer incorrect-token' ``` @@ -78,9 +78,10 @@ TODO: must be provided vmgateway-rl -TODO: no information about source for rate limiting + Limits incoming requests by given pre-configured limits. It supports read and write limiting by a tenant. -Limits incoming requests by given pre-configured limits. It supports read and write limiting with `minute` and `hour` interval. + `vmgateway` needs datasource for rate limits queries. It can be single-node or cluster version of `victoria-metrics`. +It must have metrics scrapped from cluster, that you want to rate limit. List of supported limit types: - `queries` - count of api requests made at tenant to read api, such as `/api/v1/query`, `/api/v1/series` and others. @@ -113,7 +114,7 @@ limits: #### QuickStart -ClusterMode + cluster version required for rate limiting. ```bash # start datasource for cluster metrics @@ -157,6 +158,8 @@ EOF curl 'http://localhost:8431/api/v1/import/prometheus' -X POST -d 'foo{bar="baz1"} 123' -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MjAxNjIwMDAwMDAsInZtX2FjY2VzcyI6eyJ0ZW5hbnRfaWQiOnsiYWNjb3VudF9pZCI6MTV9fX0.PB1_KXDKPUp-40pxOGk6lt_jt9Yq80PIMpWVJqSForQ' # read metric from tenant 1:5 curl 'http://localhost:8431/api/v1/labels' -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MjAxNjIwMDAwMDAsInZtX2FjY2VzcyI6eyJ0ZW5hbnRfaWQiOnsiYWNjb3VudF9pZCI6MTV9fX0.PB1_KXDKPUp-40pxOGk6lt_jt9Yq80PIMpWVJqSForQ' + +# check rate limit ``` ### Configuration @@ -278,6 +281,7 @@ The shortlist of configuration flags is the following: ### Limitations * Access Control: - * `jwt` token must be validated by external system, currently `vmauth` can't validate the signature. + * `jwt` token must be validated by external system, currently `vmgateway` can't validate the signature. * RateLimiting: * limits applied based on queries to `datasource.url` + * only cluster version can be rate-limited.