Skip to content

Commit 01140ab

Browse files
committed
Upgrade amoc-arsenal with new api and metrics
1 parent 04bff87 commit 01140ab

14 files changed

+108
-118
lines changed

.github/workflows/ci.yml

+5-4
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ jobs:
1313
name: OTP ${{matrix.otp_vsn}}
1414
strategy:
1515
matrix:
16-
otp_vsn: ['27', '26', '25']
17-
rebar_vsn: ['3.23.0']
16+
otp_vsn: ['27']
17+
rebar_vsn: ['3.24.0']
1818
runs-on: 'ubuntu-24.04'
1919
steps:
2020
- uses: actions/checkout@v4
@@ -33,7 +33,8 @@ jobs:
3333
name: docker container test with OTP ${{matrix.otp_vsn}}
3434
strategy:
3535
matrix:
36-
otp_vsn: ['27', '26', '25']
36+
otp_vsn: ['27']
37+
rebar_vsn: ['3.24.0']
3738
runs-on: 'ubuntu-24.04'
3839
env:
3940
OTP_RELEASE: ${{ matrix.otp_vsn }}
@@ -56,7 +57,7 @@ jobs:
5657
- integration_test
5758
if: github.ref == 'refs/heads/master'
5859
env:
59-
OTP_RELEASE: 27.0
60+
OTP_RELEASE: 27.1
6061
steps:
6162
- uses: actions/checkout@v4
6263
- name: Set up QEMU

ci/build_and_push_docker_image.sh

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
set -euo pipefail
66
IFS=$'\n\t'
77

8-
export otp_vsn="${OTP_RELEASE:-25.3}"
8+
export otp_vsn="${OTP_RELEASE:-27.1}"
99
echo "ERLANG/OTP ${otp_vsn}"
1010

1111
docker buildx build --platform linux/amd64,linux/arm64 \
12-
--build-arg otp_vsn \
13-
--push -t mongooseim/amoc-arsenal-xmpp:latest .
12+
--target prod --push --build-arg otp_vsn \
13+
-t mongooseim/amoc-arsenal-xmpp:latest .

ci/build_docker_image.sh

+2-1
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,13 @@ IFS=$'\n\t'
77

88
# Get current repo version
99
version="$(git rev-parse --short HEAD)"
10-
otp_vsn="${OTP_RELEASE:-25.3}"
10+
otp_vsn="${OTP_RELEASE:-27.1}"
1111
echo "ERLANG/OTP ${otp_vsn}"
1212
echo "AMOC-ARSENAL-XMPP ${version}"
1313

1414
docker build \
1515
-f Dockerfile \
16+
--target dev \
1617
-t "amoc-arsenal-xmpp:${version}" \
1718
-t "amoc-arsenal-xmpp:latest" \
1819
--build-arg otp_vsn="${otp_vsn}" \

ci/docker-compose.yml

