QuickDID is a high-performance AT Protocol identity resolution service written in Rust. It provides handle-to-DID resolution with Redis-backed caching and queue processing.
1#!/bin/bash
2
3# Send test metrics to StatsD/Telegraf
4
5echo "Sending test metrics to StatsD on localhost:8125..."
6
7# Counter metrics
8for i in {1..10}; do
9 echo "quickdid.http.request.count:1|c|#method:GET,path:/resolve,status:200" | nc -u -w0 localhost 8125
10 echo "quickdid.http.request.count:1|c|#method:POST,path:/api,status:201" | nc -u -w0 localhost 8125
11 echo "quickdid.http.request.count:1|c|#method:GET,path:/resolve,status:404" | nc -u -w0 localhost 8125
12done
13
14# Gauge metrics
15echo "quickdid.resolver.rate_limit.available_permits:10|g" | nc -u -w0 localhost 8125
16echo "quickdid.resolver.rate_limit.available_permits:8|g" | nc -u -w0 localhost 8125
17echo "quickdid.resolver.rate_limit.available_permits:5|g" | nc -u -w0 localhost 8125
18
19# Timing metrics (in milliseconds)
20for i in {1..20}; do
21 duration=$((RANDOM % 100 + 10))
22 echo "quickdid.http.request.duration_ms:${duration}|ms|#method:GET,path:/resolve,status:200" | nc -u -w0 localhost 8125
23done
24
25for i in {1..10}; do
26 duration=$((RANDOM % 200 + 50))
27 echo "quickdid.http.request.duration_ms:${duration}|ms|#method:POST,path:/api,status:201" | nc -u -w0 localhost 8125
28done
29
30# Histogram metrics
31for i in {1..15}; do
32 resolution_time=$((RANDOM % 500 + 50))
33 echo "quickdid.resolver.resolution_time:${resolution_time}|h|#resolver:redis" | nc -u -w0 localhost 8125
34 echo "quickdid.resolver.resolution_time:$((resolution_time * 2))|h|#resolver:base" | nc -u -w0 localhost 8125
35done
36
37# Cache metrics
38echo "quickdid.cache.hit.count:45|c|#cache_type:redis" | nc -u -w0 localhost 8125
39echo "quickdid.cache.miss.count:5|c|#cache_type:redis" | nc -u -w0 localhost 8125
40echo "quickdid.cache.size:1024|g|#cache_type:memory" | nc -u -w0 localhost 8125
41
42echo "Metrics sent! Wait 15 seconds for Telegraf to flush..."
43sleep 15
44echo "Done!"