|
47 | 47 | "http.server.active_requests",
|
48 | 48 | "http.server.duration",
|
49 | 49 | "http.server.response.size",
|
| 50 | + "http.server.request.size", |
50 | 51 | ]
|
51 | 52 | _recommended_attrs = {
|
52 | 53 | "http.server.active_requests": _active_requests_count_attrs,
|
53 | 54 | "http.server.duration": _duration_attrs,
|
54 | 55 | "http.server.response.size": _duration_attrs,
|
| 56 | + "http.server.request.size": _duration_attrs, |
55 | 57 | }
|
56 | 58 |
|
57 | 59 |
|
58 | 60 | async def http_app(scope, receive, send):
|
59 | 61 | message = await receive()
|
| 62 | + scope["headers"] = [(b"content-length", b"128")] |
60 | 63 | assert scope["type"] == "http"
|
61 | 64 | if message.get("type") == "http.request":
|
62 | 65 | await send(
|
@@ -99,6 +102,7 @@ async def error_asgi(scope, receive, send):
|
99 | 102 | assert isinstance(scope, dict)
|
100 | 103 | assert scope["type"] == "http"
|
101 | 104 | message = await receive()
|
| 105 | + scope["headers"] = [(b"content-length", b"128")] |
102 | 106 | if message.get("type") == "http.request":
|
103 | 107 | try:
|
104 | 108 | raise ValueError
|
@@ -592,6 +596,8 @@ def test_basic_metric_success(self):
|
592 | 596 | )
|
593 | 597 | elif metric.name == "http.server.response.size":
|
594 | 598 | self.assertEqual(1024, point.sum)
|
| 599 | + elif metric.name == "http.server.request.size": |
| 600 | + self.assertEqual(128, point.sum) |
595 | 601 | elif isinstance(point, NumberDataPoint):
|
596 | 602 | self.assertDictEqual(
|
597 | 603 | expected_requests_count_attributes,
|
@@ -630,7 +636,7 @@ async def target_asgi(scope, receive, send):
|
630 | 636 | expected_target,
|
631 | 637 | )
|
632 | 638 | assertions += 1
|
633 |
| - self.assertEqual(assertions, 2) |
| 639 | + self.assertEqual(assertions, 3) |
634 | 640 |
|
635 | 641 | def test_no_metric_for_websockets(self):
|
636 | 642 | self.scope = {
|
|
0 commit comments