diff options
author | Andrew Dolgov <[email protected]> | 2023-10-20 17:12:29 +0300 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2023-10-20 21:13:39 +0300 |
commit | cdd7ad020e165fe680703b6d3319b908b682fb7a (patch) | |
tree | b51eb09b7b4587e8fbc5624ac8d88d28cfcd0b04 /vendor/open-telemetry/exporter-otlp/OtlpUtil.php | |
parent | 45a9ff0c88cbd33892ff16ab837e9059937d656e (diff) |
jaeger-client -> opentelemetry
Diffstat (limited to 'vendor/open-telemetry/exporter-otlp/OtlpUtil.php')
-rw-r--r-- | vendor/open-telemetry/exporter-otlp/OtlpUtil.php | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/vendor/open-telemetry/exporter-otlp/OtlpUtil.php b/vendor/open-telemetry/exporter-otlp/OtlpUtil.php new file mode 100644 index 000000000..6901c1324 --- /dev/null +++ b/vendor/open-telemetry/exporter-otlp/OtlpUtil.php @@ -0,0 +1,45 @@ +<?php + +declare(strict_types=1); + +namespace OpenTelemetry\Contrib\Otlp; + +use OpenTelemetry\API\Signals; +use OpenTelemetry\SDK\Resource\Detectors\Sdk; +use OpenTelemetry\SemConv\ResourceAttributes; +use UnexpectedValueException; + +class OtlpUtil +{ + /** + * gRPC per-signal methods + * @see protobuf *ServiceClient + */ + private const METHODS = [ + Signals::TRACE => '/opentelemetry.proto.collector.trace.v1.TraceService/Export', + Signals::METRICS => '/opentelemetry.proto.collector.metrics.v1.MetricsService/Export', + Signals::LOGS => '/opentelemetry.proto.collector.logs.v1.LogsService/Export', + ]; + + public static function method(string $signal): string + { + if (!array_key_exists($signal, self::METHODS)) { + throw new UnexpectedValueException('gRPC method not defined for signal: ' . $signal); + } + + return self::METHODS[$signal]; + } + + /** + * @link https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/exporter.md#user-agent + */ + public static function getUserAgentHeader(): array + { + $resource = (new Sdk())->getResource(); + + return ['User-Agent' => sprintf( + 'OTel OTLP Exporter PHP/%s', + $resource->getAttributes()->get(ResourceAttributes::TELEMETRY_SDK_VERSION) ?: 'unknown' + )]; + } +} |