From ed7154bae8611965f06068292e3332752d0731bb Mon Sep 17 00:00:00 2001
From: Alex <alexmihai200125@yahoo.com>
Date: Wed, 15 Jan 2025 13:44:44 +0200
Subject: [PATCH] Configured Prometheus and Grafana for  monitoring

---
 .docker/rabbitmq/rabbitmq.config              |  12 +++++
 docker-compose.yaml                           |  50 +++++++++++++++---
 producer/__pycache__/main.cpython-313.pyc     | Bin 0 -> 2604 bytes
 producer/main.py                              |   1 +
 .../__pycache__/__init__.cpython-313.pyc      | Bin 0 -> 120 bytes
 .../utils/__pycache__/logger.cpython-313.pyc  | Bin 0 -> 2883 bytes
 .../__pycache__/publisher.cpython-313.pyc     | Bin 0 -> 7441 bytes
 prometheus/prometheus.yml                     |  17 ++++++
 8 files changed, 74 insertions(+), 6 deletions(-)
 create mode 100644 producer/__pycache__/main.cpython-313.pyc
 create mode 100644 producer/utils/__pycache__/__init__.cpython-313.pyc
 create mode 100644 producer/utils/__pycache__/logger.cpython-313.pyc
 create mode 100644 producer/utils/__pycache__/publisher.cpython-313.pyc
 create mode 100644 prometheus/prometheus.yml

diff --git a/.docker/rabbitmq/rabbitmq.config b/.docker/rabbitmq/rabbitmq.config
index e846da8..b112f2a 100755
--- a/.docker/rabbitmq/rabbitmq.config
+++ b/.docker/rabbitmq/rabbitmq.config
@@ -10,5 +10,17 @@
       [
         { load_definitions, "/etc/rabbitmq/rabbitmq-defs.json" }
       ]
+  },
+  { 
+    rabbitmq_prometheus, 
+    [
+      {
+        listener, 
+      [
+          {port, 15674},
+          {path, "/metrics"}
+      ]
+      }
+    ]
   }
 ].
\ No newline at end of file
diff --git a/docker-compose.yaml b/docker-compose.yaml
index d266ae5..5142ed0 100644
--- a/docker-compose.yaml
+++ b/docker-compose.yaml
@@ -10,6 +10,11 @@ services:
     ports:
       - "${RABBITMQ_PORT}:5672"
       - "${RABBITMQ_ADMIN_PORT}:15672"
+    healthcheck:
+      test: ["CMD", "rabbitmq-diagnostics", "ping"]
+      interval: 30s
+      timeout: 10s
+      retries: 3
 
   logstash:
     image: logstash:8.7.1
@@ -44,13 +49,13 @@ services:
       retries: 50
     ports:
       - "${ELASTICSEARCH_PORT}:9200"
-    command: [ "elasticsearch", "-Elogger.level=WARN" ]
+    command: [ "elasticsearch", "-Elogger.level=WARN"]
 
   kibana:
     image: kibana:8.7.1
     container_name: ibd-local-stack-kibana
     ports:
-      - "${KIBANA_PORT}:5601"
+      - "${KIBANA_PORT}:5603"
     environment:
       - ELASTICSEARCH_HOSTS=http://ibd-local-stack-elasticsearch:9200
       - LOGGING_QUIET=false
@@ -64,6 +69,40 @@ services:
       - "${GRAFANA_PORT}:3000"
     volumes:
       - grafanadata:/var/lib/grafana
+    depends_on:
+      - prometheus
+
+  prometheus:
+    image: prom/prometheus:v2.41.0
+    container_name: ibd-local-stack-prometheus
+    volumes:
+      - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
+    ports:
+      - "9090:9090"
+
+  elasticsearch-exporter:
+    image: prometheuscommunity/elasticsearch-exporter:v1.2.0
+    container_name: ibd-local-stack-elasticsearch-exporter
+    environment:
+      - ES_URI=http://ibd-local-stack-elasticsearch:9200
+    ports:
+      - "9114:9114"
+    depends_on:
+      elasticsearch:
+        condition: service_healthy
+
+  rabbitmq-exporter:
+    image: kbudde/rabbitmq-exporter:latest
+    container_name: ibd-local-stack-rabbitmq-exporter
+    ports:
+      - "9419:9419" 
+    environment:
+      - RABBIT_USER=guest
+      - RABBIT_PASSWORD=guest
+      - RABBIT_URL=http://ibd-local-stack-rabbitmq:15672
+    depends_on:
+      - rabbitmq
+
 
   producer:
     build:
