scripts: add data analyzer for old nightly usages

This commit is contained in:
oxalica
2024-08-01 16:53:30 -04:00
parent c02e7d3260
commit edbd2c4df1
2 changed files with 40 additions and 0 deletions

1
.gitignore vendored
View File

@@ -2,5 +2,6 @@ target
result result
result-* result-*
*.tmp *.tmp
__pycache__
examples/cross-aarch64/flake.lock examples/cross-aarch64/flake.lock

39
scripts/cargo_stat_analysis.py Executable file
View File

@@ -0,0 +1,39 @@
#!/usr/bin/env python
import json
import urllib3
from typing import Any
# Ref: https://rust-lang.zulipchat.com/#narrow/stream/318791-t-crates-io/topic/cargo.20version.20usage/near/401415815
URL = 'https://p.datadoghq.com/dashboard/shared_widget_update/3a172e20-e9e1-11ed-80e3-da7ad0900002-973f4c1011257befa8598303217bfe3a/355142551708710?preferred_time_frame=1mo'
THRESHOLD = (1, 68, 0) # -> 0.0014751846373960305
def main():
req = urllib3.request('GET', URL)
raw_json = json.loads(req.data)
raw: Any = raw_json['responses']['355142551708710'][0]['data'][0]['attributes']
data: list[tuple[str, int]] = list(
filter(
lambda el: el[1] != 0,
zip(
(g['group_tags'][0].removeprefix('cargo.version:') for g in raw['series']),
(sum(x for x in xs if x is not None) for xs in raw['values'])
),
),
)
data.sort(key = lambda el: el[1], reverse = True)
total = sum(cnt for _, cnt in data)
old_nightly = 0
for ver, cnt in data:
if ver.endswith('-nightly') or ver.endswith('-beta'):
ver_num = ver.split('-')[0]
vers_tup = tuple(map(int, ver_num.split('.')))
if vers_tup <= THRESHOLD:
old_nightly += cnt
print(ver, cnt / total)
print(f'total: {total}')
print(f'nightly <= {THRESHOLD}: {old_nightly / total}')
if __name__ == '__main__':
main()