From 2ee38c5a89513fcffd71d4fd71fb9332bba04081 Mon Sep 17 00:00:00 2001 From: xss Date: Sun, 27 Feb 2022 12:57:24 +1100 Subject: [PATCH] add totals for stats --- lambda/query/__init__.py | 52 +++++++++++-------- lambda/query/__main__.py | 108 +++++++++++++++++++-------------------- 2 files changed, 85 insertions(+), 75 deletions(-) diff --git a/lambda/query/__init__.py b/lambda/query/__init__.py index b0f0b1a..d3d5294 100644 --- a/lambda/query/__init__.py +++ b/lambda/query/__init__.py @@ -396,40 +396,46 @@ def telm_stats(event, context): path = "telm-*/_search" payload = { "aggs": { - "software_name": { - "terms": { - "field": "software_name.keyword", - "order": { - "unique_callsigns": "desc" - }, - "size": 10 + "total_unique_callsigns": { + "cardinality": { + "field": "uploader_callsign.keyword" + } }, - "aggs": { - "unique_callsigns": { - "cardinality": { - "field": "uploader_callsign.keyword" - } - }, - "software_version": { + "software_name": { "terms": { - "field": "software_version.keyword", + "field": "software_name.keyword", "order": { - "unique_callsigns": "desc" + "unique_callsigns": "desc" }, "size": 10 }, "aggs": { "unique_callsigns": { - "cardinality": { - "field": "uploader_callsign.keyword" - } + "cardinality": { + "field": "uploader_callsign.keyword" + } + }, + "software_version": { + "terms": { + "field": "software_version.keyword", + "order": { + "unique_callsigns": "desc" + }, + "size": 10 + }, + "aggs": { + "unique_callsigns": { + "cardinality": { + "field": "uploader_callsign.keyword" + } + } + } } } - } - } } }, "size": 0, + "track_total_hits": True, "query": { "bool": { "must": [], @@ -463,6 +469,10 @@ def telm_stats(event, context): } for x in results['aggregations']['software_name']['buckets'] } + output['totals'] = { + "unique_callsigns": results['aggregations']['total_unique_callsigns']['value'], + "telemetry_count": results['hits']['total']['value'] + } compressed = BytesIO() with gzip.GzipFile(fileobj=compressed, mode='w') as f: diff --git a/lambda/query/__main__.py b/lambda/query/__main__.py index a01907b..ea54452 100644 --- a/lambda/query/__main__.py +++ b/lambda/query/__main__.py @@ -1,49 +1,49 @@ from . import * #print(get_listener_telemetry({"queryStringParameters":{}}, {})) -# print(telm_stats({ -# "version": "2.0", -# "routeKey": "GET /sondes", -# "rawPath": "/sondes", -# "rawQueryString": "lat=49.827648&lon=6.106842&distance=400000&last=-60", -# "headers": { -# "cache-control": "no-cache", -# "content-length": "0", -# "host": "api-raw.v2.sondehub.org", -# "user-agent": "Amazon CloudFront", -# "via": "1.1 ee4db0d243ceb0d1993e5f46ad6c0f01.cloudfront.net (CloudFront)", -# "x-amz-cf-id": "KF68O6r-OP5oTosFLdix7-RWM6xeW08ZF48fgvwLkj9f3s4fJuCFKg==", -# "x-amzn-trace-id": "Root=1-61d14df5-0f9dbfe563e89f170e65a3bf", -# "x-forwarded-for": "94.252.35.58, 64.252.86.150", -# "x-forwarded-port": "443", -# "x-forwarded-proto": "https" -# }, -# "queryStringParameters": { -# "distance": "400000", -# "last": "-60", -# "lat": "49.827648", -# "lon": "6.106842" -# }, -# "requestContext": { -# "accountId": "143841941773", -# "apiId": "r03szwwq41", -# "domainName": "api-raw.v2.sondehub.org", -# "domainPrefix": "api-raw", -# "http": { -# "method": "GET", -# "path": "/sondes", -# "protocol": "HTTP/1.1", -# "sourceIp": "94.252.35.58", -# "userAgent": "Amazon CloudFront" -# }, -# "requestId": "LTkeXjgXIAMEVzw=", -# "routeKey": "GET /sondes", -# "stage": "$default", -# "time": "02/Jan/2022:07:02:13 +0000", -# "timeEpoch": 1641106933368 -# }, -# "isBase64Encoded": False -# }, None)) +print(telm_stats({ + "version": "2.0", + "routeKey": "GET /sondes", + "rawPath": "/sondes", + "rawQueryString": "lat=49.827648&lon=6.106842&distance=400000&last=-60", + "headers": { + "cache-control": "no-cache", + "content-length": "0", + "host": "api-raw.v2.sondehub.org", + "user-agent": "Amazon CloudFront", + "via": "1.1 ee4db0d243ceb0d1993e5f46ad6c0f01.cloudfront.net (CloudFront)", + "x-amz-cf-id": "KF68O6r-OP5oTosFLdix7-RWM6xeW08ZF48fgvwLkj9f3s4fJuCFKg==", + "x-amzn-trace-id": "Root=1-61d14df5-0f9dbfe563e89f170e65a3bf", + "x-forwarded-for": "94.252.35.58, 64.252.86.150", + "x-forwarded-port": "443", + "x-forwarded-proto": "https" + }, + "queryStringParameters": { + "distance": "400000", + "last": "-60", + "lat": "49.827648", + "lon": "6.106842" + }, + "requestContext": { + "accountId": "143841941773", + "apiId": "r03szwwq41", + "domainName": "api-raw.v2.sondehub.org", + "domainPrefix": "api-raw", + "http": { + "method": "GET", + "path": "/sondes", + "protocol": "HTTP/1.1", + "sourceIp": "94.252.35.58", + "userAgent": "Amazon CloudFront" + }, + "requestId": "LTkeXjgXIAMEVzw=", + "routeKey": "GET /sondes", + "stage": "$default", + "time": "02/Jan/2022:07:02:13 +0000", + "timeEpoch": 1641106933368 + }, + "isBase64Encoded": False +}, None)) # mode: 6hours # type: positions # format: json @@ -96,14 +96,14 @@ from . import * # {}, # ) # ) -print( - get_telem( - { - "queryStringParameters":{ - # "serial": "S3210639", - "duration": "3h", - # "datetime": "2021-07-26T06:49:29.001000Z" - } - }, {} - ) -) +# print( +# get_telem( +# { +# "queryStringParameters":{ +# # "serial": "S3210639", +# "duration": "3h", +# # "datetime": "2021-07-26T06:49:29.001000Z" +# } +# }, {} +# ) +# )