@@ -79,17 +118,16 @@ services:
       - "8080:8007"
 
 volumes:
-
   elasticdata:
     driver: local
-
   rmqdata:
     driver: local
-
+  grafana-storage:
+    driver: local
   grafanadata:
     driver: local
 
 networks:
   default:
     driver: bridge
-    name: ibd-local-stack
+    name: ibd-local-stack
\ No newline at end of file
diff --git a/producer/__pycache__/main.cpython-313.pyc b/producer/__pycache__/main.cpython-313.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..125d97eace83aa3b15b18e910cc927401c9833b4
GIT binary patch
literal 2604
zcmZ`)%}*Og6rcU@`U4vq2myzWjPg<9C>RbQ4QZPS`lW!Hre07~1(giz!E9siZfDj|
z`%;n~(qq)B>ZOMs+f(oTD~yN)-K1)ys)yW+$R)SFS?}70B%|Hg**EXKdGGf=<}j5?
zAQ)f&^=;`_4WWO<PdFmM;_#$|&`(H5y0nNEBqlA$Ovd70UQ`xTruu7TF~TB1Qx-L*
z!B<_3F2q<2qZR24(j&U2M`vXgUx}STGl623Scw;g!s9w$J*LO?#H_6Moa*o<fp?_C
z6Rz~+3|J?Io?4MF%X;rA^p)B^q4y0^>9$m+>x}dp?CEQB_jhq;N=k0vxi~r}d(n>x
zcjs>1@Y3_dxL0C!)haF#evjuQFS($9cC$daV_Tfw1VUedtgV^ur=Q=du9Z!`L0Ns^
z<`;N=S;x1SU91|EVbE2-aAW?%BNXh~*lEe&K%humk_Q7KuIZMk*Hfh2V5Z}mw&h7v
z^;E&OUHp+%bZpad;p`}{Rw{(m3}JXUWLSI$?_oboXAu_RmUMYqI)~m?)}@?6-T{;o
zM|35YHcXCbpcy;N-ZbHGOmK-&>Y7#wS19MCL@}|7xM(tJxExnGWnB2-Zcwamkx~hq
zUA}>fwo$E6%O%2cylyj}0Z_;%=4;p@n`Q~NKq-jcodRxt_fnwDAQmQu0f+fA;3s9o
zaLr9BP&}r23(%&5uZD#jr(j;WoFJRTER(e|ZF|Ho2`-ai`i%pY(;{{VBNYnDVN1B=
zvKqFlZfI!WV!4LbnO*UzYs}sPfAa}18embscAJ(By8<S(AP^qn4>qWA5BpyEu7|iB
z0VV%CVkr?Mc#)TyGVCIqsu0u4J2g*b5NDQwonCnP08G!(Hfm;2>SSX`Z}coR)TNhP
z1^R<XRH|!J+$GHQGHdO0U3Epi8bLV$BSNAD_<8XsELwSSN6`II5Lt6<TnPS25}`X`
z1Mzc7SEeOhot4j_E)CIR;_w@mE=J3!5Px;QOWJQ;M>)bmg_b1ik#_!S_4B%LH!Pm6
z<n(hftVi<^c+bFgR3B~ECWbU8WkyM{hFR6JKp5(+2k>*Nd{sojiyAg0o#oa?{9{C}
zw5qiGpq%E#12Sb^%H*pZCMK}*)mV^gUW^oremK00AEqwOoW%Nomy0lAmWG*S!)aJ-
z+=fYn{)L8OeS6Vyc%G(5_J>FI2ge)udgH|V2N5NcXd)$^c#%Ny{=HasCzgF28+oRl
z*i*-L)UjX8z45C%<5wT6v-`=x#?a+P&rCy|dCB35Ko91!b0bnc0tsY0ukRw)fbErR
zQGj@CbYgw9+tknLp!;<gimC~N)ru1!ZadB!5SQ5?9O<Qnsa+WQWyD0Gv;Y+M3KP==
zy!<pw0f3R-79fw+(?@~u>nIB_L`5Az9vlHe?D}Q%2o|pZ@tU&fN@^i{Y}^sB`=byG
zSDkO?J}vZgsNpJvSeNoj(9Grf#3!`XwTvobkhZwx1Gd-wuGLP`oWf3mA}<s0tvWV0
z{hKB3n$XZ(QgL#ckFn3l#sqf^t|aLH73wLLz2(JCZbLh-5ce4DUZO<Z)z;DM3`pkT
z<-%Ye{TMoRb}u`<lbwD#dVX*8%FgJOr-NfZul%s`<ClAblRJZxyMt2)Q8lSGks8s$
z<W%Q0Dc9#k*Wo@Uj>$yYF#)RA7m)HSxQcmDb%fU}!?c+QyqB)JW|`;P7%&08rx3?!
z<&pwM`+e3^0S&iRe0~B67mm9ad$$7jd6`~k7hzY_EdK+hrXoqwKj_lm=;9O9`vj%`
zLz4#@iuN{!C-*bg4iqW+-nIgi)c9`l^mhE2q&^(FKlJ^;BYS(OA-#1VN2O)yP(kuU
z(_c3GksNtAe1G`+3%k-lQ|^(j{I+_C;3Jq$_=M(Y$TP7k^&iMeYZJI()l7;_aYhyt
P9LSoa`I7$1FO~lRlapzk

literal 0
HcmV?d00001

diff --git a/producer/main.py b/producer/main.py
index e35b2fa..b6a773d 100644
--- a/producer/main.py
+++ b/producer/main.py
@@ -1,6 +1,7 @@
 from fastapi import FastAPI, BackgroundTasks
 from fastapi.responses import JSONResponse
 import asyncio
+import datetime
 
 from utils.publisher import RabbitMQPublisher
 
diff --git a/producer/utils/__pycache__/__init__.cpython-313.pyc b/producer/utils/__pycache__/__init__.cpython-313.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..a33201cc52207678fccb5cd06d21ca35c9e84508
GIT binary patch
literal 120
zcmey&%ge<81cf*2(?RrO5CH>>P{wB#AY&>+I)f&o-%5reCLr%KNa~ijesX?Fs(xun
vW=^qwe0*kJW=VX!UP0w84x8Nkl+v73yCPPgI*>WVAjU^#Mn=XWW*`dyZfzKL

literal 0
HcmV?d00001

diff --git a/producer/utils/__pycache__/logger.cpython-313.pyc b/producer/utils/__pycache__/logger.cpython-313.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..73f3d78dd99488dd1161976de3bb56dc2eece365
GIT binary patch
literal 2883
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

literal 0
HcmV?d00001

diff --git a/producer/utils/__pycache__/publisher.cpython-313.pyc b/producer/utils/__pycache__/publisher.cpython-313.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..007f722342f0223176b08fa1b2a762e62f916741
GIT binary patch
literal 7441
zcmbt3YiwKBdFQ_P(k1nv9u)Puk|oQuCE2oNxsqRz<VS2-lC5jHZRCZcsVj*wdC8nh
zIhKYkL04?bu)#{Z%yKrs4lp3@+8-)fU;$PPsXb&xw;!bGn(Vc@3S0j8pKK>c(e%f@
zb1v^CB`XV%9ZBCk=R4o|&g*-fPtV<M7lQKouiu>gl^3D^Aq}(eh062mP<a>0NM=S6
zHogpIXq&|>{c@OtFFVSg6|ivDhHVm|<3{ag9oRwZ%%~GP0mqNJ&X(aaiW5e~vmzGH
zy0KeAKGcR}n;*&cgRC(#_RKN?#}m>R53o9aE~=$;{zNpA3NX4Iht=t*N~+wsiPO;U
zm=33uR5Y&WP6DTuSSlPbI2q7ZXgt3Rm3Pr)L^c5%U|{jAA7NhR017e>&?b9i;j&$}
zU3Oe{3P9h-%XU9{jem{7E*Wrrtn4IhTqe7KUX;rKx@8d-?GBXdm6PEsSE8x03+Lyr
z#G=}qf}fNDmk3i>1NjiP9Q-~1H^9OHGeHz1cv_|khk($ec@bt8d?)QCjY3ss4;Hus
zA8X7MnU<EX!I3jLnqS~-o+A1h{P+?+)(*Y~AEAVg<NvWgTL~Yh$w#)sE~#1&jO>7x
zb%rv6mS|CumfLL2qJVRJ(Z4s6m{#_JEQa^03&TM<q{YLrSWiT|rn@JHhKJ8w9J>&D
zc|yKe(mX#gS=tQBCnrIIOycuHvi!}7$rHNALR|=+44yoNiHrn1x&xSplHt^x&L%Y7
zuBg|dIHBs?tdi2*m<nS2_0U`b)Q1C=DZwQZxU@O1DOj(xMkK?U_C^9v>#o=5m3bwk
zhC#X9Q7x1-ggUCu>J^cBj1@H%N+z^uDhkuOA_-MhBD8Lg%!Q#5`vIf#ni8AQh=fYI
z&p4#{R5YgTEihAXPjW$bghEj@nhJ$<{|g$_WA>2?(Ebj<TPW}ATjKxPz1Gxn`;}X-
z+<x`et9K`|O-GjahYtT*lk|^OANb$*f6)AX^J;mv^`&gnP@!i#^41+DaeCiKw)F%d
zZC>*?-rjv{_wAlrJ?X$e);|c-mFJt<D4)F4O1@2be=|kbH7xOeBR+?fZPs+6GgQ;t
zsHRU50$L_5EjKX;%wTX^od>L?dqrx~SgK43S4$^~bd;+l)kQpTwdA=3%gD?Cr?MqH
zJ;h$L20Tk`jx{UrtT1Vc-$`&VTg$-$0`$nzKhPs~JizHZ6<D5%Xjue<L041Ja7+uh
zbUqoq8rCb$$HGx{q}YS&fgSb((5pu*Av_<(Ah#(6Yq*y5`$&J)a4ZqI3IbfD!_B0(
z1weqqt)w0xl&+*TUL$uXNfK@&9rl8p>-8^6YN3lvrOg6(3$4}qbG3UO)b6=^BG+{+
z({=14KKIh4%uAQDwclJSTdS$h)$}~5=~+FI>pPX{JN1i;xv@}YER>F4&(tg|xz_y6
zIe+g1fA8w<tp8|1*lxc0&YQWqo=ja&wr(GhJlp|uZSpZhzNqB=EmYnmk_F$bWmf?a
zK7_u6VmmoCM@=_;=_umiwiNTmB{WNa0u0<WJ$l^<mL(EPXv(xM&@Yx?uwgRjk>dl<
z*6X%8ZZe8opVkEctU_7&jpH|t-|73{`1{9mJC49_UaYt=@%BVcY|V(RzY=$BaH#$0
z(s6oXV6x`s)vF;bx~S+jtfc0#8Y$IG;;ZN>{(<W6UZk?kXo}b}THsVmsS8+{F?Ewg
zDmP_$<n6Q=G|BR{DnDiE0&w0&XHBo=MK6~lqzY4(4+`=S1r*jIp|MJY%8-Og_%S78
zhrWEQY75#TunL(2&9rV&LKC}#>?F*&wFE6sDuDzYWwu+j%y+{&HMYoaY{Xcf%#xqt
zx`S*xYDHbhk}x>w8CF6quovJDy+^qgG{dx_Da+2-Q5f!CwNF)<Yn!Y#YsD{wn8H+@
z*$&#x)9|1JtZb9*19TRdRqaD|GLKQ4VP*<51{{k!CzbHD6qcySNQoH<C*IJc8Jvhq
zsX0X&kuOOz(U_t$c%1s@C$M<5=sk&X0!tXig3%#VgVIItiVo#^1U%kMA|UE~BB`jD
ztY7CyxZon8E}0FSvH;=ktb&_JC$B2kQ@Smj1oCO!dGdNhNfK|1iF?omh0LULS_%go
zh8-h12P#EmT<7WHK*%XuCZuz)ew|S?V!gq((P9`l4<QPX*uoepy{LGbDcXRA_TK>B
zLhBV(OTq?Q={(7-Rn{y|-;BQ#zau}a4BWlAR^NEL`Mu`5e73%O+4f0&^GYh$(wAxJ
zdsKgLd1$TLw^Dnj`cd`HryTP4f9gQ~mX*av^}C_V-@J0|PAco~S{}*Q`QQ1I{J!25
z{-Lk?*S@BFb^XnA@0`2ieOTR*ulD7t0}rYLcQ0hBd!YK%jr@B)FGp3oH`-A}&64<e
z2h?FPh2|HZ+EGRQbHtF<isd)X{MDJXZ_kfLR+%53y8DfEZQqBfN8*X~^6Dk=iw!%W
z`n^WZ^t-hq0(x(_eE0x&FW`Xsy#uZh)_(6O2le|bg@SA3Fn7Pab)=uW-!DL2x5pJt
z3(qRsTbN&R)J`+tdx_xC5(IBdl+cvcO+9RBkIeP3L00BFff~MylR(y4YO5GoC>^nh
zm#ws?z{_6XB~V_rExa71BR27(uO@TF1zxTKF9+r21jxu`goCN+;m^=lyeq&`7RH#o
zRW8VF`yLWa3OIu@Ix{1?H_i61a7qQ7$_M#L%kI)+r$F|YT;}0sl9#~3Sg(Pg^$r0W
zT*O+oP_>m{EnB17VZGbLT&g1|$mN4SLnsW3B=v4kXjK5}ZDKFEV(?o)*=SG>g4GB^
zbQ9#Jz~&o8u9T|=m~QYNUosoFT|`#0VrzFLIBRbuIBRD?hwL5TRcFxomG|K$_c3Kz
z=t&ZpZ7HSECGof53rRe+rA$Kfv9-w6Kno|cwSXMd3~&&6)Pv_B;Q}q-IbboWYf360
z&?GTrTMBrN+Nll`8FZOaK|M#E>?58-L2|w78giBR3;$wUAp;;4)LxTP3Cog7^kJnt
zCvbE&s-6p{bXTF8P-h{h!NmZ@#o$%tG4YWweOY-<C|WA2(gqn<UfPDix_1-87`5oT
zq|8MlG38vsK=i=SXlj01S*(Ad2bj<<y?jfT?mc-u2@gDFdI;m_wQ%erq+1p%JHFlB
z5%2DpzS!~dV8_^Chpbo2kvV00KDLQaX9k~;d!)`04?qo4IQ(>YK@0FC=AXy9Egn_p
zQxJ-23Ix*AItRTvMCH_5!h>>F(aUfGUXSW*=&G`y^H&nn3yaN$i!HuQOAi{nEgpoq
z#sgkmn29CADQt(P?k0{qswHL;I1Z=i0IxYib4Y@gj73wJ#0vP23HT!dh?9iWlah>u
zBZ|(yroqh!)ARA9MjsBk`$|}gM$GpyCbEf#2_UW+j}UMIK%mTU%wtg3J@CMQm^W0A
z58bU4PB%mnT6(2s9%3kL9JjHQR|&HaVc;%Okc0A+HsRTG7HBkLoeIvKd<+NgEu2*-
zl?dTNnn3S((aUc`M$S^}Vu`EY02kf5<oTqkZpD75EaU6SR&}q@hM4hnXRCUi3S5_K
z$&;?@%s6%dwYy>Ea9Zrli~f}(X>r%5HstlK*wfO!jITFawV#enOT8K2{%q9&7~D$-
zcV!&i8!i}}ZrGC+yI^#>p(`zRTf+x4zQft7BZc9IGrl9)s-rNxn-1TVaRds(52nR_
zI=nwE9$GJ}N_%(Z$^xG>w&xo6KWN;)dMJJPeCEJ~Y~$q8SiWy4*LOD4cQ!rxYPK)5
zG@fqQml1o{%WKnh-MR9feEXhs*KnqNBwf*(@BBut^H`?y*oRuSb0kyIzRa)8tkwBf
z`o6!g%tP3-a_R3ImTgvLUFy!kHl^NW_qw-kW&igF^9?O`+HMUjpIG-wId4bC+i|xl
z>)o@;ui~FL^Bwzt`t6T~G6zp(I!@)<M>FlC%VX=UJ-OEYOl$woMn2;I<;;IZ(v#o%
zkE;)_DCwD4_DXyMp%gR3rd#`=);7#8d)5a|=LXJa2F|B1OlJp_Wly^0V5Xw~llrFH
z{`dTM#<TSYmOLB0-C0FmOy}M{mlJnp#GR{b{=lJsKK|q5`L4kY0l7P$A=Z85cMzVD
zz=?HMS#eYUPqhzwe{yYgE?s;47wr$kiM&|(#fAVRzt@P~e_Ymasuz9S>pI=WeSEm>
zbQAaQO#;+6JzI%x{yF?T|0M)LJ0R%anjQrM58Ydf6-KBCQHKF8duuTtpehq&EPBw<
zAOp{-Bj5;F;7y{0Ev1<1fCrV8h?yi7VM}R4Mdt_)8_s;#m@eZCWWncPW!IQ@xp6^+
z-HjbH9ztKSD^RzwI6|}hEbl<$P2j|=Fan$y=s7$ytx#dR6bya-SZSEzlao3zMz#?r
z_Emc;rkUwJ;8|<z!-2?7T3~M~H^hz47~i5RJjBf~0sCUToC@QVRAQw~zj*NpIrS&R
zFGCvDFy>LUlrok`BnKsG#{(`*96TN+00YqNVQoQ;L=(E8#S|rp3A1f&FHdc+?l9-Y
z#0nc$5;jAvq+uQ_G_q9Fn3H5@+l#hwE6oD1(EbU)6EKbIO*B8~&wHwJ9tnOoSckh4
zv^>|)lWFM5Htbt={Fk@k@s2$!_Pnn#=K~YCZ?*2BZ(yyt<97VL_>WGn4z1!Jj%S+>
z=X{4B_zpi6P<z*g6P0@nhFOpFR7CYhez)dr1U+<ju2pz%I=|;kHx~8KPxP>2Vy(96
zX8e2cJ44ypow<sgk1BQ&wRCs>L6c#*->Dzj!TiHe#juEe-o*^NY(MXIkov(&z~6JQ
z1iBc&+!I|R5_hk5aHN5|U%`xcZTBk$Qm++&=6-_!z4s*!>YFqgWY<Wc?1#!W+WdcL
zDg<n7fLrv*sYJ3=9Lx(m1^*o~q=DpzumqqaX{48HFs}3#TerK#O(cIwSP(rSS6E2(
zI>Z~Uw_SxC8;BoC6dEZ*h`kYgnH!6sPM>BPNhXq}8);&4Jiy?2z`%cpAj?g1>5%1i
zg+lQJ36Y>KhC;8;hhv4F@=$0dinUZMsw!$C6v8_Qx4i_=ZPLhuoEj!lTT}$RNSc2N
zK(7gfKs-|rkc3ky9K8ZDl@<#90MVoum2nKO14ID{5VYd}{sKK?T|(nCA20Mi6Ir4C
zsiRh?x$E6P@L9e1Vf&9?`HWOI_8k?f?)H6(;PdRy7*Xi_tdSFH4Bmuopd241+;<Z|
z4imoyK)0n9lAuf2S~_Ih;9q%(xS_Fc5E_yGXP_sRn1!5&5jzo&K*KL%$=@YS5{?_H
z>NsMY;xW7gIPe)pCUApe80Il@Jw|1ZkrUu=QPXdb|1t9X1~vW`?fRU5lVNI}Ap$A4
F{{;ek9UTAw

literal 0
HcmV?d00001

diff --git a/prometheus/prometheus.yml b/prometheus/prometheus.yml
new file mode 100644
index 0000000..a459630
--- /dev/null
+++ b/prometheus/prometheus.yml
@@ -0,0 +1,17 @@
+global:
+  scrape_interval: 15s
+
+scrape_configs:
+  - job_name: 'elasticsearch-exporter'
+    metrics_path: '/metrics'
+    static_configs:
+      - targets: ['ibd-local-stack-elasticsearch-exporter:9114']
+
+  - job_name: 'rabbitmq'
+    metrics_path: '/metrics'
+    static_configs:
+      - targets: ['ibd-local-stack-rabbitmq:15692']
+
+  - job_name: 'rabbitmq-exporter'
+    static_configs:
+      - targets: ['ibd-local-stack-rabbitmq-exporter:9419']
-- 
GitLab