• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

FriendsOfOpenTelemetry / opentelemetry-bundle / 7752972926

02 Feb 2024 07:53AM UTC coverage: 35.071% (-29.5%) from 64.527%
7752972926

Pull #38

github

gaelreyrol
wip
Pull Request #38: Refactor services injection

99 of 459 new or added lines in 44 files covered. (21.57%)

314 existing lines in 33 files now uncovered.

740 of 2110 relevant lines covered (35.07%)

2.37 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

78.57
/src/OpenTelemetry/Trace/TraceExporterEndpoint.php
1
<?php
2

3
namespace FriendsOfOpenTelemetry\OpenTelemetryBundle\OpenTelemetry\Trace;
4

5
use FriendsOfOpenTelemetry\OpenTelemetryBundle\OpenTelemetry\Exporter\ConsoleExporterEndpoint;
6
use FriendsOfOpenTelemetry\OpenTelemetryBundle\OpenTelemetry\Exporter\ExporterDsn;
7
use FriendsOfOpenTelemetry\OpenTelemetryBundle\OpenTelemetry\Exporter\ExporterEndpointInterface;
8
use FriendsOfOpenTelemetry\OpenTelemetryBundle\OpenTelemetry\Exporter\OtlpExporterEndpoint;
9
use FriendsOfOpenTelemetry\OpenTelemetryBundle\OpenTelemetry\Trace\SpanExporter\TraceExporterEnum;
10
use FriendsOfOpenTelemetry\OpenTelemetryBundle\OpenTelemetry\Transport\TransportEnum;
11
use OpenTelemetry\API\Signals;
12

13
final class TraceExporterEndpoint implements ExporterEndpointInterface
14
{
15
    private TraceExporterEnum $exporter;
16
    private ?TransportEnum $transport;
17

18
    private function __construct(private readonly ExporterDsn $dsn)
19
    {
20
        $this->exporter = TraceExporterEnum::fromDsn($this->dsn);
26✔
21
        $this->transport = TransportEnum::fromDsn($this->dsn);
24✔
22
    }
23

24
    public static function fromDsn(ExporterDsn $dsn): self
25
    {
26
        return new self($dsn);
26✔
27
    }
28

29
    public function __toString()
30
    {
31
        if (TraceExporterEnum::Console === $this->exporter) {
24✔
32
            return (string) ConsoleExporterEndpoint::fromDsn($this->dsn);
4✔
33
        }
34

35
        if (TraceExporterEnum::Zipkin === $this->exporter) {
20✔
36
            return (string) ZipkinExporterEndpoint::fromDsn($this->dsn);
2✔
37
        }
38

39
        if (TraceExporterEnum::Otlp === $this->exporter) {
18✔
40
            return (string) OtlpExporterEndpoint::fromDsn($this->dsn)->withSignal(Signals::TRACE);
16✔
41
        }
42

43
        if (in_array($this->exporter, [TraceExporterEnum::InMemory], true)) {
2✔
44
            return '';
2✔
45
        }
46

47
        throw new \RuntimeException('Unsupported DSN for Trace endpoint');
×
48
    }
49

50
    public function getExporter(): string
51
    {
UNCOV
52
        return $this->exporter->value;
×
53
    }
54

55
    public function getTransport(): ?string
56
    {
UNCOV
57
        return $this->transport?->value;
×
58
    }
59
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc