diff options
Diffstat (limited to 'vendor/jonahgeorge/jaeger-client-php/src/Jaeger/Reporter')
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(); +} |