summaryrefslogtreecommitdiff
path: root/vendor/open-telemetry/sdk/Trace/SpanLimitsBuilder.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/open-telemetry/sdk/Trace/SpanLimitsBuilder.php')
-rw-r--r--vendor/open-telemetry/sdk/Trace/SpanLimitsBuilder.php148
1 files changed, 0 insertions, 148 deletions
diff --git a/vendor/open-telemetry/sdk/Trace/SpanLimitsBuilder.php b/vendor/open-telemetry/sdk/Trace/SpanLimitsBuilder.php
deleted file mode 100644
index 11ed5a82b..000000000
--- a/vendor/open-telemetry/sdk/Trace/SpanLimitsBuilder.php
+++ /dev/null
@@ -1,148 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace OpenTelemetry\SDK\Trace;
-
-use OpenTelemetry\SDK\Common\Attribute\Attributes;
-use OpenTelemetry\SDK\Common\Attribute\FilteredAttributesFactory;
-use OpenTelemetry\SDK\Common\Configuration\Configuration;
-use OpenTelemetry\SDK\Common\Configuration\Variables as Env;
-use OpenTelemetry\SemConv\TraceAttributes;
-use const PHP_INT_MAX;
-
-class SpanLimitsBuilder
-{
- /** @var ?int Maximum allowed attribute count per record */
- private ?int $attributeCountLimit = null;
-
- /** @var ?int Maximum allowed attribute value length */
- private ?int $attributeValueLengthLimit = null;
-
- /** @var ?int Maximum allowed span event count */
- private ?int $eventCountLimit = null;
-
- /** @var ?int Maximum allowed span link count */
- private ?int $linkCountLimit = null;
-
- /** @var ?int Maximum allowed attribute per span event count */
- private ?int $attributePerEventCountLimit = null;
-
- /** @var ?int Maximum allowed attribute per span link count */
- private ?int $attributePerLinkCountLimit = null;
-
- private bool $retainGeneralIdentityAttributes = false;
-
- /**
- * @param int $attributeCountLimit Maximum allowed attribute count per record
- */
- public function setAttributeCountLimit(int $attributeCountLimit): SpanLimitsBuilder
- {
- $this->attributeCountLimit = $attributeCountLimit;
-
- return $this;
- }
-
- /**
- * @param int $attributeValueLengthLimit Maximum allowed attribute value length
- */
- public function setAttributeValueLengthLimit(int $attributeValueLengthLimit): SpanLimitsBuilder
- {
- $this->attributeValueLengthLimit = $attributeValueLengthLimit;
-
- return $this;
- }
-
- /**
- * @param int $eventCountLimit Maximum allowed span event count
- */
- public function setEventCountLimit(int $eventCountLimit): SpanLimitsBuilder
- {
- $this->eventCountLimit = $eventCountLimit;
-
- return $this;
- }
-
- /**
- * @param int $linkCountLimit Maximum allowed span link count
- */
- public function setLinkCountLimit(int $linkCountLimit): SpanLimitsBuilder
- {
- $this->linkCountLimit = $linkCountLimit;
-
- return $this;
- }
-
- /**
- * @param int $attributePerEventCountLimit Maximum allowed attribute per span event count
- */
- public function setAttributePerEventCountLimit(int $attributePerEventCountLimit): SpanLimitsBuilder
- {
- $this->attributePerEventCountLimit = $attributePerEventCountLimit;
-
- return $this;
- }
-
- /**
- * @param int $attributePerLinkCountLimit Maximum allowed attribute per span link count
- */
- public function setAttributePerLinkCountLimit(int $attributePerLinkCountLimit): SpanLimitsBuilder
- {
- $this->attributePerLinkCountLimit = $attributePerLinkCountLimit;
-
- return $this;
- }
-
- /**
- * @param bool $retain whether general identity attributes should be retained
- *
- * @see https://github.com/open-telemetry/semantic-conventions/blob/main/docs/general/attributes.md#general-identity-attributes
- */
- public function retainGeneralIdentityAttributes(bool $retain = true): SpanLimitsBuilder
- {
- $this->retainGeneralIdentityAttributes = $retain;
-
- return $this;
- }
-
- /**
- * @see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/configuration/sdk-environment-variables.md#span-limits
- */
- public function build(): SpanLimits
- {
- $attributeCountLimit = $this->attributeCountLimit
- ?: Configuration::getInt(Env::OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT, SpanLimits::DEFAULT_SPAN_ATTRIBUTE_COUNT_LIMIT);
- $attributeValueLengthLimit = $this->attributeValueLengthLimit
- ?: Configuration::getInt(Env::OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT, SpanLimits::DEFAULT_SPAN_ATTRIBUTE_LENGTH_LIMIT);
- $eventCountLimit = $this->eventCountLimit
- ?: Configuration::getInt(Env::OTEL_SPAN_EVENT_COUNT_LIMIT, SpanLimits::DEFAULT_SPAN_EVENT_COUNT_LIMIT);
- $linkCountLimit = $this->linkCountLimit
- ?: Configuration::getInt(Env::OTEL_SPAN_LINK_COUNT_LIMIT, SpanLimits::DEFAULT_SPAN_LINK_COUNT_LIMIT);
- $attributePerEventCountLimit = $this->attributePerEventCountLimit
- ?: Configuration::getInt(Env::OTEL_EVENT_ATTRIBUTE_COUNT_LIMIT, SpanLimits::DEFAULT_EVENT_ATTRIBUTE_COUNT_LIMIT);
- $attributePerLinkCountLimit = $this->attributePerLinkCountLimit
- ?: Configuration::getInt(Env::OTEL_LINK_ATTRIBUTE_COUNT_LIMIT, SpanLimits::DEFAULT_LINK_ATTRIBUTE_COUNT_LIMIT);
-
- if ($attributeValueLengthLimit === PHP_INT_MAX) {
- $attributeValueLengthLimit = null;
- }
-
- $spanAttributesFactory = Attributes::factory($attributeCountLimit, $attributeValueLengthLimit);
-
- if (!$this->retainGeneralIdentityAttributes) {
- $spanAttributesFactory = new FilteredAttributesFactory($spanAttributesFactory, [
- TraceAttributes::ENDUSER_ID,
- TraceAttributes::ENDUSER_ROLE,
- TraceAttributes::ENDUSER_SCOPE,
- ]);
- }
-
- return new SpanLimits(
- $spanAttributesFactory,
- Attributes::factory($attributePerEventCountLimit, $attributeValueLengthLimit),
- Attributes::factory($attributePerLinkCountLimit, $attributeValueLengthLimit),
- $eventCountLimit,
- $linkCountLimit,
- );
- }
-}