116 lines
4.5 KiB
PHP
116 lines
4.5 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace OpenTelemetry\Tests\Integration\SDK;
|
|
|
|
use OpenTelemetry\SDK\Common\Attribute\Attributes;
|
|
use OpenTelemetry\SDK\Trace\SpanLimitsBuilder;
|
|
use OpenTelemetry\Tests\TestState;
|
|
use PHPUnit\Framework\Attributes\CoversNothing;
|
|
use PHPUnit\Framework\Attributes\Group;
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
#[CoversNothing]
|
|
class SpanLimitsBuilderTest extends TestCase
|
|
{
|
|
use TestState;
|
|
|
|
#[Group('trace-compliance')]
|
|
public function test_span_length_limits_builder_uses_environment_variable(): void
|
|
{
|
|
$this->setEnvironmentVariable('OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT', 9);
|
|
$builder = new SpanLimitsBuilder();
|
|
$builder->retainGeneralIdentityAttributes();
|
|
$spanLimits = $builder->build();
|
|
$this->assertEquals(Attributes::factory(128, 9), $spanLimits->getAttributesFactory());
|
|
}
|
|
|
|
#[Group('trace-compliance')]
|
|
public function test_span_length_limits_builder_uses_configured_value(): void
|
|
{
|
|
$this->setEnvironmentVariable('OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT', 9);
|
|
$builder = new SpanLimitsBuilder();
|
|
$builder->retainGeneralIdentityAttributes();
|
|
$builder->setAttributeValueLengthLimit(201);
|
|
$spanLimits = $builder->build();
|
|
$this->assertEquals(Attributes::factory(128, 201), $spanLimits->getAttributesFactory());
|
|
}
|
|
|
|
#[Group('trace-compliance')]
|
|
public function test_span_event_limits_builder_uses_environment_variable(): void
|
|
{
|
|
$this->setEnvironmentVariable('OTEL_SPAN_EVENT_COUNT_LIMIT', 200);
|
|
$builder = new SpanLimitsBuilder();
|
|
$spanLimits = $builder->build();
|
|
$this->assertEquals(200, $spanLimits->getEventCountLimit());
|
|
}
|
|
|
|
#[Group('trace-compliance')]
|
|
public function test_span_event_limits_builder_uses_configured_value(): void
|
|
{
|
|
$this->setEnvironmentVariable('OTEL_SPAN_EVENT_COUNT_LIMIT', 200);
|
|
$builder = new SpanLimitsBuilder();
|
|
$builder->setEventCountLimit(185);
|
|
$spanLimits = $builder->build();
|
|
$this->assertEquals(185, $spanLimits->getEventCountLimit());
|
|
}
|
|
|
|
#[Group('trace-compliance')]
|
|
public function test_span_limits_link_builder_uses_environment_variable(): void
|
|
{
|
|
$this->setEnvironmentVariable('OTEL_SPAN_LINK_COUNT_LIMIT', 1101);
|
|
$builder = new SpanLimitsBuilder();
|
|
$spanLimits = $builder->build();
|
|
$this->assertEquals(1101, $spanLimits->getLinkCountLimit());
|
|
}
|
|
|
|
#[Group('trace-compliance')]
|
|
public function test_span_limits_link_builder_uses_configured_value(): void
|
|
{
|
|
$this->setEnvironmentVariable('OTEL_SPAN_LINK_COUNT_LIMIT', 1102);
|
|
$builder = new SpanLimitsBuilder();
|
|
$builder->setLinkCountLimit(193);
|
|
$spanLimits = $builder->build();
|
|
$this->assertEquals(193, $spanLimits->getLinkCountLimit());
|
|
}
|
|
|
|
#[Group('trace-compliance')]
|
|
public function test_span_attribute_per_event_count_limits_builder_uses_environment_variable(): void
|
|
{
|
|
$this->setEnvironmentVariable('OTEL_EVENT_ATTRIBUTE_COUNT_LIMIT', 400);
|
|
$builder = new SpanLimitsBuilder();
|
|
$spanLimits = $builder->build();
|
|
$this->assertEquals(Attributes::factory(400), $spanLimits->getEventAttributesFactory());
|
|
}
|
|
|
|
#[Group('trace-compliance')]
|
|
public function test_span_event_attribute_per_event_count_limits_builder_uses_configured_value(): void
|
|
{
|
|
$this->setEnvironmentVariable('OTEL_EVENT_ATTRIBUTE_COUNT_LIMIT', 400);
|
|
$builder = new SpanLimitsBuilder();
|
|
$builder->setAttributePerEventCountLimit(155);
|
|
$spanLimits = $builder->build();
|
|
$this->assertEquals(Attributes::factory(155), $spanLimits->getEventAttributesFactory());
|
|
}
|
|
|
|
#[Group('trace-compliance')]
|
|
public function test_span_attribute_per_link_count_limits_builder_uses_environment_variable(): void
|
|
{
|
|
$this->setEnvironmentVariable('OTEL_LINK_ATTRIBUTE_COUNT_LIMIT', 500);
|
|
$builder = new SpanLimitsBuilder();
|
|
$spanLimits = $builder->build();
|
|
$this->assertEquals(Attributes::factory(500), $spanLimits->getLinkAttributesFactory());
|
|
}
|
|
|
|
#[Group('trace-compliance')]
|
|
public function test_span_link_attribute_per_event_count_limits_builder_uses_configured_value(): void
|
|
{
|
|
$this->setEnvironmentVariable('OTEL_LINK_ATTRIBUTE_COUNT_LIMIT', 500);
|
|
$builder = new SpanLimitsBuilder();
|
|
$builder->setAttributePerLinkCountLimit(450);
|
|
$spanLimits = $builder->build();
|
|
$this->assertEquals(Attributes::factory(450), $spanLimits->getLinkAttributesFactory());
|
|
}
|
|
}
|