+14-31
Original file line numberDiff line numberDiff line change
@@ -1,55 +1,38 @@
1-
###############################################################################
2-
## you may need to build 'amoc-arsenal-xmpp' docker image, before running: ##
3-
## ##
4-
## docker-compose up -d --scale amoc-worker=2 ##
5-
## ##
6-
## it can be done using this command: ##
7-
## ##
8-
## docker build . -t amoc-arsenal-xmpp ##
9-
## ##
10-
## alternatively, a custom amoc image can be provided by setting AMOC_IMAGE ##
11-
## environment variable: ##
12-
## ##
13-
## AMOC_IMAGE=mongooseim/amoc-arsenal-xmpp docker-compose up -d ##
14-
## ##
15-
###############################################################################
16-
version: "3.3"
171
services:
2+
183
amoc-master:
194
hostname: "amoc-master"
205
image: "${AMOC_IMAGE:-amoc-arsenal-xmpp}"
6+
pull_policy: never
7+
environment:
8+
AMOC_PROMETHEUS_IP: '{0, 0, 0, 0}'
219
ports:
2210
- "4000:4000"
23-
networks:
24-
- amoc-test-network
25-
environment:
26-
AMOC_GRAPHITE_HOST: '"${GRAPHITE_HOST:-host.docker.internal}"'
2711
healthcheck:
2812
test: "amoc_arsenal_xmpp status"
13+
2914
amoc-worker:
3015
image: "${AMOC_IMAGE:-amoc-arsenal-xmpp}"
31-
networks:
32-
- amoc-test-network
16+
pull_policy: never
3317
ulimits: ## ensure that we can use all the ephemeral ports
3418
nofile:
3519
soft: 66000
3620
hard: 66000
3721
environment:
38-
AMOC_GRAPHITE_HOST: '"${GRAPHITE_HOST:-host.docker.internal}"'
3922
AMOC_NODES: "['amoc_arsenal_xmpp@amoc-master']"
4023
AMOC_XMPP_SERVERS: '[[{host, <<"host.docker.internal">>}]]'
41-
entrypoint: [ "sh", "-c", 'AMOC_GRAPHITE_PREFIX="\"amoc-worker.$$HOSTNAME\"" /start_amoc.sh']
24+
AMOC_PROMETHEUS_IP: '{0, 0, 0, 0}'
4225
deploy:
4326
mode: replicated
4427
replicas: 6
4528
healthcheck:
4629
test: "amoc_arsenal_xmpp status"
47-
graphite:
48-
image: "graphiteapp/graphite-statsd:1.1.10-4"
30+
31+
prometheus:
32+
image: "prom/prometheus"
4933
ports:
50-
- "8080:80"
51-
- "2003:2003"
34+
- "9090:9090"
35+
volumes:
36+
- ./prometheus.yml:/etc/prometheus/prometheus.yml
5237
profiles:
53-
- with_graphite
54-
networks:
55-
amoc-test-network:
38+
- with_prometheus

ci/prometheus.yml

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
global:
2+
scrape_interval: 5s
3+
evaluation_interval: 5s
4+
scrape_configs:
5+
- job_name: prometheus
6+
# metrics_path defaults to '/metrics'
7+
# scheme defaults to 'http'.
8+
static_configs:
9+
- targets: ["localhost:9090"]
10+
- job_name: amoc-master
11+
static_configs:
12+
- targets: ["ci-amoc-master-1:9090"]
13+
- job_name: amoc-worker-1
14+
static_configs:
15+
- targets: ["ci-amoc-worker-1:9090"]
16+
- job_name: amoc-worker-2
17+
static_configs:
18+
- targets: ["ci-amoc-worker-2:9090"]

ci/start_amoc_cluster.sh

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@ set -euo pipefail
66
IFS=$'\n\t'
77

88
cd "$(git rev-parse --show-toplevel)/ci"
9-
docker compose --profile with_graphite up --wait --wait-timeout 100 --scale amoc-worker=2
10-
9+
docker compose --profile with_prometheus up --wait \
10+
--wait-timeout 100 --scale amoc-worker=2

ci/stop_amoc_cluster.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@ set -euo pipefail
66
IFS=$'\n\t'
77

88
cd "$(git rev-parse --show-toplevel)/ci"
9-
docker compose --profile with_graphite down
9+
docker compose --profile with_prometheus down

ci/test_amoc_cluster.sh

+22-21
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,23 @@ function assert_match()
2929
exit 1; }
3030
}
3131

32+
function contains()
33+
{
34+
local output="$(cat -)"
35+
local ret= acc=0
36+
for pattern in "$@"; do
37+
ret="$(echo "$output" | grep -q -e "$pattern"; echo "$?")"
38+
if [ "$ret" -ne "0" ]; then
39+
[ "$(($acc))" -eq "0" ] && {
40+
echo "contains FAILED"
41+
echo "output: '${output}'"; }
42+
echo "pattern is missing: '${pattern}'"
43+
fi >&2
44+
acc+="+${ret}"
45+
done
46+
test "$(($acc))" "-eq" "0"
47+
}
48+
3249
function get_nodes()
3350
{
3451
curl -s -X GET "http://localhost:4000/nodes" -H "accept: application/json" \
@@ -42,13 +59,6 @@ function number_of_nodes()
4259
| jq '.nodes | length'
4360
}
4461

