Commit 8e282b6 1 parent e296da0 commit 8e282b6 Copy full SHA for 8e282b6
File tree 1 file changed +7
-3
lines changed
1 file changed +7
-3
lines changed Original file line number Diff line number Diff line change 4
4
5
5
import aiohttp
6
6
from aiohttp .web import Request
7
- from metricq import JsonDict , get_logger
7
+ from metricq import Metric , get_logger
8
8
9
9
from .web_socket import MetricqWebSocketResponse
10
10
@@ -17,15 +17,19 @@ async def websocket_handler(request: Request) -> MetricqWebSocketResponse:
17
17
ws = MetricqWebSocketResponse (sink )
18
18
await ws .prepare (request )
19
19
logger .info ("Websocket opened" )
20
- metrics : set [JsonDict ] = set ()
20
+ metrics : set [Metric ] = set ()
21
21
try :
22
22
async for msg in ws :
23
23
if msg .type == aiohttp .WSMsgType .TEXT :
24
24
logger .debug ("Parsing message: {}" , msg .data )
25
25
try :
26
26
msg_data = json .loads (msg .data )
27
27
if msg_data ["function" ] == "subscribe" :
28
- new_metrics = set (msg_data ["metrics" ])
28
+ if not isinstance (list , msg_data ["metrics" ]) or any (
29
+ not isinstance (m , str ) for m in msg_data ["metrics" ]
30
+ ):
31
+ raise TypeError ("metrics must be a list of strings" )
32
+ new_metrics : set [str ] = set (msg_data ["metrics" ])
29
33
metadata = await sink .subscribe_ws (ws , new_metrics - metrics )
30
34
await ws .send_metadata (metadata )
31
35
metrics |= new_metrics
You can’t perform that action at this time.
0 commit comments