summaryrefslogtreecommitdiff
path: root/vendor/jonahgeorge/jaeger-client-php/src/Jaeger/Codec/TextCodec.php
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2023-10-20 17:12:29 +0300
committerAndrew Dolgov <[email protected]>2023-10-20 21:13:39 +0300
commitcdd7ad020e165fe680703b6d3319b908b682fb7a (patch)
treeb51eb09b7b4587e8fbc5624ac8d88d28cfcd0b04 /vendor/jonahgeorge/jaeger-client-php/src/Jaeger/Codec/TextCodec.php
parent45a9ff0c88cbd33892ff16ab837e9059937d656e (diff)
jaeger-client -> opentelemetry
Diffstat (limited to 'vendor/jonahgeorge/jaeger-client-php/src/Jaeger/Codec/TextCodec.php')
-rw-r--r--vendor/jonahgeorge/jaeger-client-php/src/Jaeger/Codec/TextCodec.php184
1 files changed, 0 insertions, 184 deletions
diff --git a/vendor/jonahgeorge/jaeger-client-php/src/Jaeger/Codec/TextCodec.php b/vendor/jonahgeorge/jaeger-client-php/src/Jaeger/Codec/TextCodec.php
deleted file mode 100644
index d437f3812..000000000
--- a/vendor/jonahgeorge/jaeger-client-php/src/Jaeger/Codec/TextCodec.php
+++ /dev/null
@@ -1,184 +0,0 @@
-<?php
-
-namespace Jaeger\Codec;
-
-use Exception;
-use Jaeger\SpanContext;
-
-use const Jaeger\TRACE_ID_HEADER;
-use const Jaeger\BAGGAGE_HEADER_PREFIX;
-use const Jaeger\DEBUG_ID_HEADER_KEY;
-
-class TextCodec implements CodecInterface
-{
- private $urlEncoding;
- private $traceIdHeader;
- private $baggagePrefix;
- private $debugIdHeader;
- private $prefixLength;
-
- /**
- * @param bool $urlEncoding
- * @param string $traceIdHeader
- * @param string $baggageHeaderPrefix
- * @param string $debugIdHeader
- */
- public function __construct(
- bool $urlEncoding = false,
- string $traceIdHeader = TRACE_ID_HEADER,
- string $baggageHeaderPrefix = BAGGAGE_HEADER_PREFIX,
- string $debugIdHeader = DEBUG_ID_HEADER_KEY
- ) {
- $this->urlEncoding = $urlEncoding;
- $this->traceIdHeader = str_replace('_', '-', strtolower($traceIdHeader));
- $this->baggagePrefix = str_replace('_', '-', strtolower($baggageHeaderPrefix));
- $this->debugIdHeader = str_replace('_', '-', strtolower($debugIdHeader));
- $this->prefixLength = strlen($baggageHeaderPrefix);
- }
-
- /**
- * {@inheritdoc}
- *
- * @see \Jaeger\Tracer::inject
- *
- * @param SpanContext $spanContext
- * @param mixed $carrier
- *
- * @return void
- */
- public function inject(SpanContext $spanContext, &$carrier)
- {
- $carrier[$this->traceIdHeader] = $this->spanContextToString(
- $spanContext->getTraceId(),
- $spanContext->getSpanId(),
- $spanContext->getParentId(),
- $spanContext->getFlags()
- );
-
- $baggage = $spanContext->getBaggage();
- if (empty($baggage)) {
- return;
- }
-
- foreach ($baggage as $key => $value) {
- $encodedValue = $value;
-
- if ($this->urlEncoding) {
- $encodedValue = urlencode($value);
- }
-
- $carrier[$this->baggagePrefix . $key] = $encodedValue;
- }
- }
-
- /**
- * {@inheritdoc}
- *
- * @see \Jaeger\Tracer::extract
- *
- * @param mixed $carrier
- * @return SpanContext|null
- *
- * @throws Exception
- */
- public function extract($carrier)
- {
- $traceId = null;
- $spanId = null;
- $parentId = null;
- $flags = null;
- $baggage = null;
- $debugId = null;
-
- foreach ($carrier as $key => $value) {
- $ucKey = strtolower($key);
-
- if ($ucKey === $this->traceIdHeader) {
- if ($this->urlEncoding) {
- $value = urldecode($value);
- }
- list($traceId, $spanId, $parentId, $flags) =
- $this->spanContextFromString($value);
- } elseif ($this->startsWith($ucKey, $this->baggagePrefix)) {
- if ($this->urlEncoding) {
- $value = urldecode($value);
- }
- $attrKey = substr($key, $this->prefixLength);
- if ($baggage === null) {
- $baggage = [strtolower($attrKey) => $value];
- } else {
- $baggage[strtolower($attrKey)] = $value;
- }
- } elseif ($ucKey === $this->debugIdHeader) {
- if ($this->urlEncoding) {
- $value = urldecode($value);
- }
- $debugId = $value;
- }
- }
-
- if ($traceId === null && $baggage !== null) {
- throw new Exception('baggage without trace ctx');
- }
-
- if ($traceId === null) {
- if ($debugId !== null) {
- return new SpanContext(null, null, null, null, [], $debugId);
- }
- return null;
- }
-
- return new SpanContext($traceId, $spanId, $parentId, $flags, $baggage);
- }
-
- /**
- * Store a span context to a string.
- *
- * @param int $traceId
- * @param int $spanId
- * @param int $parentId
- * @param int $flags
- * @return string
- */
- private function spanContextToString($traceId, $spanId, $parentId, $flags)
- {
- $parentId = $parentId ?? 0;
- return sprintf('%x:%x:%x:%x', $traceId, $spanId, $parentId, $flags);
- }
-
- /**
- * Create a span context from a string.
- *
- * @param string $value
- * @return array
- *
- * @throws Exception
- */
- private function spanContextFromString($value): array
- {
- $parts = explode(':', $value);
-
- if (count($parts) != 4) {
- throw new Exception('Malformed tracer state string.');
- }
-
- return [
- CodecUtility::hexToInt64($parts[0]),
- CodecUtility::hexToInt64($parts[1]),
- CodecUtility::hexToInt64($parts[2]),
- $parts[3],
- ];
- }
-
- /**
- * Checks that a string ($haystack) starts with a given prefix ($needle).
- *
- * @param string $haystack
- * @param string $needle
- * @return bool
- */
- private function startsWith(string $haystack, string $needle): bool
- {
- return substr($haystack, 0, strlen($needle)) == $needle;
- }
-}