Skip to content

Commit

Permalink
added testcases for uninstrumentation for starlette with metrics
Browse files Browse the repository at this point in the history
  • Loading branch information
rahulmukherjee68 committed Sep 13, 2022
1 parent e605f92 commit 38df3cc
Showing 1 changed file with 37 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,43 @@ def test_starlette_metrics(self):
attr, _recommended_attrs[metric.name]
)
self.assertTrue(number_data_point_seen and histogram_data_point_seen)

def test_basic_post_request_metric_success(self):
start = default_timer()
self._client.post("/foobar")
duration = max(round((default_timer() - start) * 1000), 0)
metrics_list = self.memory_metrics_reader.get_metrics_data()
for metric in (
metrics_list.resource_metrics[0].scope_metrics[0].metrics
):
for point in list(metric.data.data_points):
if isinstance(point, HistogramDataPoint):
self.assertEqual(point.count, 1)
self.assertAlmostEqual(duration, point.sum, delta=30)
if isinstance(point, NumberDataPoint):
self.assertEqual(point.value, 0)

def test_metric_uninstrument(self):
# instrumenting class and creating app to send request
self._instrumentor.instrument()
app = self._create_starlette_app()
client = TestClient(app)
client.get("/foobar")
# uninstrumenting class and creating the app again
self._instrumentor.uninstrument()
app = self._create_starlette_app()
client = TestClient(app)
client.get("/foobar")

metrics_list = self.memory_metrics_reader.get_metrics_data()
for metric in (
metrics_list.resource_metrics[0].scope_metrics[0].metrics
):
for point in list(metric.data.data_points):
if isinstance(point, HistogramDataPoint):
self.assertEqual(point.count, 1)
if isinstance(point, NumberDataPoint):
self.assertEqual(point.value, 0)

@staticmethod
def _create_starlette_app():
Expand Down

0 comments on commit 38df3cc

Please sign in to comment.