示例#1
0
 def create_worker(self,
                   filters=None,
                   api_class=DummyAPI,
                   enable_stats=False):
     with self.override_global_config(
             dict(health_metrics_enabled=enable_stats)):
         self.dogstatsd = mock.Mock()
         worker = AgentWriter(dogstatsd=self.dogstatsd, filters=filters)
         worker._STATS_EVERY_INTERVAL = 1
         self.api = api_class()
         worker.api = self.api
         for i in range(self.N_TRACES):
             worker.write([
                 Span(tracer=None,
                      name="name",
                      trace_id=i,
                      span_id=j,
                      parent_id=j - 1 or None) for j in range(7)
             ])
         worker.stop()
         worker.join()
         return worker
示例#2
0
    def test_metrics_multi(self):
        statsd = mock.Mock()
        writer = AgentWriter(agent_url="http://asdf:1234", dogstatsd=statsd, report_metrics=True)
        for i in range(10):
            writer.write(
                [Span(tracer=None, name="name", trace_id=i, span_id=j, parent_id=j - 1 or None) for j in range(5)]
            )
        writer.flush_queue()
        statsd.distribution.assert_has_calls(
            [
                mock.call("datadog.tracer.buffer.accepted.traces", 10, tags=[]),
                mock.call("datadog.tracer.buffer.accepted.spans", 50, tags=[]),
                mock.call("datadog.tracer.http.requests", writer.RETRY_ATTEMPTS, tags=[]),
                mock.call("datadog.tracer.http.errors", 1, tags=["type:err"]),
                mock.call("datadog.tracer.http.dropped.bytes", AnyInt(), tags=[]),
            ],
            any_order=True,
        )

        statsd.reset_mock()

        for i in range(10):
            writer.write(
                [Span(tracer=None, name="name", trace_id=i, span_id=j, parent_id=j - 1 or None) for j in range(5)]
            )
        writer.stop()
        writer.join()

        statsd.distribution.assert_has_calls(
            [
                mock.call("datadog.tracer.buffer.accepted.traces", 10, tags=[]),
                mock.call("datadog.tracer.buffer.accepted.spans", 50, tags=[]),
                mock.call("datadog.tracer.http.requests", writer.RETRY_ATTEMPTS, tags=[]),
                mock.call("datadog.tracer.http.errors", 1, tags=["type:err"]),
                mock.call("datadog.tracer.http.dropped.bytes", AnyInt(), tags=[]),
            ],
            any_order=True,
        )