From 3f63bc0a5f912555b41676fc6cebab5a87aa18bb Mon Sep 17 00:00:00 2001 From: animeshd9 Date: Tue, 5 Nov 2024 02:05:34 +0530 Subject: [PATCH 1/2] feat: aws sqs prometheus dashboard (yace) --- aws-sqs-prometheus-yace/README.md | 360 ++++ .../assets/aws-sqs-prometheus-yace.png | Bin 0 -> 121103 bytes .../aws-sqs-prometheus-yace.json | 1754 +++++++++++++++++ 3 files changed, 2114 insertions(+) create mode 100644 aws-sqs-prometheus-yace/README.md create mode 100644 aws-sqs-prometheus-yace/assets/aws-sqs-prometheus-yace.png create mode 100644 aws-sqs-prometheus-yace/aws-sqs-prometheus-yace.json diff --git a/aws-sqs-prometheus-yace/README.md b/aws-sqs-prometheus-yace/README.md new file mode 100644 index 0000000..de0da0c --- /dev/null +++ b/aws-sqs-prometheus-yace/README.md @@ -0,0 +1,360 @@ +# AWS SQS Dashboard - Prometheus + +## Metrics Ingestion + +### Configure AWS SQS Prometheus Exporter +For more details about the exporter, visit [nerdswords/yet-another-cloudwatch-exporter](https://github.com/nerdswords/yet-another-cloudwatch-exporter) on GitHub.\ +1. First write the configuration for yace. for more details about yace configuration visit [here].(https://github.com/nerdswords/yet-another-cloudwatch-exporter/blob/master/docs/configuration.md) +```yaml +apiVersion: v1alpha1 +sts-region: ap-south-1 +static: + - namespace: "AWS/SQS" + name: "signoz-queue-yace" + regions: + - ap-south-1 + dimensions: + - name: QueueName + value: "signoz-queue" + metrics: + - name: ApproximateAgeOfOldestMessage + statistics: + - Maximum + period: 300 + length: 300 + - name: ApproximateNumberOfMessagesDelayed + statistics: + - Average + period: 300 + length: 300 + - name: ApproximateNumberOfMessagesNotVisible + statistics: + - Average + period: 300 + length: 300 + - name: ApproximateNumberOfMessagesVisible + statistics: + - Average + period: 300 + length: 300 + - name: NumberOfEmptyReceives + statistics: + - Sum + period: 300 + length: 300 + - name: NumberOfMessagesDeleted + statistics: + - Sum + period: 300 + length: 300 + - name: NumberOfMessagesReceived + statistics: + - Sum + period: 300 + length: 300 + - name: NumberOfMessagesSent + statistics: + - Sum + period: 300 + length: 300 + - name: SentMessageSize + statistics: + - Sum + - Average + period: 300 + length: 300 +``` + +2. You will also need to supply the credentials for an AWS IAM account to the CloudWatch exporter. +```text +# CREDENTIALS FOR AWS ACCOUNT +aws_region = us-east-1 +aws_access_key_id = AKIAQ33BWUG3BLXXXXX +aws_secret_access_key = bXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +``` +3. Run the yace exporter +```bash +docker run -d --rm -v $PWD/credentials:/exporter/.aws/credentials -v $PWD/config.yaml:/tmp/config.yml -p 5000:5000 --name yace ghcr.io/nerdswords/yet-another-cloudwatch-exporter:v0.61.2 +``` + + +### Configure OpenTelemetry Collector + +1. Add prometheus receiver to the `receivers:` section: + +```yaml + prometheus: + config: + global: + scrape_interval: 60s + scrape_configs: + - job_name: aws-sqs + metrics_path: /metrics + scheme: http + static_configs: + - targets: + - 127.0.0.1:5000 # Assuming you're running the AWS SQS exporter on this port +``` + +2. Add prometheus receiver to the `pipelines:` section: + +```yaml +service: + pipelines: + metrics/internal: + receivers: [prometheus] +``` + +3. Complete Configuration Example +Below is a complete `otel-config.yaml` example: + +```yaml +receivers: + otlp: + protocols: + grpc: + endpoint: 0.0.0.0:4317 + http: + endpoint: 0.0.0.0:4318 + hostmetrics: + collection_interval: 60s + scrapers: + cpu: {} + disk: {} + load: {} + filesystem: {} + memory: {} + network: {} + paging: {} + process: + mute_process_name_error: true + mute_process_exe_error: true + mute_process_io_error: true + processes: {} + prometheus: + config: + global: + scrape_interval: 60s + scrape_configs: + - job_name: otel-collector-binary + static_configs: + - targets: + - localhost:8888 + - job_name: aws-sqs + metrics_path: /metrics + scheme: http + static_configs: + - targets: + - localhost:9384 # Assuming you're running the AWS SQS exporter on this port + +processors: + batch: + send_batch_size: 1000 + timeout: 10s + # Ref: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/processor/resourcedetectionprocessor/README.md + resourcedetection: + detectors: [env, ec2, system] # Before system detector, include ec2 for AWS, gcp for GCP and azure for Azure. + # Using OTEL_RESOURCE_ATTRIBUTES envvar, env detector adds custom labels. + timeout: 2s + system: + hostname_sources: [os] # alternatively, use [dns,os] for setting FQDN as host.name and os as fallback + resource/env: + attributes: + - key: deployment.environment + value: stagging + action: upsert + + +extensions: + health_check: {} + zpages: {} + +exporters: + otlp: + endpoint: "ingest.{region}.signoz.cloud:443" + tls: + insecure: false + headers: + "signoz-access-token": "your-ingestion-key" + logging: + verbosity: normal + +service: + telemetry: + metrics: + address: 0.0.0.0:8888 + extensions: [health_check, zpages] + pipelines: + metrics: + receivers: [otlp] + processors: [resource/env, batch] + exporters: [otlp] + metrics/internal: + receivers: [prometheus, hostmetrics] + processors: [resource/env, resourcedetection, batch] + exporters: [otlp] + traces: + receivers: [otlp] + processors: [resource/env, batch] + exporters: [otlp] + logs: + receivers: [otlp] + processors: [resource/env, batch] + exporters: [otlp] +``` + +## Variables + +- `{{deployment.environment}}`: Deployment environment (e.g., staging, production) +- `{{region}}`: AWS region where your SQS queues are located (e.g., us-east-1) +- `{{queue.name}}`: Name of the SQS queue being monitored + +## Dashboard Panels + +### Queue Metrics +- **Approximate Age of Oldest Message**: The approximate age of the oldest non-deleted message in the queue + - Metric: `aws_sqs_approximate_age_of_oldest_message_maximum` + - Helps identify potential processing delays or stuck messages + +- **Approximate Number of Messages Visible**: Approximate number of visible messages in a queue + - Metric: `aws_sqs_approximate_number_of_messages_visible_average` + - The number of messages available for retrieval from the queue + +- **Approximate Number Of Messages Delayed**: Approximate number of messages that are delayed and not yet available for reading + - Metric: `aws_sqs_approximate_number_of_messages_delayed_average` + - This can happen when the queue is configured as a delay queue or when a message has been sent with a delay parameter + +- **Approximate Number Of Messages Not Visible**: Approximate number of messages that have not timed-out and aren't deleted + - Metric: `aws_sqs_approximate_number_of_messages_not_visible_average` + - Messages are considered in flight if they have been sent to a client but have not yet been deleted or have not yet reached the end of their visibility window + +- **Number of Empty Receives**: Number of ReceiveMessage API calls that returned no messages + - Metric: `aws_sqs_number_of_empty_receives_sum` + - Useful for identifying potential polling inefficiencies + +- **Number of Messages Deleted**: Number of messages deleted from the queue + - Metric: `aws_sqs_number_of_messages_deleted_sum` + - Tracks successful message processing and cleanup + +- **Number of Messages Received**: Number of messages returned by calls to the ReceiveMessage API + - Metric: `aws_sqs_number_of_messages_received_sum` + - Measures queue consumption rate + +- **Number of Messages Sent**: Number of messages added to the queue + - Metric: `aws_sqs_number_of_messages_sent_sum` + - Tracks queue ingestion rate + +- **Sent Message Size**: Size of messages added to the queue + - Average Metric: `aws_sqs_sent_message_size_average` + - Sum Metric: `aws_sqs_sent_message_size_sum` + - Useful for monitoring queue storage usage and identifying unusually large messages + +### Screenshots + +![AWS SQS Dashboard Overview](assets/aws-sqs-prometheus-yace.png) +*Overview of the AWS SQS monitoring dashboard showing queue metrics* + + + + + + +# AWS SQS Dashboard - Prometheus + +## Metrics Ingestion + +### Configure AWS SQS Prometheus Exporter +For more details about the exporter, visit [nerdswords/yet-another-cloudwatch-exporter](https://github.com/nerdswords/yet-another-cloudwatch-exporter) on GitHub. + +1. First write the configuration for yace. for more details about yace configuration visit [here](https://github.com/nerdswords/yet-another-cloudwatch-exporter/blob/master/docs/configuration.md) +```yaml +apiVersion: v1alpha1 +sts-region: ap-south-1 +static: + - namespace: "AWS/SQS" + name: "signoz-queue-yace" + regions: + - ap-south-1 + dimensions: + - name: QueueName + value: "signoz-queue" + metrics: + - name: ApproximateAgeOfOldestMessage + statistics: + - Maximum + period: 300 + length: 300 + - name: ApproximateNumberOfMessagesDelayed + statistics: + - Average + period: 300 + length: 300 + - name: ApproximateNumberOfMessagesNotVisible + statistics: + - Average + period: 300 + length: 300 + - name: ApproximateNumberOfMessagesVisible + statistics: + - Average + period: 300 + length: 300 + - name: NumberOfEmptyReceives + statistics: + - Sum + period: 300 + length: 300 + - name: NumberOfMessagesDeleted + statistics: + - Sum + period: 300 + length: 300 + - name: NumberOfMessagesReceived + statistics: + - Sum + period: 300 + length: 300 + - name: NumberOfMessagesSent + statistics: + - Sum + period: 300 + length: 300 + - name: SentMessageSize + statistics: + - Sum + - Average + period: 300 + length: 300 +``` + +2. You will also need to supply the credentials for an AWS IAM account to the CloudWatch exporter. +```text +# CREDENTIALS FOR AWS ACCOUNT +aws_region = us-east-1 +aws_access_key_id = AKIAQ33BWUG3BLXXXXX +aws_secret_access_key = bXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +``` + +3. Run the yace exporter +```bash +docker run -d --rm -v $PWD/credentials:/exporter/.aws/credentials -v $PWD/config.yaml:/tmp/config.yml -p 5000:5000 --name yace ghcr.io/nerdswords/yet-another-cloudwatch-exporter:v0.61.2 +``` + +### Configure OpenTelemetry Collector + +[OTEL configuration section remains the same as in the original document] + +## Variables + +- `{{deployment.environment}}`: Deployment environment (e.g., staging, production) +- `{{region}}`: AWS region where your SQS queues are located (e.g., us-east-1) +- `{{queue.name}}`: Name of the SQS queue being monitored + +## Dashboard Panels + + + +### Screenshots + +![AWS SQS Dashboard Overview](assets/aws-sqs-prometheus-yace.png) +*Overview of the AWS SQS monitoring dashboard showing queue metrics* \ No newline at end of file diff --git a/aws-sqs-prometheus-yace/assets/aws-sqs-prometheus-yace.png b/aws-sqs-prometheus-yace/assets/aws-sqs-prometheus-yace.png new file mode 100644 index 0000000000000000000000000000000000000000..cc6c66804303126e8583bde4a1945678ea109577 GIT binary patch literal 121103 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%0A^PH<>)>YO^S*RvC2?)MDi=R)& z7t&bIrxOul!7LB!N}Sy2RE=H3TosDu1BK{^+K!1u?BLob`qz&mMO?eX#pqpMWp^LZ z-m!E0N94tGuicogJ%*%Y@$t;68BL9XmZHom;~_@l7N@S1ZI2j5Y@KHV0t{^?TI{o< zwf1=t2FOFZm zlN-bn+!D9Z^kLVPN8{Rpw>p#6Fg!sPuedf2RCf^=L%P63RU~!UsRJSL=SXcxS39Ox$HHVKG!mBj$^`;tVZ8oTIp z?T?37!jJGSs78`~rrO#x5Z3LUe0@18_5~vWR1f^e)vN75<4KPQ8qk1CDKaf_9(#*} zSAbMLDnN0E_41Dv;wqH=d;9fRnutL@6Tc(8{A)o~g@zfg&YPr1Ah5(8>0>dEpWJyo zB}<=|vVduw`CTjg@!UwIsjwm}u#4U4(NF2C1^O($3uBE2E@uXJ`Ll9kWy;f_oEq{R z1V|`ez7o2IS^gvDkfL_M-bQ(7>9~3fRjD+s+_7E%4*o`Hb|Hu{7K$2yLajG~DR(xO za3UT}#wfTFShKYQJxSe&PfS$0I?O3=aoBA1d^~1eoX(g=j~`=nSE5ZoLMIg1fN-H> zzY-b}&hIxgeENFyJz``OcYA7Q=2WNB-kTfCQ;=+OIO;CSPP!!)H$b*!z3%-!EAqJX zUK!q5khu{K91DLm2Ksp{Ny#)`lflkB^f+@-hqy|}g<%C2jja80gnPgD8Cgrrvj9jj zy)qOtIEuv{UWNGrbb}9jg_9H+qY_%_&QzekCT8c#E3y>I14m>uOJhdPjMfIE02Q~H zJD4|X7KYrWj?2Yc#y9i*uNFXADkx1hP=ic@Y{A*}?qd~$!Yiu=TS?!x?82@d64Jc* zEV=N@L?Q+Q9k^9-vklL6yhH9A2e-E@-`w zDo=Xt7&<&=7MfO&j$I&OK))>*^W35aW3gNG>d>V%NF$h}2~&40Mlb=ixLpbDJnR7? zO<|dn;YL+Q|7SS@Yx1ez&VrDHRkc61{&$V;++F^sb}QO4yKA*8TXp`F?`%l%1Qt9} z{i^B7g46@9MiryA@33BH2X-{?^7!?`H5UFJ#A5Sy?sM7DZ#tF_A7>>?m?(ZIm$kw9 zPfWHZi$~FQQ~>$UR|(S6ffcTfy8`1;Ztk3`TA0<4gSv@TH7?$6?6xFNmw*!jm8dz7C1SXNesue4TzIX}+llL&uU{@qFc(25o` zKiV=1AZx5#IVa30tX^nu0 z{TA>9?mqeo!m@=&OlQuc=T>}k4tnlhq^i2x09Ac9(5W{>yR3e!M!`KtrN@!2U; zyM)8gh2m33rV|5K6R!bv#WPm9ufv`!-`Q$oRu!WH=qzHxIy0^duBMxP1x7W1ZnT7~ zGiA1>(i}Be|L3yeYJ3qMGb8f9ry+18-nb9v`Ix|&5v%ETxK!m9*jTzTuN2IH2iitn z+FLX-*g@(PXPLxu2V-CzQjBsS*Cx11fDB`3??3Ee>n^QdSQ1zBP2*+GmhlQI&BhLb zTDZdjJ>s^8&fV8U+_tJ8DZWcB%n89e?H^K_CVqT!z(ZS~v_*qLhejm~UwcgquFV}1 zX_Q~N7i(Np{K2KrtmrqI5>Sj2uD^J{3Wl_dO=u7H2e&Wyu@ssesIH5Xl@=iM2hyGc z{Q6rvcm2`aC*Vb_JR=gacr`S->g0(NWL0Z9D|l|U&hr8X5j9pW#ee=9Gq{RaM4FP176tsk^ka7?KYTu8=z`mm#v|J z?EVJ#ylUIIFYGOey4+q4a=%;IUu0fV(ApQSr{tk$nB~5!QQ&vm@=0fBOzZ2d=E`|+ zGZ8pHMlLw#fO!9O_0GP^J1(OT34%KI78oHfU^NdsG3-b1!}aajmnLwwk?X^r2C#&Y zUgs|wizQ^2BxFmc^qffCjEMA1NFOtp?mz$W$$m=F^a@*xRZLHQ$)R9IVNamJEX{$8 z>ADJ=L7(#b-?)f3>4y*D`N5>a=Ea{1Llo((+geJ@(dEpIa3UT^EOapRZc{=7Y`<~s z*`F8EMNf>7U$pK~C#&v?;)YbtKzg(s^h}oM^-NU~apfCTy)(Uk9JMm{Xmkta9|Uhg zp#plj!{wGw5@^6ZrZ~(=H}zB3|K&h!dr_kJ-TO9g3<dOf;kMm_{)w>JqQbl!%U!D=@s+*?R>ep#*;f31x@!6{5fO0W z@mM_-i^4PhvW@BPH#-09izCM!>-1W1?|)3_AOI<>Hp34?MzxvlQ{-&u7Y??JpDO8Ww;PM|2v4QnqQDCD@tMnPdqD=-234f9_4Hcd zG%@ae=l6c?f{lTi=ixbZP?BrF(gWY_%JmRCdZUol!;Zj8r^hGs$&3n()^?Qbv|RX5 znCGZg8k59bxE`|L_uQNDGMg5PdyuwaI2#ySNb~6|T_Z>^+{)ws?dV5n=N*`gTRnu= z`nRJGI1!H{xIb0c+-B^ryX!opNoB%A3}a1|JcK|rg(Oz%Cmx?p1&d5WoMU-7TeXfK z#kcO$Wn1Z*0uv5K)ZgbyRc)BtD;C{;IhiLtyZoymEd%FZI$N8pY7W$xZdDC7wp*0G zr^>9!S*C^t(8>lILpC2Dka^$fnmTC5*AWn2VWO&o<_3WJD*2mvSIu~DDC?jF=n!f@ zj}O5-ei9%+y^oaAKn{8es4onZy=^^(bSP8=__0NIFrK!8$9hC>NXcnbVxf4$siGFx zwGe=eh#xSl3`JPVns!6pg0#@nOFOJ_L{uoP250Psa0_%javPnScuM1;oJd**{lRdR zi`a<_$#?!2<`cC9=G!=QLV@sbjc*KZAJuR0jm!Z|n47FOPUo<}n9W94P1ZuMy;W8% z*=!j-k)OtF+kuX*Futtj++`zpu}9&}Xe{^J0;5dvKv+`)(nBq5o#iw-=(Av6@9Fkc zzkwd!r(lUyMIex<(vt&Lp4D$^MuKrdioF&@L_hf!4d#@k+MR=)MHlK22}lbRQhj}V zm-zc&gqwz&M#0W1?VNLmw9ZlJ@ZkG->K-=IhWaU z8ZKPpwVFOLI1vnNKsCPtwSu=ZotJNCEUhIDHVtqkm!VoL1Vaqt>tHTu`U<;4Zgjr( zyUXw)0&ADr^k9L3xr>;JPeExRHC*~%QORf`Yj|x9lC-7{*9Q^ZMO5y{eFLRscE;_a zNHcBy^I>na3ttjxd*Q8D3(pZL1bUsp)|crza3eZL0n#OvPRG;h2y7K%tyO9USslg0 zoR#0?6_9^Vu4ULKTZ-H(wD5F)%nBS0F0{GD<{~l>D6)U=^ee4;poNR>+|VKrq%m=) zu-S(hZiS=$9jkv5a(w^V zm|q1Ptk?ZvV}7{@*qE0`-++JEm~Y(QSU#S6QYV8RIy{fjtA`;?(M_wm7=Iw-P_zJ|;vwYlXekhHJJ*(A`DV3J_dY~OuA7U&g0FZYcBWgLW!pTq6yuRKa%rkwT-5IA& z-i;Az%qSfPbac|`X5gfyiO>3##pY9k*$wV%58&Rx95#mN_h1t1!C%J%8b7&s(i>Dh10Ka$6fICKR_lJ$z$8 z6&v2ENc~MjEyPSbPDB=s=^J? ze54ulWqj4F+YEkkOHfvD4N+;?xK-ns-X|Rx&%48|$pYgKN=ZN9A%qaT346GZ$=&1( zVW(8Ce|BJoST)`wN<&r949=Fx zXWS&}_0y{fIDO_1UV0c2Gqv;w^9ngh52AG5Pdt%2Fvif!*$4MP(qQDeG7Qt(ekV*pBXAOM0;- zB*`*5vIP^?n4@4S++B!FkN(mkstVC1r{Or<4%+vwNAb%>*YI_RXO>VKxqEP0-?!<* z5q{5CBX^Nrel`+lZ!?#&#R1;1z^#6*{nhNX;dw}aQ^?l1*M&-e*_V_Mj`5RLoYSWFoPL86dUf97uxDCziapJUSe$z3U+ z@{eA4BJNB}TiXZraIeLn31V~4a~M=qe?!Vz%UmVy-{;AZDK4E(t2pLiy1+QyOnydf zc=x?5|KBwTOBj<~tvb(-m7Ofho}D#I7nsCfl(A)%UE5ez9QMlMc?49Hb@WOKGbs12 z^qMekRGMT6t#d+YgU}J$z~yrW7SvClJ`GSGP3ITpvcLNJKR0INUOfo6vq}uUFl+Xu z^m<0m=H7#1og!T7%zL3d5oxI%>IR%_P$!lkTErKzf^YDfUt6>MnoLjUeypKkkL@xb zKIyKaQGDOQa$KpDm6u~xyAWv@ZIvP~Jz2qVdS5hm^p@42iSa2TnCh6R5R?Vj%}h;a zrcxSEC~#BrQY3^oJ&-nLv~cMp#VAwJ0P`%|f@0SE;Zk2wHa+_h2#}S&*h~`feB34p zef^enl}S1zVKC4;(4c|JKp=BOz&S12IhVyw|f~V_8H}=dP`7iINP5ni_MQ{!}uk~?n zt{Zc9wJXwrSs?Vz*tRJ0ELbOMFEeo^iu;iKR#Rg)_uVvU7Qsm~SPj?9iQ_iZsQfm! za{TL}0>1{yT1)=@HwST5qBqoB0!*$Y8q`4mA@hnl8yY0O*}Szqx-cRutr#|h*g1Nl z5o+dH^EzI>binMwafH)wuL8tBgsd$G=?!ShK_I6#bG9~f{K9ghcuJ?`PWFa&`ZY-o z#<>hHuW2Uj2o?2koVHwMY;u4=d93!;H#W9omqzNCagZA*$_2JzlgD6Y&$?&_Hh=HB zb7etB(rQ|@)k1mf?*H873Z&N#0FNU3Z5zWI)Y*N>_-U--G;5~X)}G-nH|2Z7aJBA& z7`=C`huwf_D(&x~iGr?z5EJvk1g#5;=JgsP*sdOX&S&^o00cs++ZzVwtk)t@_FWr4 zF1#bHTo2mUjg-~SSzNpJn10WLtMOU#Z&P8rBU;zvCv{(9|DLej*I(Z&dw8d(l&8j? zY^;{=bZMx=UGQ9IZJ|{b1tvEvOxCT6a59)3%Fs2s1Zhu|7DnH0*5K+~kaoPX9GE#5 z3W6#hSqS%TD3y9WSa4kGuDoSkuw!#{ydC;sv&P3|r>Yo0Cx0l%3zSLy`>vu9+OCma zPMgu^7E7*zc-O_n#oJ~Hk}xcflTezKIEw*1D$iy?_;^svzjubeZR|fjeK_$nqY1^g zXnuy5DK2iTpP%2WskZaJ3C`5~(04(u#;c$5B!6&C|3Hm+(`1^@DyM3nGa~cyH^&^Ezm2PRDQWH|FDqZz_e99}_2k{P!{&JR|z{~(X z-!wz&ySU)wI4`UKb?HWFFM_XqyL)1@ES--9GZuqwB`C;<^#zTMjBpSzc z8a8WL7}Wn7{P1D!2J98`n=*MO_{|~C6@qWACr`>RuMoR$@{o>}f>+(p=Gn7n2d3G3 zpbBdDsIw|>4l$!2)>l0Hm1XbCGKoxb*i_x+b9e?YY;}ou)Kf&}$<{*wLx)#W;z-(4 z%7=e4t$#h>ncJdykszV>#^18Os$O-4S#-`2cDzrus_Y0)o)YYeKsCJI&>1Jb7(f22 zE9G7los0zSZPnOO%900u3A3sGtJ+jYwoOlw!9Z{Lp zT^Yu+sTvq%@yoTu9Xaw%_|wM0_2|%2n_s@{k$o}R1G^f({ccu`dZA{rvo%F35l~_f z8%diE`P(x8`O}dHT+UrtFH8$xPB|?1yr;)CfyIjyW=eLF_;81xk7@7!0n7WxD>#66 z#*4U~x()q!e6thQ&?=`D(z!~=)cLBkl3MXID+aEnEx+&4+%5a30tN>yPA_Kaxy1ML zt#+P0Q}~N@cEpiO;QB%GowD8GZ|8PCRQ|^Y`(Yg=u>thRsWG(c=?__eAFTfGsS|D6 z#+e3r9smDp{$x=99?yn-lbxBw_M-v6nz2Ey8nL?29zxynRD1h&HqYDwbXFYf7(GIMMKR^FSF>F7l1B$ z4I?`=&pY|^onkXd%PM!6A?%8Isw^n`Tb1(8pYH^bar=*~cfPw9L07mpROx2X3KNSt zE0I%y*v{~|^j5{!)BCky%HFwV?{3-2RKKpx(p)h~Qkb8TSGK9~u^AdY8NNm7le|-O z$I%61;%3TZcERimwqgBy?AtSob-^qADqiCe za|77slTNiDYG0AqbrQq^NMOho8pB_jir*ajKFyCW*Es;wU|CZJODt-KbI<%@%|`CK zMDP`LJ*h6CsCc(FkSeayv6T&}DwKEc`@&hBqi2m0CtwSAa{u5-M6A)aqA#wyU@zKL z+_DS$w&6SLH@E&LK)eMAEe>TsS-7re1O2Xr5bw<{CQ~ZZz31be+`*4Pr4-}$rgfX2ZiMET$y4MlEpRlmpe?s!iR9gz4&|5nLoLu;(vYQr}MVs1AvB_l4 z(&3nxf!DN2Nz=UWsA&AV9&;a{9<#m79+zi{F7Tl>Fou|>;u1pvQs%`Dr0tv^mdMI& zNqf^<_(CM?K6MsVX8(C$g|6w=bJ-;Qk{!RyJ<*Ux-9&+NfE8Ea)}Q?Jv^z2i&;^>k zpw=T{=!Ui`59_I68rIj=8z7*Ud$1H)SjYBMB)jWIS{FQ@(#SbiyH?75lvY1+2;e3( z0L1IbGF_3B^z`2c8$vO>U)CsWk(&26ctdT_w*Y>KB%rZ|F;#REU5i&@wia||+RUF) z2{Eg3AN(GY6L5W48vOW;xA?8n{N@RvIkzESZY({OC(cf~#&_x^P{^+byW%+6D5g7f zzrffV5lI7@G`1Gxovkx5@*8pk;p8WR)>$+?cM87TnIWv=HmVoQ0vHSPASt;G z^s1jL+HxtQ5S0Ots}Zyi;Y- z>41hr8JILf0wLW-{`iegqE1Bd>HuyYNHd54s9xX4x4KXVk`{ooihr^Csz6_~4IGtL z8VO2n&0@D9)rJw)frDjYj`|ZopN4zUheci#+cK06@L%++EZS+@d57RmiWgL>Ep{m= zc52SPX`JfR2~L`xcAgi34p1?!{&lUdjVycb?IHz^!bKA``|S!KYp_zAN<6tNY-4%w zvI&qqt!dr;94v4D^-kGC9aac*xN6P6=X;CKynlQ?+wyQ-@8<0KC%)XBnlx}3&U>Gch+mn?9-d98HC_nE}quI<&1g4Ey)6~xrn4^e9bHnEscGC%yi#eO6( zbY#tWX6Y;jZj>QkW;r3K=>7_-;2}=jDk;iR_Wn2~%PU~|bJsD~TJ#+KQY|iMOqT(0 zPzE)FG6FES-n=Rb!gw0BZu-;Qdmgs@QD~hlFWIvo{GedN=w|h>dA?cEoq#$L6*X)j z(Nq}O12kJ6=&TF?;xzqS*iieZigaBL@9OgOo;UfTSjDkH3K~J`) zk&LgZFGn5qVb}(4s28|xgsb{LANg8e^Gd-~7d%`w%KZ@@JEa)uBrRclR;|uZaoL3! z5V^T$Zmp%7fu z!g!H!qD_axVgPW?)icIeYsCP%{0gY@sx2@^T2<;7k3H%~I-%?W1|63HnGAgZPQ4?f zb-&<5Kiz}o)_a4)VS(%Vx4E%WB$)r72Y{Zb00#V z`unj{XpK2ys*c-qhq<9Lv{UDm4+BofUVa%X2TY}w>Nzw&{I}X_o_$-Zy(V|wT-#Fv z5bUM^qNGVb(pCx}>Nyvfc)Fw0PF%E^q2I%9Zp@i=mJmx{>=h3BiuB*?-Gp8NDY*~a zM@P_Vsm7T-R-L7|61OE)M|Lzl7ls4Qw`?gl<{|Xw?fpIL!qs4cWT}4}`Dk;DK^?#W zIw12-hCWO1uhi&vuyOO|Vh~}W6+rUQ)){;Lk;E+IwqkogPVpGG~A?~W~s&|}*k#6WMM7@^ng!oCFu&-LgU zDL!%=-pM=U8a!Y5swiV#5CdvADtPqv2JckEgX=mNRP}cs%-b_7&@6EOT7zDJG3+7; zs$qa^#6Fu@?Y6M9Gy$BySF2%bmUW6Aqf)c_`TCO7@50LONmXTz?fiVo7sXKZ%jI#x z3RX_xOFG3>qogop*H^rovsm+zyX`KRgI1$~>x&QSoZeR{QIekl+7#`E?7J@|Ogt$= zh|Ip~*U`K|T0m;)3WQ1aS!y{!aS32jGQqX2)G`mJ5J%}0Df84Ak&v4J_c%Z;zrq-b za4d&$*Is2a6~(IUMr#${XZxI;VgS90=av=<4xa#pm3_kD+Vj(F9?HdlFGnukPg&?z z7vuY!m=-Hj`*kE)FMb$GpXz_;Y>MaWT}#6Lqsizgkg%hl$D zFiDE*2sd`^UWWsjlpOf-tQ%^Og7V)_b2Tr?@Q>Bg}N8N?;$e;U(DO@Vg`D0ZCJq~i#UHePV z@i-w&p^lxi3RU_Kzn_JgNBPv>EGzf%f-?Jq>46`BBtvW2TS?0b&a5iVU%*MacFiN? zc|TEm7Lb>#ze{w<#kg;@mj<%BYb%VWl;wDrNYggF@`cj13CJocrM|+ycf~F$d#XJR z6G^V1`ycf7_AVbRrDv{%U=vzCeM%n(9}Ue8&756s+BNS0s6Pg%0z9^r_QOtAQ>Uh( zyn+hly?4~;Qt6sP@?+Ttvs6C>5xifWzx~m$tiIQfy@{Q1eoX{=ps)nGYWd$gO%`-! z1t4kdx2Q84*egKM*A2Xu<4ULBRJLv!CK2537M6f3 z4I@ecYZQ-2!!jwZeFpg}LhE$Abb#|MZ6cLGK`XqqAP!2~s`eYpB4F=547soT{Akz_ zxgvR_s|kFQxK4Nt2Jv+mnNU1tT>`vFnr{wo78GjrJqz0jzo4R`Vkr!nd?0C8|L5FL zgF$L~5egJMMfgHf*ZAY#{^UP;o1#y-P9NCp2Y}3{qX2BHegF_SJ@6}3V@KqpBch9fyn!z+|A318BRHd7#V@*;i2!Rw{gCAS$A|xa>6%}J60Y`@ zTDH?1U16%vo;?ev-u^{oz8$xVR%(CQ)yTtxICuK=X}Y;ay>)|ACC{euve%!sKewX4 zev93GO#q;1*-0d)y+)#jn=b$KtorMQUXe+trIKDHzE$2$Zg26QI$_(>IBp`U+w<_U z^QQU!$!au`CLs63H!tOXGJ}Ao{J)kgD+hI-6*u(9mmd25GJT;f3bdODzy3x)^OsYs{X0NYh(4NW@MA9KpH~;q znsiZczxmKFmMk!)AJ1!#E5!}i?Em#EJpo?n);s*K&E&|9?Qrwc^qpV7(s=-?jJ}ql z`0Lew34pG6#T3)7{o_LZ@#(Lf243k{@&5ym{?FUMeEwcmW7dE4yj^`zKgIn>Xj^sE zQ`nx2wgiTnT7spB&S&@@&7`YyXBcWv(=A_1E(G#d>;3zmMRP%o=!tatZHE!d@m(iB z$@nz>_3iKB&XJkN{`Jq3-;BIbVw>E1YC=b7qER=3e0#hac{XpXU%$clc{I8GTPR>1 zY##4ZKfd5Ue(R|hFz83aqh^HvA1vdDCY09cgkRvDfW;q`0fzD;_{iuF`QLvW|HxYh zvUuowu8nC%l9Kp*fBCf9q7~a_Pc@+a%0`ZS<8m$!|A;!W9={k9xA1G*=Kvw@^o`(N1N@wng zhQ;oUQJ=tcLOk+-77M@e@!3QDtQoieaVr1wf{(?H;NwW;Q*C-BY70q#R_2$vLDGP* zl3TxxFm%&S|>J)_fqT_9@(hoG$zh>IflvEB^Z1 z?+;{M?!Cfd^1Qx2WK*qwb5|p4Ys?vU8)2nD3@XkU4M?CwI)|(#MaK)&%)bA*JNVar zYAEUvp`>v_Kh#+HZ7pR6bh9vo1DU6l`%LZMu3B=LMSp zXuN>J9QEU#1Na_~;$NLJJGf3BSv>O2-{gxwX^rT5sPJ)Urix7{{Otn>ugkcF?(%dd zxUD%+{mfy__18iJkDnZH=!+2Yi2+YS;nb|c9bUjmubU{G^5A;R zP)@}qK>GassDjI#+=Hj&Z+%%alKK?-qfI^y*vZROT=0gwXEpY0p4DM_o&1rX{?}c< z@p*BTO+R0Vv@#L$Dw(Cc?}jXR42!<+y_deL=`=6km{}V9W+joetIUZmP$vtJ1R)v# z;F+ZvJew6V_n#)0YuUuZys`58Nx}bKL=R4QaiOL^E?gb-T5YbeE8gLyEaQ$mTHXY{ zcFj%i=FM&IHAn8)C@S9xk%7mUhbLWhSOlwYWwCB_SMXp?F z2XeR3}!m9P@x8`#oY<<9afJzNOo0;uv^J;UUw!1buce2lc$Le2Z zWnBbBT3@_rjvllJ>NsEN95|sLFK}Xj0R(tHj%@DjToB7{7j|X3>%|$J=jr6>xUi+E zG<<=Pb*Lef;%}YVK|M7csT#Kaek7>36IdSl|FvF4H@PzAOLU^Jr8L2CDDvrlx&=p` za5+a|jr$Rpqn{_cB&7{bymC5sK!5(DWSJV+A1EO4dJgxjj#>Mf&ZADAZwe!{R!ME$nJPwXE|pnRoCJWmRuH zTr!8MFyHs@$eDkO34x7@;G4isYA1}yRI~QpLZ~O&kB9=v>gi?Xz2aGSbs@|K0Ld=Q z2nh*?7u2vPgtqf{J|qZZXhLb!?=7Iq-swb{mH!IZa56Phz6`hj*!lZ~UJE^MW9A0Y zx+Sp{3T4TEW-2q%a zpbn@^wq*_cxUWPm^2jgr4A{j~ zjk~4yzMU$EeabKbVCv&U&HpqobuQHww9}?%R?eqd?6=e83;(s-_goy8m>K?9Ix$>m z^(+af;9Q4OO^#afop$K*}Q}f)sOhQP2yVyZT8$K_*GF zA+-G#`YvsyyHONqW|Wqbb}<#GeV%$OaH0($^yJ@u8(nk*wR0E*Wt$trRnJM7WWQQp z4)j2{%)zB_XWV5f-GQ_I?wDp*iCRuDmvCMZe?LMTD7Q1t+Ubd*p-k90y+IVw^_MLH^i zNRtveh>ap86d{BzMM@Hikc1G*H+VhQ1byz0&!0YF_MX{O*1O*Iu9=S4oi)o`eMxTX zXF>|SSWiu$5jAA}C^q%9WWM^G%cn;p2QdYiG45}bveajlXS^2&O)m?M2KwvWZAJCt zC#&)YFML`h3;*?bRZPAhMCfBmL4iT0xAy^zAm8UP#nE+Ym7?N+W@MEFL2LGPd8pL!cLtucon^R zF>Rl?5pFc0#lNM?s0mma5ourun_>jTf`H|?uO`IxexmD>sQQS4dT^JBP+~LBdlQ*g zW&qfEnFb92f`7oG%svKTDZm@FzUnQIX_JL4{BTfdV0Rr+L+F3>w!6G^ofS2K1Nt7n z)>SU`llYWazFBXt!$r!^BB1y{U6v_%3UoI*$DfM=#Sd2g{1qbQLv?Ech*Y(*w#q zr0m;ZxGLWwacGa>2t(H9mH`YXuHIMF9JR@Cr$4Mg^*BKQtc>hVD56$Y@3a2C@At`# z`WlU{kc-S(?#h`OQh}JGoNHXk4>vSh!-P8|Jb{foGa#O;y~U^rxP`m~A4v+{V5QMp z_D+|$^8UVLFTql2u*gobyrz*Pg|yXtBPS-Np`b)fKT;_4%o9O%Sc@w3_~Zd)TLina z&9?)VJ=Q9%sgk22+NYfr#evsfar}FrriJM+a0#yQzrJD=R@#+l*@nA_PlE|r3t-4>+JLM|l+=cs$f~LE3 z#W(V3hu+TA7n$!tb_-QrTUZCvUCr!QVC-Eb`ox<`yb5^fM`Ji48fnS#v z$XM8blz&#_JUcz&JSVa{$TLZNG8!* zCfXW0PB4xG%xj;UPE->6aKX0oFTK82Igl^3ni3Pq?qil&v1;h>ykS@2O08kJ*x;l{ z1|Z_Y-6obIJL)~Uay-L_%=%Gza}T7B4O{c|ZveN^$M-TS(V=k`VnThM+^809oV3?d zB^2f9BcmW^2Yx$(f<)itr0-@|>z@kFC5i4YamMeSiy`vHLNkv)I+-+6rxmX~WEB?y=R#PbF&6iu3jCBN2u%FB z%h1Q84DD`Vc3_j~GrG@?nphO+lgr&Ty9wIv=E#6Gb+Ac4BJwsPpw9bpV%Nl8$l{G? zhwq*Ho%O)!)uQg%h1TG{@3Csz^q`~MbC7)=MGv2GKEGpsu*BFEMTXQZl5f|#`n`O` zDBWG!{m)wk-Tq7;^52iuHZ{W`5N*N4ug@RXn5gA=pfz#u$+3(SvN3H2y>ze$i);q0 zM9s~!cYe(S*g;mm*=3b>e$DRv_WfaEDMe(ybjqeyjdjvo3IdFCoATD~JfCF^G_P`E zjPyb{C--6!<}2L;x$(>F7aEK=HNfGsZw|ud(Q?jMvJZPGy|l)kHyfFfZ?ySsz5D(S= z{sj}@yzT2mg}`04i!COU`-7XPNA)-uH9)z$@xk1)AAJ&B$>{t=J%mgiXqyTVGrnA_ zGzs;tRfM)6yLs7^E-(-YfFurOYh6lNDpOC%;awv2d8=4cZelrB{PeCfMufv^u%aSf zN?B`nTiR^W8WQ#8+iu470eXJxoIp_P;b-;`3FjYg^uYsP#zFrp_1N05&LeL=9G&FV z@qS#u_zA$5M*~LEmPotEFiQoRnORXEcC?PugV>F3%pG$h6whX*RVVG=Q>oVO4frZ| z#1t$21L15;=2)Xl-|qK|t;Sy?+b`0ME@&>qet%D5z;xA)*@k;U@ii`@%eupIou#+g z=^rIf$x)V%Pc*MO zN<=v0Py)R>QwzBZ9BoNw=xT zdTlFZcI25e^~n^!W_h```-q`1bB+~u(??{wcWy|7bzIi)S{`1?9<>==N#Bv8LvrJ= zZ^Jf{ZSGCD{e%21@w~DilF;)lp&=y9>TL0>fe)qJ9Ut;Q|PF(ShtIO_YuCU%{>Ax3Si`B44=(~9*n zto0$KVb)-hVhcgZF;Hd!EB20qtl&JAJye75k-qkxd#RfA#B{ta(dAK3k*Z~86jW!9 z0&=%cFm?emgb_xO@;{#k|Yr*IU#eZrHtQ0fk+a>stf zS3Zdyz*ia$UqoYiDOPdO?19_&iV6%=dd6wtzr;*+s>G%Sng}F9oC~dAnUxoUJHQ1U zD77ql^@oEH!=@fUR%sO#ML*_XHU+ai9g(+E(A^X-!UQCkiztU1uMK12-=~XPnt5hXI@>q4{n#dM@u1RQOr$VQp7Gk;Ay2_3x3Fwm?rE z%j7{^v8x)VWtcfMcZYTKvIa`Wo=l8UhN@au?srQT??ksUtz>_%_q$4RPyPbs$N-JN985%9?ctx z5)k}q0o7N;@STnlOA-8fr)?|a#>T|jarE@}{IJ65w!1gKD5_j7cI~ad@+4Y^lvL8$ zsZ7&8RX(QY3nE>@(PUROGdofAbbf@qn5>P&j^EP{S?BNMo$S)M^Ff#zhV4# z<}!7NA7S(9yXAS7a^3deS>Ra&$4P2A(?;u~kX$${P!}~t68qp&7%e#7(p38!Nhm9F zfdQ+3WJU3svS;{wbD*a|Hs-$oGh0VIC+$<7pwwBhWE}eX!Ecp8e18%3D>N1ACv$V7 zSp!KofHxSr->Z+Phjx_JxMY7aR#-?gRTAVi2i!CF-WNLs zNT})^JTh(UZnCkIT)C|cRlX{h;tR*&brFZatu2!GW7$>*-(1)G1N(O0aoMhO47ls) zb>$@X|3BC_m^ujEB8DC;#9qV3ZDroP#yR$1x@=1*a}GatY$=;*@@{1$txFs8bOmzb z1lZna)Ci1@?X<^KFFKoZMfegZ+9`HPj-I|qnK}b%X-P@;C%p%K!z1|QbiXyn3*O$g z?_oEkUog(hq#mxqA7_~B64zgjY+4m&xt8hRvhK4Lx^odl89>OpR7_onhd3wXn3Z?v zvM6~G&X(6`{Nlzgf8~F%a!HnSiyQ9EMDavT za6L^NkUywG4`DVYa*VheL=d7BqPKI64AGaMCGaR1uyi4&(dbZ0tX&#dB_9tVlU7ex=aK=FMa3iHahpmz^46Zn!bd}8;{H!g)x8B zfK{Yn{!8r53~w(suQ1;|lFsAgLKV?U*=XwL?ED7nD0E!Yscb=TK52F3adp2Cx3T=BQ zKmh^{x!zmRU*Ai%R4|^ayX$&s?^89p5~EeVSJ^jnAOWq&5!YR4fB@CUX=C`)OEP)zSUI5qi@vW;!HK?c}&^Rvnvn!A>~6c{;ucR zrDwcF4FpSDehw`syg!B}zvDcnuz6LPcbv2rPa1pf5Su@<|4;%nyja5gQo>^iQGkg_ z23@nt$sNAr6hSE@_Bzg6s#@ui17xqNrL%lGVr6+>J+*bfwEeI>M;&)OA9IVU9dIsa)VT` z?Vv~caj?-N4~P(b#mY+zxqu&sAf7WR`512BC7lTlnJZA2zN3JzJNecrb`VegTwL8) zI9BUU#V={d`}M-P5=;K$y+Qj3Cp(%eUCfN?hOBHw=~G%sr!I9uD|gA~0EX>At4m*U z<;@sSsiR%9Jgo&?92pfJ^5v<+MXN}di$!QUKr?zhVH3jF%%fHOJYa1vJ(XErqE z7cVa@)RS%8nVb^Pk&^wE+obeK>bG@KaU+RReHbFzcY{S7{S%9bOm1SQI{t_-wIZ#oJKIDb0X9k+ zKK4EjO$|yLZi11b`y1eMMm8R|1X!@NAdFaY^Q;haCKxxZtmWM!5jTj3Lxy$?9n<~w z5+LZy5gu0lBn^%LbmhgM&GAq}aIk5x?A2je79G|Xj;|4wB(a0e{)n)wl9eH(1DyZ#^dJL?@dL^(?RI0%wQDT{`R}DydEuexx>+j6l7gDxC}YKL$b#q_ z_rQnM73^YS@Amy5#KOci5%gW(AZ6iun09VS-N}rAbyGRLKurLtYkw(Tq4NE_W}WNV zN9FW0kR#~;Q}T#$*c8t-yL%H09^1=A>E`E;mM1K0PqJKtj&5s9a1M&E9aNYdyptV? zt+p*PZ6^IJWix$KN5cFQr zae}V@^B|UUrm^LjMoPu?J`X literal 0 HcmV?d00001 diff --git a/aws-sqs-prometheus-yace/aws-sqs-prometheus-yace.json b/aws-sqs-prometheus-yace/aws-sqs-prometheus-yace.json new file mode 100644 index 0000000..50043d2 --- /dev/null +++ b/aws-sqs-prometheus-yace/aws-sqs-prometheus-yace.json @@ -0,0 +1,1754 @@ +{ + "description": "", + "image": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHZpZXdCb3g9IjAgMCAxOCAxOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE0Ljk0OTQgMTMuOTQyQzE2LjIzMTggMTIuNDI1OCAxNy4zMjY4IDkuNzAyMiAxNi4xOTU2IDYuNTc0ODdDMTUuNjQ0MyA1LjA1MjQ1IDE1LjAyMTkgNC4yMDI0OSAxNC4yOTY5IDMuNjYyNTJDMTMuODU1NyAzLjMzMzc5IDEyLjA5MzMgMi41MDYzMyA5Ljc1OTY1IDIuODY3NTZDOC4wNTM0OSAzLjEzMjU1IDUuNzc0ODcgNC4yMDg3NCA0LjI5MzY5IDUuOTU5OUMyLjg1NzUyIDcuNjYxMDYgMS43NDg4MyA5LjAwNDc0IDEuNjk3NTggMTAuMzA5N0MxLjYzMTMzIDExLjk4ODMgMi44OTYyNyAxMy40MzA4IDMuMDUwMDEgMTMuNjY0NUMzLjMyMzc0IDE0LjA3OTUgNS4xOTExNSAxNi40NTE4IDguNjk5NzEgMTYuNTczMUMxMS43OTcgMTYuNjc5MyAxMy44MTQ0IDE1LjI4NDQgMTQuOTQ5NCAxMy45NDJaIiBmaWxsPSIjNDAzRDNFIi8+CjxwYXRoIGQ9Ik00LjU1MzYzIDIuNzM3NDdDMi45Mzc0NiAzLjg5MTE2IDEuMTIxMzEgNi4yNTEwMyAxLjQ0NzU0IDkuNTYwODZDMS42MDYyOCAxMS4xNzIgMi4wMDI1MSAxMi4xNDk1IDIuNTcxMjMgMTIuODUwN0MyLjkxNzQ2IDEzLjI3ODIgNC40MTk4OCAxNC41NDkzIDYuNzczNTEgMTQuNzM2OEM5LjE0NTg4IDE0LjkyNTYgMTAuOTQ5NSAxNC4zOTQ0IDEyLjgzMzIgMTMuMDg0NEMxNi42NjE3IDEwLjQyMDggMTYuMDk4IDYuMzkzNTMgMTUuOTM0MyA1LjkyNDhDMTUuNzcwNSA1LjQ1NjA3IDE0LjU0NDQgMi42OTYyMiAxMS4xNzMzIDEuNzE1MDJDOC4xOTg0NCAwLjg1MDA2OCA1Ljk4MzU1IDEuNzE1MDIgNC41NTM2MyAyLjczNzQ3WiIgZmlsbD0iIzVFNjM2NyIvPgo8cGF0aCBkPSJNNy4zOTM1MyAyLjk2MTA5QzUuNjE3MzcgMi44OTczNCAzLjkxOTk2IDQuMjg4NTIgMy43NTYyMiA2LjAwNTkzQzMuNTkyNDggNy43MjIwOSA0LjY1NDkyIDkuMDI5NTIgNi4zMDk4MyA5LjI5NTc2QzcuOTY0NzUgOS41NjA3NCA5Ljg3ODM5IDguNTU1OCAxMC4yNjM0IDYuNDUwOTFDMTAuNjYwOSA0LjI4MjI3IDkuMDg5NjkgMy4wMjIzNCA3LjM5MzUzIDIuOTYxMDlaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNy45NDIxNyA1LjkwMTE1QzcuOTQyMTcgNS45MDExNSA4LjM2OTY1IDUuODEyNCA4LjQ1NDY1IDUuMTgyNDRDOC41MzgzOSA0LjU2MjQ3IDguMjMwOTEgNC4wMzM3NSA3LjUxMzQ1IDMuODQzNzZDNi43MzM0OSAzLjYzNzUyIDYuMjA0NzcgNC4wNjYyNSA2LjA2NzI3IDQuNTE3NDdDNS44NzYwMyA1LjE0NDk0IDYuMTU4NTIgNS40NDM2NyA2LjE1ODUyIDUuNDQzNjdDNi4xNTg1MiA1LjQ0MzY3IDUuMzkzNTYgNS42Mjc0MSA1LjMzMjMxIDYuNTI5ODdDNS4yNzQ4MSA3LjM4MTA3IDUuODU2MDMgNy44Mzg1NSA2LjQzOTc1IDcuOTc4NTRDNy4xNjA5NiA4LjE1MjI4IDcuOTc4NDIgNy45NTQ3OSA4LjE3ODQxIDcuMDM0ODRDOC4zNDQ2NSA2LjI3NzM4IDcuOTQyMTcgNS45MDExNSA3Ljk0MjE3IDUuOTAxMTVaIiBmaWxsPSIjMzAzMDMwIi8+CjxwYXRoIGQ9Ik02LjczOTgzIDQuNzUzNjJDNi42NzEwOSA1LjAxMjM1IDYuODA4NTggNS4yNjIzNCA3LjA3ODU3IDUuMzMxMDlDNy4zNjk4IDUuNDA0ODMgNy42MzQ3OSA1LjMwODU5IDcuNzA2MDMgNS4wMTExQzcuNzY4NTMgNC43NDczNyA3LjY0MzU0IDQuNTE0ODggNy4zMzYwNSA0LjQzOTg4QzcuMDgzNTcgNC4zNzczOSA2LjgxNDgzIDQuNDcxMTMgNi43Mzk4MyA0Ljc1MzYyWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTYuOTU5NzggNi4wMzk3NEM2LjYzMjMgNS45Mzg0OSA2LjE5OTgyIDYuMDY0NzMgNi4xMzEwNyA2LjUwNDcxQzYuMDYyMzMgNi45NDQ2OSA2LjMyNjA2IDcuMTY5NjggNi42NzEwNCA3LjIzMjE3QzcuMDE2MDMgNy4yOTQ2NyA3LjM0MjI2IDcuMTEzNDMgNy40MDYwMSA2Ljc2MDk1QzcuNDY4NSA2LjQwOTcyIDcuMjg2MDEgNi4xMzk3MyA2Ljk1OTc4IDYuMDM5NzRaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K", + "layout": [ + { + "h": 6, + "i": "3a953221-022f-44a2-99d1-0221d8dbd185", + "moved": false, + "static": false, + "w": 4, + "x": 0, + "y": 0 + }, + { + "h": 6, + "i": "ba173145-7e2d-492c-939f-f54c394b048d", + "moved": false, + "static": false, + "w": 4, + "x": 4, + "y": 0 + }, + { + "h": 6, + "i": "e934172d-5456-42a3-b155-33cc1332e0aa", + "moved": false, + "static": false, + "w": 4, + "x": 8, + "y": 0 + }, + { + "h": 6, + "i": "e98f9705-cbdd-416f-bfe6-bdfdc1269b23", + "moved": false, + "static": false, + "w": 12, + "x": 0, + "y": 6 + }, + { + "h": 6, + "i": "50da184b-e51c-481f-a58f-ddec7dbb7808", + "moved": false, + "static": false, + "w": 12, + "x": 0, + "y": 12 + }, + { + "h": 6, + "i": "ec5f3994-3c70-4d7e-947e-b6dac1f1b49e", + "moved": false, + "static": false, + "w": 12, + "x": 0, + "y": 18 + }, + { + "h": 6, + "i": "897e53c7-bb02-4cb9-ba90-c49c7e62749c", + "moved": false, + "static": false, + "w": 12, + "x": 0, + "y": 24 + }, + { + "h": 6, + "i": "d1ae4c95-2b0e-411d-a45b-2a00ef18207f", + "moved": false, + "static": false, + "w": 12, + "x": 0, + "y": 30 + } + ], + "panelMap": {}, + "tags": [], + "title": "AWS SQS Prometheus (YACE)", + "uploadedGrafana": false, + "variables": { + "1116ae62-9a98-4740-aba0-1790c4b3258e": { + "allSelected": false, + "customValue": "", + "description": "Select SigNoz across different environments", + "id": "1116ae62-9a98-4740-aba0-1790c4b3258e", + "modificationUUID": "b64805ff-12ae-45c0-9a9b-e2cac59a52f8", + "multiSelect": false, + "name": "deployement.environment", + "order": 0, + "queryValue": "SELECT DISTINCT(JSONExtractString(labels, 'deployment_environment')) as deployment_environment\nFROM signoz_metrics.time_series_v4\nWHERE (metric_name LIKE '%otelcol%')\nGROUP BY deployment_environment", + "showALLOption": false, + "sort": "DISABLED", + "textboxValue": "", + "type": "QUERY" + }, + "20076cba-98bf-4248-9f27-38e76ae3343d": { + "allSelected": false, + "customValue": "", + "description": "Select AWS region", + "id": "20076cba-98bf-4248-9f27-38e76ae3343d", + "key": "20076cba-98bf-4248-9f27-38e76ae3343d", + "modificationUUID": "5259007e-4eaa-4ea1-a66f-5138a69a8b20", + "multiSelect": false, + "name": "region", + "order": 0, + "queryValue": "SELECT DISTINCT(JSONExtractString(labels, 'region'))\nFROM signoz_metrics.time_series_v4\nWHERE metric_name like '%aws%'", + "showALLOption": false, + "sort": "DISABLED", + "textboxValue": "", + "type": "QUERY" + }, + "60e3d72c-a0a8-4b06-8b62-c7e3e7e5a670": { + "allSelected": false, + "customValue": "", + "description": "Select the AWS SQS", + "id": "60e3d72c-a0a8-4b06-8b62-c7e3e7e5a670", + "key": "60e3d72c-a0a8-4b06-8b62-c7e3e7e5a670", + "modificationUUID": "494297c0-9b0a-46c2-bcf0-d833ed192edb", + "multiSelect": false, + "name": "queue.name", + "order": 0, + "queryValue": "SELECT DISTINCT(JSONExtractString(labels, 'dimension_QueueName'))\nFROM signoz_metrics.time_series_v4\nWHERE metric_name like '%aws%'", + "showALLOption": false, + "sort": "DISABLED", + "textboxValue": "", + "type": "QUERY" + } + }, + "version": "v4", + "widgets": [ + { + "bucketCount": 30, + "bucketWidth": 0, + "columnUnits": {}, + "description": "", + "fillSpans": false, + "id": "e934172d-5456-42a3-b155-33cc1332e0aa", + "isStacked": false, + "mergeAllActiveQueries": false, + "nullZeroValues": "zero", + "opacity": "1", + "panelTypes": "value", + "query": { + "builder": { + "queryData": [ + { + "aggregateAttribute": { + "dataType": "float64", + "id": "aws_sqs_number_of_messages_deleted_sum--float64--Gauge--true", + "isColumn": true, + "isJSON": false, + "key": "aws_sqs_number_of_messages_deleted_sum", + "type": "Gauge" + }, + "aggregateOperator": "latest", + "dataSource": "metrics", + "disabled": false, + "expression": "A", + "filters": { + "items": [ + { + "id": "94e14532", + "key": { + "dataType": "", + "isColumn": false, + "key": "region", + "type": "" + }, + "op": "like", + "value": "$region" + }, + { + "id": "13df6ace", + "key": { + "dataType": "", + "isColumn": false, + "key": "dimension_QueueName", + "type": "" + }, + "op": "like", + "value": "$queue.name" + }, + { + "id": "29d8a438", + "key": { + "dataType": "", + "isColumn": false, + "key": "deployment_environment", + "type": "" + }, + "op": "like", + "value": "$deployment.environment" + } + ], + "op": "AND" + }, + "functions": [], + "groupBy": [], + "having": [], + "legend": "{{dimension_QueueName}} ", + "limit": null, + "orderBy": [], + "queryName": "A", + "reduceTo": "avg", + "spaceAggregation": "avg", + "stepInterval": 60, + "timeAggregation": "latest" + } + ], + "queryFormulas": [] + }, + "clickhouse_sql": [ + { + "disabled": false, + "legend": "", + "name": "A", + "query": "" + } + ], + "id": "7780d04d-557e-4d5a-a0e2-f678730bdcec", + "promql": [ + { + "disabled": false, + "legend": "", + "name": "A", + "query": "" + } + ], + "queryType": "builder" + }, + "selectedLogFields": [ + { + "dataType": "string", + "name": "body", + "type": "" + }, + { + "dataType": "string", + "name": "timestamp", + "type": "" + } + ], + "selectedTracesFields": [ + { + "dataType": "string", + "id": "serviceName--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "serviceName", + "type": "tag" + }, + { + "dataType": "string", + "id": "name--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "name", + "type": "tag" + }, + { + "dataType": "float64", + "id": "durationNano--float64--tag--true", + "isColumn": true, + "isJSON": false, + "key": "durationNano", + "type": "tag" + }, + { + "dataType": "string", + "id": "httpMethod--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "httpMethod", + "type": "tag" + }, + { + "dataType": "string", + "id": "responseStatusCode--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "responseStatusCode", + "type": "tag" + } + ], + "softMax": 0, + "softMin": 0, + "stackedBarChart": false, + "thresholds": [], + "timePreferance": "GLOBAL_TIME", + "title": "Message Deleted", + "yAxisUnit": "none" + }, + { + "bucketCount": 30, + "bucketWidth": 0, + "columnUnits": {}, + "description": "", + "fillSpans": false, + "id": "ba173145-7e2d-492c-939f-f54c394b048d", + "isStacked": false, + "mergeAllActiveQueries": false, + "nullZeroValues": "zero", + "opacity": "1", + "panelTypes": "value", + "query": { + "builder": { + "queryData": [ + { + "aggregateAttribute": { + "dataType": "float64", + "id": "aws_sqs_number_of_messages_sent_sum--float64--Gauge--true", + "isColumn": true, + "isJSON": false, + "key": "aws_sqs_number_of_messages_sent_sum", + "type": "Gauge" + }, + "aggregateOperator": "latest", + "dataSource": "metrics", + "disabled": false, + "expression": "A", + "filters": { + "items": [ + { + "id": "72ec4b4b", + "key": { + "dataType": "", + "isColumn": false, + "key": "region", + "type": "" + }, + "op": "like", + "value": "$region" + }, + { + "id": "19122c7a", + "key": { + "dataType": "", + "isColumn": false, + "key": "dimension_QueueName", + "type": "" + }, + "op": "=", + "value": "$queue.name" + }, + { + "id": "1a8039ae", + "key": { + "dataType": "", + "isColumn": false, + "key": "deployment_environment", + "type": "" + }, + "op": "like", + "value": "$deployment.environment" + } + ], + "op": "AND" + }, + "functions": [], + "groupBy": [], + "having": [], + "legend": "{{dimension_QueueName}} ", + "limit": null, + "orderBy": [], + "queryName": "A", + "reduceTo": "avg", + "spaceAggregation": "avg", + "stepInterval": 60, + "timeAggregation": "latest" + } + ], + "queryFormulas": [] + }, + "clickhouse_sql": [ + { + "disabled": false, + "legend": "", + "name": "A", + "query": "" + } + ], + "id": "4afdbb90-be3b-4052-8d33-733d11da63a7", + "promql": [ + { + "disabled": false, + "legend": "", + "name": "A", + "query": "" + } + ], + "queryType": "builder" + }, + "selectedLogFields": [ + { + "dataType": "string", + "name": "body", + "type": "" + }, + { + "dataType": "string", + "name": "timestamp", + "type": "" + } + ], + "selectedTracesFields": [ + { + "dataType": "string", + "id": "serviceName--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "serviceName", + "type": "tag" + }, + { + "dataType": "string", + "id": "name--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "name", + "type": "tag" + }, + { + "dataType": "float64", + "id": "durationNano--float64--tag--true", + "isColumn": true, + "isJSON": false, + "key": "durationNano", + "type": "tag" + }, + { + "dataType": "string", + "id": "httpMethod--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "httpMethod", + "type": "tag" + }, + { + "dataType": "string", + "id": "responseStatusCode--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "responseStatusCode", + "type": "tag" + } + ], + "softMax": 0, + "softMin": 0, + "stackedBarChart": false, + "thresholds": [], + "timePreferance": "GLOBAL_TIME", + "title": "Message Sent", + "yAxisUnit": "none" + }, + { + "bucketCount": 30, + "bucketWidth": 0, + "columnUnits": {}, + "description": "", + "fillSpans": false, + "id": "3a953221-022f-44a2-99d1-0221d8dbd185", + "isStacked": false, + "mergeAllActiveQueries": false, + "nullZeroValues": "zero", + "opacity": "1", + "panelTypes": "value", + "query": { + "builder": { + "queryData": [ + { + "aggregateAttribute": { + "dataType": "float64", + "id": "aws_sqs_number_of_messages_received_sum--float64--Gauge--true", + "isColumn": true, + "isJSON": false, + "key": "aws_sqs_number_of_messages_received_sum", + "type": "Gauge" + }, + "aggregateOperator": "latest", + "dataSource": "metrics", + "disabled": false, + "expression": "A", + "filters": { + "items": [ + { + "id": "27a5894d", + "key": { + "dataType": "", + "isColumn": false, + "key": "region", + "type": "" + }, + "op": "like", + "value": "$region" + }, + { + "id": "c1cf1a83", + "key": { + "dataType": "", + "isColumn": false, + "key": "dimension_QueueName", + "type": "" + }, + "op": "like", + "value": "$queue.name" + }, + { + "id": "46375b21", + "key": { + "dataType": "", + "isColumn": false, + "key": "deployment_environment", + "type": "" + }, + "op": "like", + "value": "$deployment.environment" + } + ], + "op": "AND" + }, + "functions": [], + "groupBy": [], + "having": [], + "legend": "{{dimension_QueueName}} ", + "limit": null, + "orderBy": [], + "queryName": "A", + "reduceTo": "avg", + "spaceAggregation": "avg", + "stepInterval": 60, + "timeAggregation": "latest" + } + ], + "queryFormulas": [] + }, + "clickhouse_sql": [ + { + "disabled": false, + "legend": "", + "name": "A", + "query": "" + } + ], + "id": "7d13b4dc-ffc4-4337-bef3-9093254a4836", + "promql": [ + { + "disabled": false, + "legend": "", + "name": "A", + "query": "" + } + ], + "queryType": "builder" + }, + "selectedLogFields": [ + { + "dataType": "string", + "name": "body", + "type": "" + }, + { + "dataType": "string", + "name": "timestamp", + "type": "" + } + ], + "selectedTracesFields": [ + { + "dataType": "string", + "id": "serviceName--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "serviceName", + "type": "tag" + }, + { + "dataType": "string", + "id": "name--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "name", + "type": "tag" + }, + { + "dataType": "float64", + "id": "durationNano--float64--tag--true", + "isColumn": true, + "isJSON": false, + "key": "durationNano", + "type": "tag" + }, + { + "dataType": "string", + "id": "httpMethod--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "httpMethod", + "type": "tag" + }, + { + "dataType": "string", + "id": "responseStatusCode--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "responseStatusCode", + "type": "tag" + } + ], + "softMax": 0, + "softMin": 0, + "stackedBarChart": false, + "thresholds": [], + "timePreferance": "GLOBAL_TIME", + "title": "Message Received", + "yAxisUnit": "none" + }, + { + "bucketCount": 30, + "bucketWidth": 0, + "columnUnits": {}, + "description": "", + "fillSpans": false, + "id": "e98f9705-cbdd-416f-bfe6-bdfdc1269b23", + "isStacked": false, + "mergeAllActiveQueries": false, + "nullZeroValues": "zero", + "opacity": "1", + "panelTypes": "graph", + "query": { + "builder": { + "queryData": [ + { + "aggregateAttribute": { + "dataType": "float64", + "id": "aws_sqs_number_of_messages_sent_sum--float64--Gauge--true", + "isColumn": true, + "isJSON": false, + "key": "aws_sqs_number_of_messages_sent_sum", + "type": "Gauge" + }, + "aggregateOperator": "latest", + "dataSource": "metrics", + "disabled": false, + "expression": "A", + "filters": { + "items": [ + { + "id": "2b3cbb9e", + "key": { + "dataType": "", + "isColumn": false, + "key": "region", + "type": "" + }, + "op": "like", + "value": "$region" + }, + { + "id": "d8fbf31e", + "key": { + "dataType": "", + "isColumn": false, + "key": "dimension_QueueName", + "type": "" + }, + "op": "like", + "value": "$queue.name" + }, + { + "id": "14fcd838", + "key": { + "dataType": "", + "isColumn": false, + "key": "deployment_environment", + "type": "" + }, + "op": "like", + "value": "$deployment.environment" + } + ], + "op": "AND" + }, + "functions": [], + "groupBy": [ + { + "dataType": "", + "id": "dimension_QueueName------false", + "isColumn": false, + "key": "dimension_QueueName", + "type": "" + } + ], + "having": [], + "legend": "'{{dimension_QueueName}}' sent", + "limit": null, + "orderBy": [], + "queryName": "A", + "reduceTo": "avg", + "spaceAggregation": "avg", + "stepInterval": 60, + "timeAggregation": "latest" + }, + { + "aggregateAttribute": { + "dataType": "float64", + "id": "aws_sqs_number_of_messages_received_sum--float64--Gauge--true", + "isColumn": true, + "isJSON": false, + "key": "aws_sqs_number_of_messages_received_sum", + "type": "Gauge" + }, + "aggregateOperator": "latest", + "dataSource": "metrics", + "disabled": false, + "expression": "B", + "filters": { + "items": [ + { + "id": "868488fb", + "key": { + "dataType": "", + "isColumn": false, + "key": "region", + "type": "" + }, + "op": "like", + "value": "$region" + }, + { + "id": "5e51ee75", + "key": { + "dataType": "", + "isColumn": false, + "key": "dimension_QueueName", + "type": "" + }, + "op": "like", + "value": "$queue.name" + }, + { + "id": "291d09c4", + "key": { + "dataType": "", + "isColumn": false, + "key": "deployment_environment", + "type": "" + }, + "op": "like", + "value": "$deployment.environment" + } + ], + "op": "AND" + }, + "functions": [], + "groupBy": [ + { + "dataType": "", + "id": "dimension_QueueName------false", + "isColumn": false, + "key": "dimension_QueueName", + "type": "" + } + ], + "having": [], + "legend": "'{{dimension_QueueName}}' received", + "limit": null, + "orderBy": [], + "queryName": "B", + "reduceTo": "avg", + "spaceAggregation": "avg", + "stepInterval": 60, + "timeAggregation": "latest" + }, + { + "aggregateAttribute": { + "dataType": "float64", + "id": "aws_sqs_number_of_messages_deleted_sum--float64--Gauge--true", + "isColumn": true, + "isJSON": false, + "key": "aws_sqs_number_of_messages_deleted_sum", + "type": "Gauge" + }, + "aggregateOperator": "avg", + "dataSource": "metrics", + "disabled": false, + "expression": "C", + "filters": { + "items": [ + { + "id": "939d18a2", + "key": { + "dataType": "", + "isColumn": false, + "key": "region", + "type": "" + }, + "op": "like", + "value": "$region" + }, + { + "id": "727f4cda", + "key": { + "dataType": "", + "isColumn": false, + "key": "dimension_QueueName", + "type": "" + }, + "op": "like", + "value": "$queue.name" + }, + { + "id": "364dd070", + "key": { + "dataType": "", + "isColumn": false, + "key": "deployment_environment", + "type": "" + }, + "op": "like", + "value": "$deployment.environment" + } + ], + "op": "AND" + }, + "functions": [], + "groupBy": [ + { + "dataType": "", + "id": "dimension_QueueName------false", + "isColumn": false, + "key": "dimension_QueueName", + "type": "" + } + ], + "having": [], + "legend": "'{{dimension_QueueName}}' deleted", + "limit": null, + "orderBy": [], + "queryName": "C", + "reduceTo": "avg", + "spaceAggregation": "avg", + "stepInterval": 60, + "timeAggregation": "avg" + } + ], + "queryFormulas": [] + }, + "clickhouse_sql": [ + { + "disabled": false, + "legend": "", + "name": "A", + "query": "" + } + ], + "id": "4008bbda-976d-41b8-b842-393c25501583", + "promql": [ + { + "disabled": false, + "legend": "", + "name": "A", + "query": "" + } + ], + "queryType": "builder" + }, + "selectedLogFields": [ + { + "dataType": "string", + "name": "body", + "type": "" + }, + { + "dataType": "string", + "name": "timestamp", + "type": "" + } + ], + "selectedTracesFields": [ + { + "dataType": "string", + "id": "serviceName--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "serviceName", + "type": "tag" + }, + { + "dataType": "string", + "id": "name--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "name", + "type": "tag" + }, + { + "dataType": "float64", + "id": "durationNano--float64--tag--true", + "isColumn": true, + "isJSON": false, + "key": "durationNano", + "type": "tag" + }, + { + "dataType": "string", + "id": "httpMethod--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "httpMethod", + "type": "tag" + }, + { + "dataType": "string", + "id": "responseStatusCode--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "responseStatusCode", + "type": "tag" + } + ], + "softMax": 0, + "softMin": 0, + "stackedBarChart": false, + "thresholds": [], + "timePreferance": "GLOBAL_TIME", + "title": "Message Operations", + "yAxisUnit": "none" + }, + { + "bucketCount": 30, + "bucketWidth": 0, + "columnUnits": {}, + "description": "", + "fillSpans": false, + "id": "d1ae4c95-2b0e-411d-a45b-2a00ef18207f", + "isStacked": false, + "mergeAllActiveQueries": false, + "nullZeroValues": "zero", + "opacity": "1", + "panelTypes": "graph", + "query": { + "builder": { + "queryData": [ + { + "aggregateAttribute": { + "dataType": "float64", + "id": "aws_sqs_number_of_empty_receives_sum--float64--Gauge--true", + "isColumn": true, + "isJSON": false, + "key": "aws_sqs_number_of_empty_receives_sum", + "type": "Gauge" + }, + "aggregateOperator": "latest", + "dataSource": "metrics", + "disabled": false, + "expression": "A", + "filters": { + "items": [ + { + "id": "1602b4d8", + "key": { + "dataType": "", + "isColumn": false, + "key": "region", + "type": "" + }, + "op": "like", + "value": "$region" + }, + { + "id": "b283c6b4", + "key": { + "dataType": "", + "isColumn": false, + "key": "dimension_QueueName", + "type": "" + }, + "op": "like", + "value": "$queue.name" + }, + { + "id": "f3792f83", + "key": { + "dataType": "", + "isColumn": false, + "key": "deployment_environment", + "type": "" + }, + "op": "like", + "value": "$deployment.environment" + } + ], + "op": "AND" + }, + "functions": [], + "groupBy": [ + { + "dataType": "", + "id": "dimension_QueueName------false", + "isColumn": false, + "key": "dimension_QueueName", + "type": "" + } + ], + "having": [], + "legend": "{{dimension_QueueName}}", + "limit": null, + "orderBy": [], + "queryName": "A", + "reduceTo": "avg", + "spaceAggregation": "avg", + "stepInterval": 60, + "timeAggregation": "latest" + } + ], + "queryFormulas": [] + }, + "clickhouse_sql": [ + { + "disabled": false, + "legend": "", + "name": "A", + "query": "" + } + ], + "id": "d030264a-8e2f-4799-84a1-7c9df7f90e47", + "promql": [ + { + "disabled": false, + "legend": "", + "name": "A", + "query": "" + } + ], + "queryType": "builder" + }, + "selectedLogFields": [ + { + "dataType": "string", + "name": "body", + "type": "" + }, + { + "dataType": "string", + "name": "timestamp", + "type": "" + } + ], + "selectedTracesFields": [ + { + "dataType": "string", + "id": "serviceName--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "serviceName", + "type": "tag" + }, + { + "dataType": "string", + "id": "name--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "name", + "type": "tag" + }, + { + "dataType": "float64", + "id": "durationNano--float64--tag--true", + "isColumn": true, + "isJSON": false, + "key": "durationNano", + "type": "tag" + }, + { + "dataType": "string", + "id": "httpMethod--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "httpMethod", + "type": "tag" + }, + { + "dataType": "string", + "id": "responseStatusCode--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "responseStatusCode", + "type": "tag" + } + ], + "softMax": 0, + "softMin": 0, + "stackedBarChart": false, + "thresholds": [], + "timePreferance": "GLOBAL_TIME", + "title": "Number of Empty Receive Operations", + "yAxisUnit": "none" + }, + { + "bucketCount": 30, + "bucketWidth": 0, + "columnUnits": {}, + "description": "", + "fillSpans": false, + "id": "ec5f3994-3c70-4d7e-947e-b6dac1f1b49e", + "isStacked": false, + "mergeAllActiveQueries": false, + "nullZeroValues": "zero", + "opacity": "1", + "panelTypes": "graph", + "query": { + "builder": { + "queryData": [ + { + "aggregateAttribute": { + "dataType": "float64", + "id": "aws_sqs_approximate_number_of_messages_visible_average--float64--Gauge--true", + "isColumn": true, + "isJSON": false, + "key": "aws_sqs_approximate_number_of_messages_visible_average", + "type": "Gauge" + }, + "aggregateOperator": "avg", + "dataSource": "metrics", + "disabled": false, + "expression": "A", + "filters": { + "items": [ + { + "id": "e55b5667", + "key": { + "dataType": "", + "isColumn": false, + "key": "region", + "type": "" + }, + "op": "like", + "value": "$region" + }, + { + "id": "a1a1a70a", + "key": { + "dataType": "", + "isColumn": false, + "key": "dimension_QueueName", + "type": "" + }, + "op": "like", + "value": "$queue.name" + }, + { + "id": "4ad29da3", + "key": { + "dataType": "", + "isColumn": false, + "key": "deployment_environment", + "type": "" + }, + "op": "like", + "value": "$deployment.environment" + } + ], + "op": "AND" + }, + "functions": [], + "groupBy": [ + { + "dataType": "", + "id": "dimension_QueueName------false", + "isColumn": false, + "key": "dimension_QueueName", + "type": "" + } + ], + "having": [], + "legend": "'{{dimension_QueueName}}' visible", + "limit": null, + "orderBy": [], + "queryName": "A", + "reduceTo": "avg", + "spaceAggregation": "avg", + "stepInterval": 60, + "timeAggregation": "avg" + }, + { + "aggregateAttribute": { + "dataType": "float64", + "id": "aws_sqs_approximate_number_of_messages_not_visible_average--float64--Gauge--true", + "isColumn": true, + "isJSON": false, + "key": "aws_sqs_approximate_number_of_messages_not_visible_average", + "type": "Gauge" + }, + "aggregateOperator": "avg", + "dataSource": "metrics", + "disabled": false, + "expression": "B", + "filters": { + "items": [ + { + "id": "de178737", + "key": { + "dataType": "", + "isColumn": false, + "key": "region", + "type": "" + }, + "op": "like", + "value": "$region" + }, + { + "id": "09794d53", + "key": { + "dataType": "", + "isColumn": false, + "key": "dimension_QueueName", + "type": "" + }, + "op": "like", + "value": "$queue.name" + }, + { + "id": "87395019", + "key": { + "dataType": "", + "isColumn": false, + "key": "deployment_environment", + "type": "" + }, + "op": "like", + "value": "$deployment.environment" + } + ], + "op": "AND" + }, + "functions": [], + "groupBy": [ + { + "dataType": "", + "id": "dimension_QueueName------false", + "isColumn": false, + "key": "dimension_QueueName", + "type": "" + } + ], + "having": [], + "legend": "'{{dimension_QueueName}}' not visible", + "limit": null, + "orderBy": [], + "queryName": "B", + "reduceTo": "avg", + "spaceAggregation": "avg", + "stepInterval": 60, + "timeAggregation": "avg" + }, + { + "aggregateAttribute": { + "dataType": "float64", + "id": "aws_sqs_approximate_number_of_messages_delayed_average--float64--Gauge--true", + "isColumn": true, + "isJSON": false, + "key": "aws_sqs_approximate_number_of_messages_delayed_average", + "type": "Gauge" + }, + "aggregateOperator": "avg", + "dataSource": "metrics", + "disabled": false, + "expression": "C", + "filters": { + "items": [ + { + "id": "14834b0c", + "key": { + "dataType": "", + "isColumn": false, + "key": "region", + "type": "" + }, + "op": "like", + "value": "$region" + }, + { + "id": "97be14a4", + "key": { + "dataType": "", + "isColumn": false, + "key": "dimension_QueueName", + "type": "" + }, + "op": "like", + "value": "$queue.name" + }, + { + "id": "23cd2dc1", + "key": { + "dataType": "", + "isColumn": false, + "key": "deployment_environment", + "type": "" + }, + "op": "like", + "value": "$deployment.environment" + } + ], + "op": "AND" + }, + "functions": [], + "groupBy": [ + { + "dataType": "", + "id": "dimension_QueueName------false", + "isColumn": false, + "key": "dimension_QueueName", + "type": "" + } + ], + "having": [], + "legend": "'{{dimension_QueueName}}' delayed", + "limit": null, + "orderBy": [], + "queryName": "C", + "reduceTo": "avg", + "spaceAggregation": "avg", + "stepInterval": 60, + "timeAggregation": "avg" + } + ], + "queryFormulas": [] + }, + "clickhouse_sql": [ + { + "disabled": false, + "legend": "", + "name": "A", + "query": "" + } + ], + "id": "bc15133a-d8c5-4845-b9c3-8a67b1b9a6af", + "promql": [ + { + "disabled": false, + "legend": "", + "name": "A", + "query": "" + } + ], + "queryType": "builder" + }, + "selectedLogFields": [ + { + "dataType": "string", + "name": "body", + "type": "" + }, + { + "dataType": "string", + "name": "timestamp", + "type": "" + } + ], + "selectedTracesFields": [ + { + "dataType": "string", + "id": "serviceName--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "serviceName", + "type": "tag" + }, + { + "dataType": "string", + "id": "name--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "name", + "type": "tag" + }, + { + "dataType": "float64", + "id": "durationNano--float64--tag--true", + "isColumn": true, + "isJSON": false, + "key": "durationNano", + "type": "tag" + }, + { + "dataType": "string", + "id": "httpMethod--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "httpMethod", + "type": "tag" + }, + { + "dataType": "string", + "id": "responseStatusCode--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "responseStatusCode", + "type": "tag" + } + ], + "softMax": 0, + "softMin": 0, + "stackedBarChart": false, + "thresholds": [], + "timePreferance": "GLOBAL_TIME", + "title": "Status of Messages in Queue", + "yAxisUnit": "none" + }, + { + "bucketCount": 30, + "bucketWidth": 0, + "columnUnits": {}, + "description": "", + "fillSpans": false, + "id": "897e53c7-bb02-4cb9-ba90-c49c7e62749c", + "isStacked": false, + "mergeAllActiveQueries": false, + "nullZeroValues": "zero", + "opacity": "1", + "panelTypes": "graph", + "query": { + "builder": { + "queryData": [ + { + "aggregateAttribute": { + "dataType": "float64", + "id": "aws_sqs_sent_message_size_average--float64--Gauge--true", + "isColumn": true, + "isJSON": false, + "key": "aws_sqs_sent_message_size_average", + "type": "Gauge" + }, + "aggregateOperator": "avg", + "dataSource": "metrics", + "disabled": false, + "expression": "A", + "filters": { + "items": [ + { + "id": "1d4de591", + "key": { + "dataType": "", + "isColumn": false, + "key": "region", + "type": "" + }, + "op": "like", + "value": "$region" + }, + { + "id": "ac84bad5", + "key": { + "dataType": "", + "isColumn": false, + "key": "dimension_QueueName", + "type": "" + }, + "op": "like", + "value": "$queue.name" + }, + { + "id": "fd26cd16", + "key": { + "dataType": "", + "isColumn": false, + "key": "deployment_environment", + "type": "" + }, + "op": "like", + "value": "$deployment.environment" + } + ], + "op": "AND" + }, + "functions": [], + "groupBy": [ + { + "dataType": "", + "id": "dimension_QueueName------false", + "isColumn": false, + "key": "dimension_QueueName", + "type": "" + } + ], + "having": [], + "legend": "{{dimension_QueueName}}", + "limit": null, + "orderBy": [], + "queryName": "A", + "reduceTo": "avg", + "spaceAggregation": "avg", + "stepInterval": 60, + "timeAggregation": "avg" + } + ], + "queryFormulas": [] + }, + "clickhouse_sql": [ + { + "disabled": false, + "legend": "", + "name": "A", + "query": "" + } + ], + "id": "f27d6964-2ece-4bc8-af3b-42f9a253f3c9", + "promql": [ + { + "disabled": false, + "legend": "", + "name": "A", + "query": "" + } + ], + "queryType": "builder" + }, + "selectedLogFields": [ + { + "dataType": "string", + "name": "body", + "type": "" + }, + { + "dataType": "string", + "name": "timestamp", + "type": "" + } + ], + "selectedTracesFields": [ + { + "dataType": "string", + "id": "serviceName--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "serviceName", + "type": "tag" + }, + { + "dataType": "string", + "id": "name--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "name", + "type": "tag" + }, + { + "dataType": "float64", + "id": "durationNano--float64--tag--true", + "isColumn": true, + "isJSON": false, + "key": "durationNano", + "type": "tag" + }, + { + "dataType": "string", + "id": "httpMethod--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "httpMethod", + "type": "tag" + }, + { + "dataType": "string", + "id": "responseStatusCode--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "responseStatusCode", + "type": "tag" + } + ], + "softMax": 0, + "softMin": 0, + "stackedBarChart": false, + "thresholds": [], + "timePreferance": "GLOBAL_TIME", + "title": "Sent Message Size", + "yAxisUnit": "none" + }, + { + "bucketCount": 30, + "bucketWidth": 0, + "columnUnits": {}, + "description": "", + "fillSpans": false, + "id": "50da184b-e51c-481f-a58f-ddec7dbb7808", + "isStacked": false, + "mergeAllActiveQueries": false, + "nullZeroValues": "zero", + "opacity": "1", + "panelTypes": "graph", + "query": { + "builder": { + "queryData": [ + { + "aggregateAttribute": { + "dataType": "float64", + "id": "aws_sqs_approximate_age_of_oldest_message_maximum--float64--Gauge--true", + "isColumn": true, + "isJSON": false, + "key": "aws_sqs_approximate_age_of_oldest_message_maximum", + "type": "Gauge" + }, + "aggregateOperator": "latest", + "dataSource": "metrics", + "disabled": false, + "expression": "A", + "filters": { + "items": [ + { + "id": "10b28e91", + "key": { + "dataType": "", + "isColumn": false, + "key": "region", + "type": "" + }, + "op": "like", + "value": "$region" + }, + { + "id": "00a05bc1", + "key": { + "dataType": "", + "isColumn": false, + "key": "dimension_QueueName", + "type": "" + }, + "op": "like", + "value": "$queue.name" + }, + { + "id": "50232800", + "key": { + "dataType": "", + "isColumn": false, + "key": "deployment_environment", + "type": "" + }, + "op": "like", + "value": "$deployment.environment" + } + ], + "op": "AND" + }, + "functions": [], + "groupBy": [ + { + "dataType": "", + "id": "dimension_QueueName------false", + "isColumn": false, + "key": "dimension_QueueName", + "type": "" + } + ], + "having": [], + "legend": "{{dimension_QueueName}}", + "limit": null, + "orderBy": [], + "queryName": "A", + "reduceTo": "avg", + "spaceAggregation": "avg", + "stepInterval": 60, + "timeAggregation": "latest" + } + ], + "queryFormulas": [] + }, + "clickhouse_sql": [ + { + "disabled": false, + "legend": "", + "name": "A", + "query": "" + } + ], + "id": "33975ec5-8462-4d54-b54a-8ee8aa7513d5", + "promql": [ + { + "disabled": false, + "legend": "", + "name": "A", + "query": "" + } + ], + "queryType": "builder" + }, + "selectedLogFields": [ + { + "dataType": "string", + "name": "body", + "type": "" + }, + { + "dataType": "string", + "name": "timestamp", + "type": "" + } + ], + "selectedTracesFields": [ + { + "dataType": "string", + "id": "serviceName--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "serviceName", + "type": "tag" + }, + { + "dataType": "string", + "id": "name--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "name", + "type": "tag" + }, + { + "dataType": "float64", + "id": "durationNano--float64--tag--true", + "isColumn": true, + "isJSON": false, + "key": "durationNano", + "type": "tag" + }, + { + "dataType": "string", + "id": "httpMethod--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "httpMethod", + "type": "tag" + }, + { + "dataType": "string", + "id": "responseStatusCode--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "responseStatusCode", + "type": "tag" + } + ], + "softMax": 0, + "softMin": 0, + "stackedBarChart": false, + "thresholds": [], + "timePreferance": "GLOBAL_TIME", + "title": "Oldest Message in Queue", + "yAxisUnit": "none" + } + ] + } \ No newline at end of file From d664d448b9ca5a4f4ef55a6d6d141e61e02bf9e7 Mon Sep 17 00:00:00 2001 From: animeshd9 Date: Tue, 5 Nov 2024 02:08:33 +0530 Subject: [PATCH 2/2] chore: updated readme --- aws-sqs-prometheus-yace/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aws-sqs-prometheus-yace/README.md b/aws-sqs-prometheus-yace/README.md index de0da0c..6840ff5 100644 --- a/aws-sqs-prometheus-yace/README.md +++ b/aws-sqs-prometheus-yace/README.md @@ -3,7 +3,7 @@ ## Metrics Ingestion ### Configure AWS SQS Prometheus Exporter -For more details about the exporter, visit [nerdswords/yet-another-cloudwatch-exporter](https://github.com/nerdswords/yet-another-cloudwatch-exporter) on GitHub.\ +For more details about the exporter, visit [nerdswords/yet-another-cloudwatch-exporter](https://github.com/nerdswords/yet-another-cloudwatch-exporter) on GitHub. 1. First write the configuration for yace. for more details about yace configuration visit [here].(https://github.com/nerdswords/yet-another-cloudwatch-exporter/blob/master/docs/configuration.md) ```yaml apiVersion: v1alpha1