Skip to content

Commit f413878

Browse files
authored
update declarative config to 1.0-rc.2 (#1733)
* fixing psalm and rector complaints * suppress some new psalm complaints * apply x2 rector suggested fixes * update declarative config to 1.0-rc.2 - adds service detector - configurator name and config are not required see https://github.com/open-telemetry/opentelemetry-configuration/releases/tag/v1.0.0-rc.1 and https://github.com/open-telemetry/opentelemetry-configuration/releases/tag/v1.0.0-rc.2 * move non-standard (php-specific, for now) config to own file * default disabled not required * update prometheus test exporter config * add test for empty tracer config * disabled optional
1 parent 95a09ab commit f413878

18 files changed

+111
-52
lines changed

composer.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,7 @@
170170
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Detector\\Composer",
171171
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Detector\\Host",
172172
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Detector\\Process",
173+
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Detector\\Service",
173174

174175
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Instrumentation\\General\\HttpConfigProvider",
175176
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Instrumentation\\General\\PeerConfigProvider",
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace OpenTelemetry\Config\SDK\ComponentProvider\Detector;
6+
7+
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
8+
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
9+
use OpenTelemetry\API\Configuration\Context;
10+
use OpenTelemetry\SDK\Resource\Detectors\Service as ServiceDetector;
11+
use OpenTelemetry\SDK\Resource\ResourceDetectorInterface;
12+
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
13+
use Symfony\Component\Config\Definition\Builder\NodeBuilder;
14+
15+
/**
16+
* @implements ComponentProvider<ResourceDetectorInterface>
17+
*/
18+
final class Service implements ComponentProvider
19+
{
20+
/**
21+
* @param array{} $properties
22+
*/
23+
#[\Override]
24+
public function createPlugin(array $properties, Context $context): ResourceDetectorInterface
25+
{
26+
return new ServiceDetector();
27+
}
28+
29+
#[\Override]
30+
public function getConfig(ComponentProviderRegistry $registry, NodeBuilder $builder): ArrayNodeDefinition
31+
{
32+
return $builder->arrayNode('service');
33+
}
34+
}

src/Config/SDK/ComponentProvider/OpenTelemetrySdk.php

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ final class OpenTelemetrySdk implements ComponentProvider
6262
{
6363
/**
6464
* @param array{
65-
* file_format: '0.4',
65+
* file_format: '1.0-rc.2',
6666
* disabled: bool,
6767
* resource: array{
6868
* attributes: array{
@@ -111,7 +111,7 @@ final class OpenTelemetrySdk implements ComponentProvider
111111
* tracers: list<array{
112112
* name: string,
113113
* config: array{
114-
* disabled: bool,
114+
* disabled: ?bool,
115115
* }
116116
* }>
117117
* }
@@ -239,7 +239,7 @@ public function createPlugin(array $properties, Context $context): SdkBuilder
239239
$configurator = Configurator::tracer()->with(static fn (TracerConfig $config) => $config->setDisabled($disabled), null);
240240

241241
foreach ($properties['tracer_provider']['tracer_configurator/development']['tracers'] ?? [] as $tracer) {
242-
$disabled = $tracer['config']['disabled'];
242+
$disabled = $tracer['config']['disabled'] ?? false;
243243
$configurator = $configurator->with(
244244
static fn (TracerConfig $config) => $config->setDisabled($disabled),
245245
name: $tracer['name'],
@@ -409,7 +409,7 @@ public function getConfig(ComponentProviderRegistry $registry, NodeBuilder $buil
409409
->isRequired()
410410
->example('0.1')
411411
->validate()->always(Validation::ensureString())->end()
412-
->validate()->ifNotInArray(['0.4'])->thenInvalid('unsupported version')->end()
412+
->validate()->ifNotInArray(['1.0-rc.2'])->thenInvalid('unsupported version')->end()
413413
->end()
414414
->booleanNode('disabled')->defaultFalse()->end()
415415
->append($this->getResourceConfig($registry, $builder))
@@ -504,17 +504,17 @@ private function getTracerProviderConfig(ComponentProviderRegistry $registry, No
504504
->arrayNode('default_config')
505505
->addDefaultsIfNotSet()
506506
->children()
507-
->booleanNode('disabled')->isRequired()->end()
507+
->booleanNode('disabled')->end()
508508
->end()
509509
->end()
510510
->arrayNode('tracers')
511511
->arrayPrototype()
512512
->children()
513-
->scalarNode('name')->isRequired()->cannotBeEmpty()->end()
513+
->scalarNode('name')->end()
514514
->arrayNode('config')
515515
->addDefaultsIfNotSet()
516516
->children()
517-
->booleanNode('disabled')->isRequired()->end()
517+
->booleanNode('disabled')->end()
518518
->end()
519519
->end()
520520
->end()

src/Config/SDK/composer.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@
8080
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Detector\\Composer",
8181
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Detector\\Host",
8282
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Detector\\Process",
83+
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Detector\\Service",
8384

8485
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Instrumentation\\General\\HttpConfigProvider",
8586
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Instrumentation\\General\\PeerConfigProvider"

tests/Integration/Config/ComponentProvider/Metrics/MetricExporterPrometheus.php

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,6 @@ public function getConfig(ComponentProviderRegistry $registry, NodeBuilder $buil
5656
->children()
5757
->scalarNode('host')->isRequired()->validate()->always(Validation::ensureString())->end()->end()
5858
->scalarNode('port')->isRequired()->validate()->always(Validation::ensureNumber())->end()->end()
59-
->booleanNode('without_units')->defaultFalse()->end()
60-
->booleanNode('without_type_suffix')->defaultFalse()->end()
6159
->booleanNode('without_scope_info')->defaultFalse()->end()
6260
->booleanNode('without_scope_trace')->defaultFalse()->end()
6361
->arrayNode('with_resource_constant_labels')
@@ -70,6 +68,15 @@ public function getConfig(ComponentProviderRegistry $registry, NodeBuilder $buil
7068
->end()
7169
->end()
7270
->end()
71+
->enumNode('translation_strategy')
72+
->defaultValue('UnderscoreEscapingWithSuffixes')
73+
->values([
74+
'UnderscoreEscapingWithSuffixes',
75+
'UnderscoreEscapingWithoutSuffixes',
76+
'NoUTF8EscapingWithSuffixes',
77+
'NoTranslation',
78+
])
79+
->end()
7380
->end()
7481
;
7582

tests/Integration/Config/ConfigurationTest.php

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ public static function openTelemetryConfigurationDataProvider(): iterable
5959
{
6060
yield 'kitchen-sink' => [__DIR__ . '/configurations/kitchen-sink.yaml'];
6161
yield 'anchors' => [__DIR__ . '/configurations/anchors.yaml'];
62+
yield 'php-specific' => [__DIR__ . '/configurations/php-specific.yaml'];
6263
}
6364

6465
public function test_configurators(): void
@@ -221,7 +222,7 @@ public function test_resource_attributes_take_precedence_over_default_attributes
221222
);
222223

223224
$sdk = $factory->process([Yaml::parse(/** @lang yaml */<<<'YAML'
224-
file_format: "0.4"
225+
file_format: "1.0-rc.2"
225226
resource:
226227
attributes:
227228
- { name: service.name, value: test-service }
@@ -240,7 +241,7 @@ public function test_resource_detectors_take_precedence_over_default_attributes(
240241
);
241242

242243
$sdk = $factory->process([Yaml::parse(/** @lang yaml */<<<'YAML'
243-
file_format: "0.4"
244+
file_format: "1.0-rc.2"
244245
resource:
245246
detection/development:
246247
detectors:
@@ -262,7 +263,7 @@ public function test_resource_attributes_take_precedence_over_resource_detectors
262263
);
263264

264265
$sdk = $factory->process([Yaml::parse(/** @lang yaml */<<<'YAML'
265-
file_format: "0.4"
266+
file_format: "1.0-rc.2"
266267
resource:
267268
attributes:
268269
- { name: service.name, value: test-service }
@@ -302,7 +303,7 @@ public function getConfig(ComponentProviderRegistry $registry, NodeBuilder $buil
302303
);
303304

304305
$sdk = $factory->process([Yaml::parse(/** @lang yaml */<<<'YAML'
305-
file_format: "0.4"
306+
file_format: "1.0-rc.2"
306307
resource:
307308
attributes:
308309
- { name: service.name, value: test-service }
@@ -331,4 +332,11 @@ private function getResource(Sdk $sdk): ResourceInfo
331332

332333
return $resource;
333334
}
335+
336+
public function test_empty_tracer_configurator_config(): void
337+
{
338+
$file = __DIR__ . '/configurations/empty-tracer-config.yaml';
339+
$this->expectNotToPerformAssertions();
340+
Configuration::parseFile($file)->create();
341+
}
334342
}

tests/Integration/Config/configurations/anchors.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# anchors.yaml demonstrates anchor substitution to reuse OTLP exporter configuration across signals.
22

3-
file_format: "0.4"
3+
file_format: "1.0-rc.2"
44
exporters:
55
otlp: &otlp-exporter
66
encoding: protobuf

tests/Integration/Config/configurations/configurators.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
file_format: '0.4'
1+
file_format: '1.0-rc.2'
22

33
propagators:
44
composite: [ tracecontext, baggage ]
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
file_format: "1.0-rc.2"
2+
3+
tracer_provider:
4+
tracer_configurator/development:
5+
tracers:
6+
- name: test
7+
config:

tests/Integration/Config/configurations/experimental-response-propagators-duplicate.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
file_format: '0.4'
1+
file_format: '1.0-rc.2'
22

33
response_propagator/development:
44
composite_list: "servertiming,servertiming"

0 commit comments

Comments
 (0)