45-
function get_graphite_prefix()
46-
{
47-
local node="$1"
48-
curl -s -X GET "http://localhost:4000/status/$node" -H "accept: application/json" \
49-
| jq '.env.AMOC_GRAPHITE_PREFIX | ltrimstr("\"") | rtrimstr("\"")' | sed 's/"//g'
50-
}
51-
5262
function retry()
5363
{
5464
local n="$1" m="0"
@@ -62,27 +72,18 @@ function retry()
6272
echo -e "\nsuccess after '$m' retries";
6373
}
6474

65-
function are_metrics_reported()
75+
function metrics_reported()
6676
{
67-
local graphite_prefix="$1"
68-
local length="$(curl -s "http://localhost:8080/metrics/find?query=${graphite_prefix}.*" | jq "length")"
69-
[ "$length" -gt "0" ]
77+
curl -s 'http://localhost:9090/api/v1/targets' | contains "$@"
7078
}
7179

72-
function wait_for_reported_metrics()
73-
{
74-
local graphite_prefix="$1"
75-
retry 60 are_metrics_reported "$graphite_prefix"
80+
function wait_for_metrics() {
81+
retry 60 metrics_reported "$@"
7682
}
7783

7884
assert_equal "number of nodes" 3 "$(number_of_nodes)"
7985

8086
for node in $(get_nodes); do
8187
assert_match "node name" "amoc_arsenal_xmpp@.*" "$node"
82-
if [ "$node" != "amoc_arsenal_xmpp@amoc-master" ]; then
83-
graphite_prefix="$(get_graphite_prefix $node)"
84-
wait_for_reported_metrics "$graphite_prefix"
85-
else
86-
wait_for_reported_metrics "amoc-master"
87-
fi
88+
wait_for_metrics "amoc-master"
8889
done

rebar.config

+7-2
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,21 @@
1+
{minimum_otp_vsn, "27"}.
2+
13
{ erl_opts, [
24
debug_info
35
]}.
46

57
{ deps, [
6-
{amoc_arsenal, {git, "https://github.com/esl/amoc-arsenal.git", {branch, "stable"}}},
8+
{amoc_arsenal, {git, "https://github.com/esl/amoc-arsenal.git", {branch, "main"}}},
79
{escalus, "4.2.16"},
8-
{jiffy, "1.1.2"},
910
{exml, "3.4.1", {pkg, hexml}},
1011
{gun, "2.1.0"},
1112
{fusco, "0.1.1"}
1213
]}.
1314

15+
{ shell, [
16+
{apps, [amoc_arsenal_xmpp]}
17+
]}.
18+
1419
{ xref_checks, [
1520
%% enable most checks, but avoid 'unused calls' which makes amoc-arsenal fail...
1621
undefined_function_calls, undefined_functions, locals_not_used,

rebar.lock

+24-41
Original file line numberDiff line numberDiff line change
@@ -1,105 +1,88 @@
11
{"1.2.0",
2-
[{<<"amoc">>,{pkg,<<"amoc">>,<<"3.3.0">>},1},
2+
[{<<"accept">>,{pkg,<<"accept">>,<<"0.3.5">>},3},
3+
{<<"amoc">>,{pkg,<<"amoc">>,<<"3.3.0">>},1},
34
{<<"amoc_arsenal">>,
45
{git,"https://github.com/esl/amoc-arsenal.git",
5-
{ref,"a0a4115f8595e20f4b454b67f66beca60580aafd"}},
6+
{ref,"5e2140ff8c11295a45ff8a555444baf7d0ebab27"}},
67
0},
78
{<<"amoc_rest">>,
89
{git,"https://github.com/esl/amoc_rest.git",
9-
{ref,"1e41be5b6b332a827d125380fa4f7ea23a00748e"}},
10+
{ref,"d9f642255f48d14a1ff9601500796f5edb4e11e6"}},
1011
1},
1112
{<<"base16">>,{pkg,<<"base16">>,<<"2.0.1">>},1},
1213
{<<"bbmustache">>,{pkg,<<"bbmustache">>,<<"1.12.2">>},1},
13-
{<<"bear">>,{pkg,<<"bear">>,<<"1.0.0">>},2},
1414
{<<"cowboy">>,{pkg,<<"cowboy">>,<<"2.12.0">>},2},
1515
{<<"cowlib">>,{pkg,<<"cowlib">>,<<"2.13.0">>},1},
16-
{<<"docsh">>,{pkg,<<"docsh">>,<<"0.7.2">>},1},
1716
{<<"escalus">>,{pkg,<<"escalus">>,<<"4.2.16">>},0},
1817
{<<"exml">>,{pkg,<<"hexml">>,<<"3.4.1">>},0},
19-
{<<"exometer_core">>,
20-
{git,"https://github.com/esl/exometer_core.git",
21-
{ref,"123daa053a4abb3ff4bdbf52f08344da535294e9"}},
22-
1},
23-
{<<"exometer_report_graphite">>,
24-
{git,"https://github.com/esl/exometer_report_graphite.git",
25-
{ref,"59e475a094818294443de9dc68e08ee0116a5626"}},
26-
1},
2718
{<<"fast_pbkdf2">>,{pkg,<<"fast_pbkdf2">>,<<"1.0.5">>},2},
2819
{<<"fast_scram">>,{pkg,<<"fast_scram">>,<<"0.6.0">>},1},
2920
{<<"fast_tls">>,{pkg,<<"fast_tls">>,<<"1.1.21">>},1},
3021
{<<"fusco">>,{pkg,<<"fusco">>,<<"0.1.1">>},0},
31-
{<<"getopt">>,{pkg,<<"getopt">>,<<"1.0.1">>},3},
3222
{<<"gun">>,{pkg,<<"gun">>,<<"2.1.0">>},0},
33-
{<<"jesse">>,{pkg,<<"jesse">>,<<"1.8.0">>},2},
34-
{<<"jiffy">>,{pkg,<<"jiffy">>,<<"1.1.2">>},0},
35-
{<<"jsx">>,{pkg,<<"jsx">>,<<"3.1.0">>},2},
23+
{<<"jesse">>,{pkg,<<"jesse">>,<<"1.8.1">>},2},
3624
{<<"meck">>,{pkg,<<"meck">>,<<"0.9.2">>},1},
3725
{<<"p1_utils">>,{pkg,<<"p1_utils">>,<<"1.0.26">>},2},
38-
{<<"parse_trans">>,{pkg,<<"parse_trans">>,<<"3.4.0">>},2},
39-
{<<"providers">>,{pkg,<<"providers">>,<<"1.8.1">>},2},
26+
{<<"prometheus">>,{pkg,<<"prometheus">>,<<"4.11.0">>},1},
27+
{<<"prometheus_cowboy">>,{pkg,<<"prometheus_cowboy">>,<<"0.1.8">>},1},
28+
{<<"prometheus_httpd">>,{pkg,<<"prometheus_httpd">>,<<"2.1.11">>},2},
29+
{<<"quantile_estimator">>,{pkg,<<"quantile_estimator">>,<<"0.2.1">>},2},
4030
{<<"quickrand">>,{pkg,<<"quickrand">>,<<"2.0.7">>},2},
4131
{<<"ranch">>,{pkg,<<"ranch">>,<<"2.1.0">>},2},
42-
{<<"rfc3339">>,{pkg,<<"rfc3339">>,<<"0.9.0">>},3},
43-
{<<"telemetry">>,{pkg,<<"telemetry">>,<<"1.2.1">>},1},
32+
{<<"telemetry">>,{pkg,<<"telemetry">>,<<"1.3.0">>},1},
4433
{<<"uuid">>,{pkg,<<"uuid_erl">>,<<"2.0.7">>},1},
4534
{<<"worker_pool">>,{pkg,<<"worker_pool">>,<<"6.2.1">>},1}]}.
4635
[
4736
{pkg_hash,[
37+
{<<"accept">>, <<"B33B127ABCA7CC948BBE6CAA4C263369ABF1347CFA9D8E699C6D214660F10CD1">>},
4838
{<<"amoc">>, <<"531B7E8CE39D40B4BF5A819868091C4451DC3D3FDAE753E3E3B1D0E5E8E81CDD">>},
4939
{<<"base16">>, <<"F0549F732E03BE8124ED0D19FD5EE52146CC8BE24C48CBC3F23AB44B157F11A2">>},
5040
{<<"bbmustache">>, <<"0CABDCE0DB9FE6D3318131174B9F2B351328A4C0AFBEB3E6E99BB0E02E9B621D">>},
51-
{<<"bear">>, <<"430419C1126B477686CDE843E88BA0F2C7DC5CDF0881C677500074F704339A99">>},
5241
{<<"cowboy">>, <<"F276D521A1FF88B2B9B4C54D0E753DA6C66DD7BE6C9FCA3D9418B561828A3731">>},
5342
{<<"cowlib">>, <<"DB8F7505D8332D98EF50A3EF34B34C1AFDDEC7506E4EE4DD4A3A266285D282CA">>},
54-
{<<"docsh">>, <<"F893D5317A0E14269DD7FE79CF95FB6B9BA23513DA0480EC6E77C73221CAE4F2">>},
5543
{<<"escalus">>, <<"EC83C277DECD721C3B219823C159D66CF94981A0796473617E4C0835E7395FE5">>},
5644
{<<"exml">>, <<"9581FE6512D9772C61BBE611CD4A8E5BB90B4D4481275325EC520F7A931A9393">>},
5745
{<<"fast_pbkdf2">>, <<"6045138C4C209FC8222A0B18B2CB1D7BD7407EF4ADAD0F14C5E0F7F4726E3E41">>},
5846
{<<"fast_scram">>, <<"70724F584A118DA147A51EE38DEE56203F217D58AD61E0BB2C2EF834C16B35B8">>},
5947
{<<"fast_tls">>, <<"65D7D547A09EEFB37A1C0D04D8601FAC4F3E6E2C1EDE859A7787081670F9648D">>},
6048
{<<"fusco">>, <<"3DD6A90151DFEF30EA1937CC44E9A59177C0094918388D9BCAA2F2DC5E2AE4AA">>},
61-
{<<"getopt">>, <<"C73A9FA687B217F2FF79F68A3B637711BB1936E712B521D8CE466B29CBF7808A">>},
6249
{<<"gun">>, <<"B4E4CBBF3026D21981C447E9E7CA856766046EFF693720BA43114D7F5DE36E87">>},
63-
{<<"jesse">>, <<"CF7615C3F2BE892F77BCCF736F23B4BD54A0FC686C7040431AEBA5EF7932CC4D">>},
64-
{<<"jiffy">>, <<"A9B6C9A7EC268E7CF493D028F0A4C9144F59CCB878B1AFE42841597800840A1B">>},
65-
{<<"jsx">>, <<"D12516BAA0BB23A59BB35DCCAF02A1BD08243FCBB9EFE24F2D9D056CCFF71268">>},
50+
{<<"jesse">>, <<"C9E3670C7EE40F719734E3BC716578143AABA93FC7525A02A7D5CB300B3AD71E">>},
6651
{<<"meck">>, <<"85CCBAB053F1DB86C7CA240E9FC718170EE5BDA03810A6292B5306BF31BAE5F5">>},
6752
{<<"p1_utils">>, <<"67B0C4AC9FA3BA3EF563B31AA111B0A004439A37FAC85E027F1C3617E1C7EC6C">>},
68-
{<<"parse_trans">>, <<"BB87AC362A03CA674EBB7D9D498F45C03256ADED7214C9101F7035EF44B798C7">>},
69-
{<<"providers">>, <<"70B4197869514344A8A60E2B2A4EF41CA03DEF43CFB1712ECF076A0F3C62F083">>},
53+
{<<"prometheus">>, <<"B95F8DE8530F541BD95951E18E355A840003672E5EDA4788C5FA6183406BA29A">>},
54+
{<<"prometheus_cowboy">>, <<"CFCE0BC7B668C5096639084FCD873826E6220EA714BF60A716F5BD080EF2A99C">>},
55+
{<<"prometheus_httpd">>, <<"F616ED9B85B536B195D94104063025A91F904A4CFC20255363F49A197D96C896">>},
56+
{<<"quantile_estimator">>, <<"EF50A361F11B5F26B5F16D0696E46A9E4661756492C981F7B2229EF42FF1CD15">>},
7057
{<<"quickrand">>, <<"D2BD76676A446E6A058D678444B7FDA1387B813710D1AF6D6E29BB92186C8820">>},
7158
{<<"ranch">>, <<"2261F9ED9574DCFCC444106B9F6DA155E6E540B2F82BA3D42B339B93673B72A3">>},
72-
{<<"rfc3339">>, <<"2075653DC9407541C84B1E15F8BDA2ABE95FB17C9694025E079583F2D19C1060">>},
73-
{<<"telemetry">>, <<"68FDFE8D8F05A8428483A97D7AAB2F268AAFF24B49E0F599FAA091F1D4E7F61C">>},
59+
{<<"telemetry">>, <<"FEDEBBAE410D715CF8E7062C96A1EF32EC22E764197F70CDA73D82778D61E7A2">>},
7460
{<<"uuid">>, <<"B2078D2CC814F53AFA52D36C91E08962C7E7373585C623F4C0EA6DFB04B2AF94">>},
7561
{<<"worker_pool">>, <<"BD98A0BE1D20057AE9967CBE73D263AEA5BE14BBE4C73CAFEB1378572FF14561">>}]},
7662
{pkg_hash_ext,[
63+
{<<"accept">>, <<"11B18C220BCC2EAB63B5470C038EF10EB6783BCB1FCDB11AA4137DEFA5AC1BB8">>},
7764
{<<"amoc">>, <<"B8DD4F77BB94716ABC64E863158EEF8E1375CECB2F69E57DC4A293B0949D4985">>},
7865
{<<"base16">>, <<"06EA2D48343282E712160BA89F692B471DB8B36ABE8394F3445FF9032251D772">>},
7966
{<<"bbmustache">>, <<"688B33A4D5CC2D51F575ADF0B3683FC40A38314A2F150906EDCFC77F5B577B3B">>},
80-
{<<"bear">>, <<"157B67901ADF84FF0DA6EAE035CA1292A0AC18AA55148154D8C582B2C68959DB">>},
8167
{<<"cowboy">>, <<"8A7ABE6D183372CEB21CAA2709BEC928AB2B72E18A3911AA1771639BEF82651E">>},
8268
{<<"cowlib">>, <<"E1E1284DC3FC030A64B1AD0D8382AE7E99DA46C3246B815318A4B848873800A4">>},
83-
{<<"docsh">>, <<"4E7DB461BB07540D2BC3D366B8513F0197712D0495BB85744F367D3815076134">>},
8469
{<<"escalus">>, <<"3CA9D58F39A3FBD618A1E7B5D57AE97B76016330BB2374C430AA9278669243CC">>},
8570
{<<"exml">>, <<"D8E7894E2544402B4986EEB2443C15B51B14F686266F091DBF2777D1D99A2FA2">>},
8671
{<<"fast_pbkdf2">>, <<"BC3B5A3CAB47AD114FF8BB815FEDE62A6187ACD14D8B37412F2AF8236A089CEF">>},
8772
{<<"fast_scram">>, <<"771D034341599CFC6A6C5E56CF924B68D2C7478088CAF17419E3147B66914667">>},
8873
{<<"fast_tls">>, <<"131542913937025E48CD80AA81F00359686D5501B75621E72026A87B5229505B">>},
8974
{<<"fusco">>, <<"6343551BD1E824F2A6CA85E1158C5B37C320FD449FBFEC7450A73F192AAF9022">>},
90-
{<<"getopt">>, <<"53E1AB83B9CEB65C9672D3E7A35B8092E9BDC9B3EE80721471A161C10C59959C">>},
9175
{<<"gun">>, <<"52FC7FC246BFC3B00E01AEA1C2854C70A366348574AB50C57DFE796D24A0101D">>},
92-
{<<"jesse">>, <<"860EF4621DDBFB72792668929BE127E45E8B07CF19EEA264B0A9D48D36CCA41B">>},
93-
{<<"jiffy">>, <<"BB61BC42A720BBD33CB09A410E48BB79A61012C74CB8B3E75F26D988485CF381">>},
94-
{<<"jsx">>, <<"0C5CC8FDC11B53CC25CF65AC6705AD39E54ECC56D1C22E4ADB8F5A53FB9427F3">>},
76+
{<<"jesse">>, <<"0EDED3F18623FDA2F25989804A06CF518B4ACF2E9365B18C8E8C013D7E3C906F">>},
9577
{<<"meck">>, <<"81344F561357DC40A8344AFA53767C32669153355B626EA9FCBC8DA6B3045826">>},
9678
{<<"p1_utils">>, <<"D0379E8C1156B98BD64F8129C1DE022FCCA4F2FDB7486CE73BF0ED2C3376B04C">>},
97-
{<<"parse_trans">>, <<"F99E368830BEA44552224E37E04943A54874F08B8590485DE8D13832B63A2DC3">>},
98-
{<<"providers">>, <<"E45745ADE9C476A9A469EA0840E418AB19360DC44F01A233304E118A44486BA0">>},
79+
{<<"prometheus">>, <<"719862351AABF4DF7079B05DC085D2BBCBE3AC0AC3009E956671B1D5AB88247D">>},
80+
{<<"prometheus_cowboy">>, <<"BA286BECA9302618418892D37BCD5DC669A6CC001F4EB6D6AF85FF81F3F4F34C">>},
81+
{<<"prometheus_httpd">>, <<"0BBE831452CFDF9588538EB2F570B26F30C348ADAE5E95A7D87F35A5910BCF92">>},
82+
{<<"quantile_estimator">>, <<"282A8A323CA2A845C9E6F787D166348F776C1D4A41EDE63046D72D422E3DA946">>},
9983
{<<"quickrand">>, <<"B8ACBF89A224BC217C3070CA8BEBC6EB236DBE7F9767993B274084EA044D35F0">>},
10084
{<<"ranch">>, <<"244EE3FA2A6175270D8E1FC59024FD9DBC76294A321057DE8F803B1479E76916">>},
101-
{<<"rfc3339">>, <<"182314DE35C9F4180B22EB5F22916D8D7A799C1109A060C752970273A9332AD6">>},
102-
{<<"telemetry">>, <<"DAD9CE9D8EFFC621708F99EAC538EF1CBE05D6A874DD741DE2E689C47FEAFED5">>},
85+
{<<"telemetry">>, <<"7015FC8919DBE63764F4B4B87A95B7C0996BD539E0D499BE6EC9D7F3875B79E6">>},
10386
{<<"uuid">>, <<"4E4C5CA3461DC47C5E157ED42AA3981A053B7A186792AF972A27B14A9489324E">>},
10487
{<<"worker_pool">>, <<"64E560DE08CA5E7DB8BD4CDCC7B744B0659696194E3BC9E56239BA4A0F7E24F9">>}]}
10588
].

0 commit comments

Comments
 (0)