summaryrefslogtreecommitdiff
path: root/vendor/jonahgeorge/jaeger-client-php/src/Jaeger/Reporter
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/jonahgeorge/jaeger-client-php/src/Jaeger/Reporter')
-rw-r--r--vendor/jonahgeorge/jaeger-client-php/src/Jaeger/Reporter/CompositeReporter.php51
-rw-r--r--vendor/jonahgeorge/jaeger-client-php/src/Jaeger/Reporter/InMemoryReporter.php47
-rw-r--r--vendor/jonahgeorge/jaeger-client-php/src/Jaeger/Reporter/JaegerReporter.php35
-rw-r--r--vendor/jonahgeorge/jaeger-client-php/src/Jaeger/Reporter/LoggingReporter.php51
-rw-r--r--vendor/jonahgeorge/jaeger-client-php/src/Jaeger/Reporter/NullReporter.php32
-rw-r--r--vendor/jonahgeorge/jaeger-client-php/src/Jaeger/Reporter/RemoteReporter.php46
-rw-r--r--vendor/jonahgeorge/jaeger-client-php/src/Jaeger/Reporter/ReporterInterface.php28
7 files changed, 290 insertions, 0 deletions
diff --git a/vendor/jonahgeorge/jaeger-client-php/src/Jaeger/Reporter/CompositeReporter.php b/vendor/jonahgeorge/jaeger-client-php/src/Jaeger/Reporter/CompositeReporter.php
new file mode 100644
index 000000000..78533cc76
--- /dev/null
+++ b/vendor/jonahgeorge/jaeger-client-php/src/Jaeger/Reporter/CompositeReporter.php
@@ -0,0 +1,51 @@
+<?php
+
+namespace Jaeger\Reporter;
+
+use Jaeger\Span;
+
+/**
+ * CompositeReporter delegates reporting to one or more underlying reporters.
+ */
+class CompositeReporter implements ReporterInterface
+{
+ /**
+ * @var ReporterInterface[]
+ */
+ private $reporters;
+
+ /**
+ * CompositeReporter constructor.
+ *
+ * @param ReporterInterface ...$reporters
+ */
+ public function __construct(ReporterInterface ...$reporters)
+ {
+ $this->reporters = $reporters;
+ }
+
+ /**
+ * {@inheritdoc}
+ *
+ * @param Span $span
+ * @return void
+ */
+ public function reportSpan(Span $span)
+ {
+ foreach ($this->reporters as $reporter) {
+ $reporter->reportSpan($span);
+ }
+ }
+
+ /**
+ * {@inheritdoc}
+ *
+ * @return void
+ */
+ public function close()
+ {
+ foreach ($this->reporters as $reporter) {
+ $reporter->close();
+ }
+ }
+}
diff --git a/vendor/jonahgeorge/jaeger-client-php/src/Jaeger/Reporter/InMemoryReporter.php b/vendor/jonahgeorge/jaeger-client-php/src/Jaeger/Reporter/InMemoryReporter.php
new file mode 100644
index 000000000..8aabe2ee8
--- /dev/null
+++ b/vendor/jonahgeorge/jaeger-client-php/src/Jaeger/Reporter/InMemoryReporter.php
@@ -0,0 +1,47 @@
+<?php
+
+namespace Jaeger\Reporter;
+
+use Jaeger\Span;
+
+/**
+ * InMemoryReporter stores spans in memory and returns them via getSpans().
+ */
+class InMemoryReporter implements ReporterInterface
+{
+ /**
+ * @var Span[]
+ */
+ private $spans = [];
+
+ /**
+ * {@inheritdoc}
+ *
+ * @param Span $span
+ * @return void
+ */
+ public function reportSpan(Span $span)
+ {
+ $this->spans[] = $span;
+ }
+
+ /**
+ * @return Span[]
+ */
+ public function getSpans(): array
+ {
+ return $this->spans;
+ }
+
+ /**
+ * {@inheritdoc}
+ *
+ * Only implemented to satisfy the sampler interface.
+ *
+ * @return void
+ */
+ public function close()
+ {
+ // nothing to do
+ }
+}
diff --git a/vendor/jonahgeorge/jaeger-client-php/src/Jaeger/Reporter/JaegerReporter.php b/vendor/jonahgeorge/jaeger-client-php/src/Jaeger/Reporter/JaegerReporter.php
new file mode 100644
index 000000000..999d69e0a
--- /dev/null
+++ b/vendor/jonahgeorge/jaeger-client-php/src/Jaeger/Reporter/JaegerReporter.php
@@ -0,0 +1,35 @@
+<?php
+
+namespace Jaeger\Reporter;
+
+use Jaeger\Sender\SenderInterface;
+use Jaeger\Span;
+
+class JaegerReporter implements ReporterInterface
+{
+ /**
+ * @var SenderInterface
+ */
+ private $sender;
+
+ /**
+ * RemoteReporter constructor.
+ *
+ * @param SenderInterface $sender
+ */
+ public function __construct(SenderInterface $sender)
+ {
+ $this->sender = $sender;
+ }
+
+ public function reportSpan(Span $span)
+ {
+ $this->sender->append($span);
+ }
+
+ public function close()
+ {
+ $this->sender->flush();
+ $this->sender->close();
+ }
+}
diff --git a/vendor/jonahgeorge/jaeger-client-php/src/Jaeger/Reporter/LoggingReporter.php b/vendor/jonahgeorge/jaeger-client-php/src/Jaeger/Reporter/LoggingReporter.php
new file mode 100644
index 000000000..264ea94c5
--- /dev/null
+++ b/vendor/jonahgeorge/jaeger-client-php/src/Jaeger/Reporter/LoggingReporter.php
@@ -0,0 +1,51 @@
+<?php
+
+namespace Jaeger\Reporter;
+
+use Jaeger\Span;
+use Psr\Log\LoggerInterface;
+use Psr\Log\NullLogger;
+
+/**
+ * LoggingReporter logs all spans.
+ */
+class LoggingReporter implements ReporterInterface
+{
+ /**
+ * @var LoggerInterface
+ */
+ private $logger;
+
+ /**
+ * LoggingReporter constructor.
+ *
+ * @param LoggerInterface|null $logger
+ */
+ public function __construct(LoggerInterface $logger = null)
+ {
+ $this->logger = $logger ?? new NullLogger();
+ }
+
+ /**
+ * {@inheritdoc}
+ *
+ * @param Span $span
+ * @return void
+ */
+ public function reportSpan(Span $span)
+ {
+ $this->logger->debug('Reporting span ' . $span->getOperationName());
+ }
+
+ /**
+ * {@inheritdoc}
+ *
+ * Only implemented to satisfy the sampler interface.
+ *
+ * @return void
+ */
+ public function close()
+ {
+ // nothing to do
+ }
+}
diff --git a/vendor/jonahgeorge/jaeger-client-php/src/Jaeger/Reporter/NullReporter.php b/vendor/jonahgeorge/jaeger-client-php/src/Jaeger/Reporter/NullReporter.php
new file mode 100644
index 000000000..84a953bef
--- /dev/null
+++ b/vendor/jonahgeorge/jaeger-client-php/src/Jaeger/Reporter/NullReporter.php
@@ -0,0 +1,32 @@
+<?php
+
+namespace Jaeger\Reporter;
+
+use Jaeger\Span;
+
+/**
+ * NullReporter ignores all spans.
+ */
+class NullReporter implements ReporterInterface
+{
+ /**
+ * {@inheritdoc}
+ *
+ * @param Span $span
+ * @return void
+ */
+ public function reportSpan(Span $span)
+ {
+ // nothing to do
+ }
+
+ /**
+ * {@inheritdoc}
+ *
+ * @return void
+ */
+ public function close()
+ {
+ // nothing to do
+ }
+}
diff --git a/vendor/jonahgeorge/jaeger-client-php/src/Jaeger/Reporter/RemoteReporter.php b/vendor/jonahgeorge/jaeger-client-php/src/Jaeger/Reporter/RemoteReporter.php
new file mode 100644
index 000000000..9b78aa3d1
--- /dev/null
+++ b/vendor/jonahgeorge/jaeger-client-php/src/Jaeger/Reporter/RemoteReporter.php
@@ -0,0 +1,46 @@
+<?php
+
+namespace Jaeger\Reporter;
+
+use Jaeger\Sender\UdpSender;
+use Jaeger\Span;
+
+class RemoteReporter implements ReporterInterface
+{
+ /**
+ * @var UdpSender
+ */
+ private $transport;
+
+ /**
+ * RemoteReporter constructor.
+ *
+ * @param UdpSender $transport
+ */
+ public function __construct(UdpSender $transport)
+ {
+ $this->transport = $transport;
+ }
+
+ /**
+ * {@inheritdoc}
+ *
+ * @param Span $span
+ * @return void
+ */
+ public function reportSpan(Span $span)
+ {
+ $this->transport->append($span);
+ }
+
+ /**
+ * {@inheritdoc}
+ *
+ * @return void
+ */
+ public function close()
+ {
+ $this->transport->flush();
+ $this->transport->close();
+ }
+}
diff --git a/vendor/jonahgeorge/jaeger-client-php/src/Jaeger/Reporter/ReporterInterface.php b/vendor/jonahgeorge/jaeger-client-php/src/Jaeger/Reporter/ReporterInterface.php
new file mode 100644
index 000000000..fea8a8713
--- /dev/null
+++ b/vendor/jonahgeorge/jaeger-client-php/src/Jaeger/Reporter/ReporterInterface.php
@@ -0,0 +1,28 @@
+<?php
+
+namespace Jaeger\Reporter;
+
+use Jaeger\Span;
+
+/**
+ * Uses to report finished span to something that collects those spans.
+ *
+ * @package Jaeger\Reporter
+ */
+interface ReporterInterface
+{
+ /**
+ * Report finished span.
+ *
+ * @param Span $span
+ * @return void
+ */
+ public function reportSpan(Span $span);
+
+ /**
+ * Release any resources used by the reporter and flushes/sends the data.
+ *
+ * @return void
+ */
+ public function close();
+}