Merge branch 'main' into 2.x

This commit is contained in:
Brett McBride 2025-06-16 13:23:17 +10:00
commit b81968d55c
129 changed files with 1797 additions and 620 deletions

View File

@ -42,6 +42,6 @@ jobs:
# Upload the results to GitHub's code scanning dashboard (optional).
# Commenting out will disable upload of results to your repo's Code Scanning dashboard
- name: "Upload to code-scanning"
uses: github/codeql-action/upload-sarif@fca7ace96b7d713c7035871441bd52efbe39e27e # v3.28.19
uses: github/codeql-action/upload-sarif@ce28f5bb42b7a9f2c824e633a3f6ee835bab6858 # v3.29.0
with:
sarif_file: results.sarif

View File

@ -381,6 +381,7 @@ return [
'vendor/google/protobuf/src',
'vendor/ramsey/uuid/src',
'vendor/nyholm/psr7-server/src',
'vendor/symfony/config',
],
// A list of individual files to include in analysis

View File

@ -78,11 +78,7 @@
"OpenTelemetry\\Tests\\": "tests/",
"OpenTelemetry\\Example\\": "examples/src/",
"ExampleSDK\\ComponentProvider\\": "tests/Unit/Config/SDK/Configuration/ExampleSdk/"
},
"files": [
"examples/src/_register.php",
"tests/_register.php"
]
}
},
"require-dev": {
"ext-grpc": "*",
@ -126,8 +122,21 @@
"target-directory": "vendor-bin",
"forward-command": true
},
"spi-config": {
"autoload-files": [
"examples/src/_register.php",
"src/API/_register.php",
"src/Config/SDK/_register.php",
"src/Contrib/Otlp/_register.php",
"src/Contrib/Grpc/_register.php",
"src/Contrib/Zipkin/_register.php",
"src/SDK/_register.php",
"tests/_register.php"
],
"prune-autoload-files": true
},
"spi": {
"OpenTelemetry\\Config\\SDK\\Configuration\\ComponentProvider": [
"OpenTelemetry\\API\\Configuration\\Config\\ComponentProvider": [
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Propagator\\TextMapPropagatorB3",
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Propagator\\TextMapPropagatorB3Multi",
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Propagator\\TextMapPropagatorBaggage",
@ -181,17 +190,18 @@
"OpenTelemetry\\Tests\\Integration\\Config\\ComponentProvider\\Propagator\\TextMapPropagatorXray",
"OpenTelemetry\\Tests\\Integration\\Config\\ComponentProvider\\Propagator\\TextMapPropagatorOtTrace"
],
"autoload-files": [
"examples/src/_register.php",
"src/API/_register.php",
"src/Config/SDK/_register.php",
"src/Contrib/Otlp/_register.php",
"src/Contrib/Grpc/_register.php",
"src/Contrib/Zipkin/_register.php",
"src/SDK/_register.php",
"tests/_register.php"
"OpenTelemetry\\API\\Configuration\\ConfigEnv\\EnvComponentLoader": [
"OpenTelemetry\\API\\Instrumentation\\Configuration\\General\\ConfigEnv\\EnvComponentLoaderHttpConfig",
"OpenTelemetry\\API\\Instrumentation\\Configuration\\General\\ConfigEnv\\EnvComponentLoaderPeerConfig",
"OpenTelemetry\\Example\\ExampleConfigLoader"
],
"prune-autoload-files": true
"OpenTelemetry\\API\\Instrumentation\\AutoInstrumentation\\HookManagerInterface": [
"OpenTelemetry\\API\\Instrumentation\\AutoInstrumentation\\ExtensionHookManager"
],
"OpenTelemetry\\API\\Instrumentation\\AutoInstrumentation\\Instrumentation": [
"OpenTelemetry\\Example\\ExampleInstrumentation"
]
}
}
}

View File

@ -1,2 +1,8 @@
deptrac:
skip_violations:
OpenTelemetry\API\Configuration\Config\ComponentProvider:
- Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition
- Symfony\Component\Config\Definition\Builder\NodeBuilder
OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry:
- Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition
- Symfony\Component\Config\Definition\Builder\NodeDefinition

View File

@ -5,11 +5,11 @@ declare(strict_types=1);
namespace _;
use Nevay\SPI\ServiceLoader;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\API\Globals;
use OpenTelemetry\API\Instrumentation\AutoInstrumentation\ExtensionHookManager;
use OpenTelemetry\API\Instrumentation\AutoInstrumentation\Instrumentation;
use OpenTelemetry\Config\SDK\Configuration;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\Example\Example;
use const PHP_EOL;

View File

@ -0,0 +1,23 @@
<?php
declare(strict_types=1);
namespace _;
use OpenTelemetry\Example\Example;
use const PHP_EOL;
use function putenv;
/**
* This example uses SPI (see root composer.json extra.spi) to configure an example auto-instrumentation from environment variables.
*/
// php examples/instrumentation/configure_instrumentation_env.php
putenv('OTEL_PHP_AUTOLOAD_ENABLED=true');
putenv('OTEL_PHP_EXAMPLE_INSTRUMENTATION_SPAN_NAME=example span');
putenv('OTEL_TRACES_EXPORTER=console');
putenv('OTEL_METRICS_EXPORTER=none');
putenv('OTEL_LOGS_EXPORTER=none');
require __DIR__ . '/../../vendor/autoload.php';
echo (new Example())->test(), PHP_EOL;

View File

@ -1,4 +1,4 @@
file_format: '0.3'
file_format: '0.4'
propagator:
composite: []

View File

@ -9,13 +9,8 @@ use OpenTelemetry\API\Instrumentation\AutoInstrumentation\InstrumentationConfigu
final class ExampleConfig implements InstrumentationConfiguration
{
public function __construct(
public readonly string $spanName,
public readonly string $spanName = 'example',
public readonly bool $enabled = true,
) {
}
public static function default(): self
{
return new self('example');
}
}

View File

@ -0,0 +1,29 @@
<?php
declare(strict_types=1);
namespace OpenTelemetry\Example;
use OpenTelemetry\API\Configuration\ConfigEnv\EnvComponentLoader;
use OpenTelemetry\API\Configuration\ConfigEnv\EnvComponentLoaderRegistry;
use OpenTelemetry\API\Configuration\ConfigEnv\EnvResolver;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\API\Instrumentation\AutoInstrumentation\InstrumentationConfiguration;
/**
* @implements EnvComponentLoader<InstrumentationConfiguration>
*/
final class ExampleConfigLoader implements EnvComponentLoader
{
public function load(EnvResolver $env, EnvComponentLoaderRegistry $registry, Context $context): InstrumentationConfiguration
{
return new ExampleConfig(
spanName: $env->string('OTEL_PHP_EXAMPLE_INSTRUMENTATION_SPAN_NAME') ?? 'example',
);
}
public function name(): string
{
return ExampleConfig::class;
}
}

View File

@ -4,10 +4,10 @@ declare(strict_types=1);
namespace OpenTelemetry\Example;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\API\Instrumentation\AutoInstrumentation\InstrumentationConfiguration;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\Config\SDK\Configuration\Validation;
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
use Symfony\Component\Config\Definition\Builder\NodeBuilder;

View File

@ -15,7 +15,7 @@ final class ExampleInstrumentation implements Instrumentation
{
public function register(HookManagerInterface $hookManager, ConfigProperties $configuration, InstrumentationContext $context): void
{
$config = $configuration->get(ExampleConfig::class) ?? ExampleConfig::default();
$config = $configuration->get(ExampleConfig::class) ?? new ExampleConfig();
if (!$config->enabled) {
return;
}

View File

@ -4,12 +4,12 @@ declare(strict_types=1);
use Nevay\SPI\ServiceLoader;
use OpenTelemetry\API\Instrumentation\AutoInstrumentation\Instrumentation;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\Example\ExampleConfigProvider;
use OpenTelemetry\Example\ExampleInstrumentation;
use OpenTelemetry\Example\TestResourceDetectorFactory;
use OpenTelemetry\SDK\Resource\ResourceDetectorFactoryInterface;
ServiceLoader::register(Instrumentation::class, ExampleInstrumentation::class);
//ServiceLoader::register(Instrumentation::class, ExampleInstrumentation::class);
ServiceLoader::register(ResourceDetectorFactoryInterface::class, TestResourceDetectorFactory::class);
ServiceLoader::register(ComponentProvider::class, ExampleConfigProvider::class);
//ServiceLoader::register(ComponentProvider::class, ExampleConfigProvider::class);

View File

@ -20,7 +20,7 @@ CODE_DIR="${ROOT_DIR}/src/SemConv"
SEMCONV_VERSION=1.32.0
SPEC_VERSION=v$SEMCONV_VERSION
SCHEMA_URL=https://opentelemetry.io/schemas/$SEMCONV_VERSION
OTEL_WEAVER_IMG_VERSION=v0.14.0
OTEL_WEAVER_IMG_VERSION=v0.15.2
rm -rf "${SPEC_DIR}"
mkdir "${SPEC_DIR}"

View File

@ -21,7 +21,7 @@ interface ResourceAttributeValues
* {{ member.brief or member.id }}
*
* @see ResourceAttributes::{{ c.attribute_name(attribute) }}
{% if attribute.deprecated %}
{% if attribute is deprecated %}
* @deprecated {{ attribute.deprecated }}
{% endif %}
*/

View File

@ -19,7 +19,7 @@ text_maps:
template[string[]]: string[]
templates:
- pattern: Attributes.php.j2
- template: Attributes.php.j2
filter: >
semconv_grouped_attributes({
"exclude_root_namespace": $excluded_namespaces,
@ -31,7 +31,7 @@ templates:
})
application_mode: single
file_name: "TraceAttributes.php"
- pattern: AttributeValues.php.j2
- template: AttributeValues.php.j2
filter: >
semconv_grouped_attributes({
"exclude_root_namespace": $excluded_namespaces,
@ -39,7 +39,7 @@ templates:
})
application_mode: single
file_name: "TraceAttributeValues.php"
- pattern: ResourceAttributes.php.j2
- template: ResourceAttributes.php.j2
filter: >
semconv_signal("resource"; {})
| map(.attributes[])
@ -47,7 +47,7 @@ templates:
| map(.[-1])
application_mode: single
file_name: "ResourceAttributes.php"
- pattern: ResourceAttributeValues.php.j2
- template: ResourceAttributeValues.php.j2
filter: >
semconv_signal("resource"; {})
| map(.attributes[])

View File

@ -0,0 +1,27 @@
<?php
declare(strict_types=1);
namespace OpenTelemetry\API\Configuration\Config;
use function class_alias;
use OpenTelemetry\API\Configuration\Context;
/**
* A component plugin that can be used to create a component.
*
* @template T
*/
interface ComponentPlugin
{
/**
* Creates the component that is provided by this plugin.
*
* @param Context $context context used for creation
* @return T created component
*/
public function create(Context $context): mixed;
}
/** @phpstan-ignore-next-line @phan-suppress-next-line PhanUndeclaredClassReference */
class_alias(ComponentPlugin::class, \OpenTelemetry\Config\SDK\Configuration\ComponentPlugin::class);

View File

@ -0,0 +1,45 @@
<?php
declare(strict_types=1);
namespace OpenTelemetry\API\Configuration\Config;
use function class_alias;
use OpenTelemetry\API\Configuration\Context;
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
use Symfony\Component\Config\Definition\Builder\NodeBuilder;
/**
* A component provider is responsible for interpreting configuration and returning an
* implementation of a particular type.
*
* @template T
*/
interface ComponentProvider
{
/**
* @param array $properties properties provided for this component provider
* @param Context $context context that should be used to resolve component plugins
* @return T created component, typehint has to specify the component type that is
* provided by this component provider
*
* @see ComponentPlugin::create()
*/
public function createPlugin(array $properties, Context $context): mixed;
/**
* Returns an array node describing the properties of this component provider.
*
* @param ComponentProviderRegistry $registry registry containing all available component providers
* @param NodeBuilder $builder node builder used to create configuration nodes
* @return ArrayNodeDefinition array node describing the properties
*
* @see ComponentProviderRegistry::component()
* @see ComponentProviderRegistry::componentList()
* @see ComponentProviderRegistry::componentNames()
*/
public function getConfig(ComponentProviderRegistry $registry, NodeBuilder $builder): ArrayNodeDefinition;
}
/** @phpstan-ignore-next-line @phan-suppress-next-line PhanUndeclaredClassReference */
class_alias(ComponentProvider::class, \OpenTelemetry\Config\SDK\Configuration\ComponentProvider::class);

View File

@ -0,0 +1,91 @@
<?php
declare(strict_types=1);
namespace OpenTelemetry\API\Configuration\Config;
use function class_alias;
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
use Symfony\Component\Config\Definition\Builder\NodeDefinition;
/**
* A registry of component providers.
*/
interface ComponentProviderRegistry
{
/**
* Creates a node to specify a component plugin.
*
* `$name: ?ComponentPlugin<$type>`
*
* ```
* $name:
* provider1:
* property: value
* anotherProperty: value
* ```
*
* @param string $name name of configuration node
* @param string $type type of the component plugin
*/
public function component(string $name, string $type): NodeDefinition;
/**
* Creates a node to specify a list of component plugin.
*
* `$name: list<ComponentPlugin<$type>>`
*
* ```
* $name:
* - provider1:
* property: value
* anotherProperty: value
* - provider2:
* property: value
* anotherProperty: value
* ```
*
* @param string $name name of configuration node
* @param string $type type of the component plugin
*/
public function componentList(string $name, string $type): ArrayNodeDefinition;
/**
* Creates a node to specify a map of component plugin.
*
* `$name: list<ComponentPlugin<$type>>`
*
* ```
* $name:
* provider1:
* property: value
* anotherProperty: value
* provider2:
* property: value
* anotherProperty: value
* ```
*
* @param string $name name of configuration node
* @param string $type type of the component plugin
*/
public function componentMap(string $name, string $type): ArrayNodeDefinition;
/**
* Creates a node to specify a list of component plugin names.
*
* The providers cannot have required properties.
*
* `$name: list<ComponentPlugin<$type>>`
*
* ```
* $name: [provider1, provider2]
* ```
*
* @param string $name name of configuration node
* @param string $type type of the component plugin
*/
public function componentNames(string $name, string $type): ArrayNodeDefinition;
}
/** @phpstan-ignore-next-line @phan-suppress-next-line PhanUndeclaredClassReference */
class_alias(ComponentProviderRegistry::class, \OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry::class);

View File

@ -0,0 +1,20 @@
<?php
declare(strict_types=1);
namespace OpenTelemetry\API\Configuration\ConfigEnv;
use OpenTelemetry\API\Configuration\Context;
/**
* @template T
*/
interface EnvComponentLoader
{
/**
* @psalm-return T
*/
public function load(EnvResolver $env, EnvComponentLoaderRegistry $registry, Context $context): mixed;
public function name(): string;
}

View File

@ -0,0 +1,17 @@
<?php
declare(strict_types=1);
namespace OpenTelemetry\API\Configuration\ConfigEnv;
use OpenTelemetry\API\Configuration\Context;
interface EnvComponentLoaderRegistry
{
/**
* @template T
* @param class-string<T> $type
* @return T
*/
public function load(string $type, string $name, EnvResolver $env, Context $context): mixed;
}

View File

@ -0,0 +1,86 @@
<?php
declare(strict_types=1);
namespace OpenTelemetry\API\Configuration\ConfigEnv;
/**
* Helper class to access environment-based configuration.
*/
interface EnvResolver
{
/**
* Resolves a string-valued environment variable.
*
* @param string $name environment variable name
* @return string|null value of the environment variable, or null if not set or invalid
*
* @see https://opentelemetry.io/docs/specs/otel/configuration/sdk-environment-variables/#string
*/
public function string(string $name): ?string;
/**
* Resolves an enum-valued environment variable.
*
* @param string $name environment variable name
* @param list<string> $values list of permissible enum values
* @return string|null value of the environment variable, of null if not set or invalid
*
* @see https://opentelemetry.io/docs/specs/otel/configuration/sdk-environment-variables/#enum
*/
public function enum(string $name, array $values): ?string;
/**
* Resolves a boolean-valued environment variable.
*
* Allowed values:
* - case-insensitive "true"
* - case-insensitive "false"
*
* @param string $name environment variable name
* @return bool|null value of the environment variable, or null if not set or invalid
*
* @see https://opentelemetry.io/docs/specs/otel/configuration/sdk-environment-variables/#boolean-value
*/
public function bool(string $name): ?bool;
/**
* Resolves an integer-valued environment variable.
*
* @param string $name environment variable name
* @param int|null $min lower limit (inclusive), defaults to 0
* @param int|null $max upper limit (inclusive), defaults to 2^31-1
* @return int|null value of the environment variable, or null if not set or invalid
*
* @see https://opentelemetry.io/docs/specs/otel/configuration/sdk-environment-variables/#numeric-value
*/
public function int(string $name, ?int $min = 0, ?int $max = ~(-1 << 31)): int|null;
/**
* Resolves a numeric-valued environment variable.
*
* @param string $name environment variable name
* @param int|float|null $min lower limit (inclusive), defaults to 0
* @param int|float|null $max upper limit (inclusive), defaults to 2^31-1
* @return int|float|null value of the environment variable, or null if not set or invalid
*
* @see https://opentelemetry.io/docs/specs/otel/configuration/sdk-environment-variables/#numeric-value
*/
public function numeric(string $name, int|float|null $min = 0, int|float|null $max = ~(-1 << 31)): float|int|null;
/**
* Resolves a list-valued environment variable.
*
* @param string $name environment variable name
* @return list<string>|null value of the environment variable, or null if not set or invalid
*/
public function list(string $name): ?array;
/**
* Resolves a map-valued environment variable.
*
* @param string $name environment variable name
* @return array<string, string>|null value of the environment variable, or null if not set or invalid
*/
public function map(string $name): ?array;
}

View File

@ -0,0 +1,29 @@
<?php
declare(strict_types=1);
namespace OpenTelemetry\API\Configuration;
use function class_alias;
use OpenTelemetry\API\Logs\LoggerProviderInterface;
use OpenTelemetry\API\Logs\NoopLoggerProvider;
use OpenTelemetry\API\Metrics\MeterProviderInterface;
use OpenTelemetry\API\Metrics\Noop\NoopMeterProvider;
use OpenTelemetry\API\Trace\NoopTracerProvider;
use OpenTelemetry\API\Trace\TracerProviderInterface;
use Psr\Log\LoggerInterface;
use Psr\Log\NullLogger;
final class Context
{
public function __construct(
public readonly TracerProviderInterface $tracerProvider = new NoopTracerProvider(),
public readonly MeterProviderInterface $meterProvider = new NoopMeterProvider(),
public readonly LoggerProviderInterface $loggerProvider = new NoopLoggerProvider(),
public readonly LoggerInterface $logger = new NullLogger(),
) {
}
}
/** @phpstan-ignore-next-line @phan-suppress-next-line PhanUndeclaredClassReference */
class_alias(Context::class, \OpenTelemetry\Config\SDK\Configuration\Context::class);

View File

@ -0,0 +1,37 @@
<?php
declare(strict_types=1);
namespace OpenTelemetry\API\Instrumentation\Configuration\General\ConfigEnv;
use OpenTelemetry\API\Configuration\ConfigEnv\EnvComponentLoader;
use OpenTelemetry\API\Configuration\ConfigEnv\EnvComponentLoaderRegistry;
use OpenTelemetry\API\Configuration\ConfigEnv\EnvResolver;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\API\Instrumentation\AutoInstrumentation\GeneralInstrumentationConfiguration;
use OpenTelemetry\API\Instrumentation\Configuration\General\HttpConfig;
/**
* @implements EnvComponentLoader<GeneralInstrumentationConfiguration>
*/
final class EnvComponentLoaderHttpConfig implements EnvComponentLoader
{
public function load(EnvResolver $env, EnvComponentLoaderRegistry $registry, Context $context): GeneralInstrumentationConfiguration
{
return new HttpConfig([
'client' => [
'request_captured_headers' => $env->list('OTEL_PHP_INSTRUMENTATION_HTTP_REQUEST_HEADERS') ?? [],
'response_captured_headers' => $env->list('OTEL_PHP_INSTRUMENTATION_HTTP_RESPONSE_HEADERS') ?? [],
],
'server' => [
'request_captured_headers' => $env->list('OTEL_PHP_INSTRUMENTATION_HTTP_REQUEST_HEADERS') ?? [],
'response_captured_headers' => $env->list('OTEL_PHP_INSTRUMENTATION_HTTP_RESPONSE_HEADERS') ?? [],
],
]);
}
public function name(): string
{
return HttpConfig::class;
}
}

View File

@ -0,0 +1,28 @@
<?php
declare(strict_types=1);
namespace OpenTelemetry\API\Instrumentation\Configuration\General\ConfigEnv;
use OpenTelemetry\API\Configuration\ConfigEnv\EnvComponentLoader;
use OpenTelemetry\API\Configuration\ConfigEnv\EnvComponentLoaderRegistry;
use OpenTelemetry\API\Configuration\ConfigEnv\EnvResolver;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\API\Instrumentation\AutoInstrumentation\GeneralInstrumentationConfiguration;
use OpenTelemetry\API\Instrumentation\Configuration\General\PeerConfig;
/**
* @implements EnvComponentLoader<GeneralInstrumentationConfiguration>
*/
final class EnvComponentLoaderPeerConfig implements EnvComponentLoader
{
public function load(EnvResolver $env, EnvComponentLoaderRegistry $registry, Context $context): GeneralInstrumentationConfiguration
{
return new PeerConfig([]);
}
public function name(): string
{
return PeerConfig::class;
}
}

View File

@ -17,10 +17,11 @@
}
],
"require": {
"php": "^8.2",
"open-telemetry/context": "^1.0|^2.0",
"php": "^8.1",
"open-telemetry/context": "^1.0",
"psr/log": "^1.1|^2.0|^3.0",
"tbachert/spi": "^1.0.1"
"symfony/polyfill-php82": "^1.26",
"tbachers/spi": "^1.0.1"
},
"conflict": {
"open-telemetry/sdk": "<=1.0.8"
@ -36,14 +37,19 @@
},
"extra": {
"branch-alias": {
"dev-main": "1.1.x-dev",
"dev-main": "1.4.x-dev",
"dev-2.x": "2.x-dev"
},
"spi": {
"OpenTelemetry\\API\\Instrumentation\\AutoInstrumentation\\HookManagerInterface": [
"OpenTelemetry\\API\\Instrumentation\\AutoInstrumentation\\ExtensionHookManager"
]
},
"spi-config": {
"autoload-files": [
"_register.php"
],
"prune-autoload-files": true
"autoload-files": [
"_register.php"
],
"prune-autoload-files": true
}
}
}

View File

@ -4,9 +4,9 @@ declare(strict_types=1);
namespace OpenTelemetry\Config\SDK\ComponentProvider\Detector;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\SDK\Resource\Detectors\Composer as ComposerDetector;
use OpenTelemetry\SDK\Resource\ResourceDetectorInterface;
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;

View File

@ -4,9 +4,9 @@ declare(strict_types=1);
namespace OpenTelemetry\Config\SDK\ComponentProvider\Detector;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\SDK\Resource\Detectors\Host as HostDetector;
use OpenTelemetry\SDK\Resource\ResourceDetectorInterface;
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;

View File

@ -4,9 +4,9 @@ declare(strict_types=1);
namespace OpenTelemetry\Config\SDK\ComponentProvider\Detector;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\SDK\Resource\Detectors\Process as ProcessDetector;
use OpenTelemetry\SDK\Resource\ResourceDetectorInterface;
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;

View File

@ -4,11 +4,11 @@ declare(strict_types=1);
namespace OpenTelemetry\Config\SDK\ComponentProvider\Instrumentation\General;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\API\Instrumentation\AutoInstrumentation\GeneralInstrumentationConfiguration;
use OpenTelemetry\API\Instrumentation\Configuration\General\HttpConfig;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
use Symfony\Component\Config\Definition\Builder\NodeBuilder;

View File

@ -4,11 +4,11 @@ declare(strict_types=1);
namespace OpenTelemetry\Config\SDK\ComponentProvider\Instrumentation\General;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\API\Instrumentation\AutoInstrumentation\GeneralInstrumentationConfiguration;
use OpenTelemetry\API\Instrumentation\Configuration\General\PeerConfig;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
use Symfony\Component\Config\Definition\Builder\NodeBuilder;

View File

@ -4,13 +4,13 @@ declare(strict_types=1);
namespace OpenTelemetry\Config\SDK\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentPlugin;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\API\Instrumentation\AutoInstrumentation\ConfigurationRegistry;
use OpenTelemetry\API\Instrumentation\AutoInstrumentation\GeneralInstrumentationConfiguration;
use OpenTelemetry\API\Instrumentation\AutoInstrumentation\InstrumentationConfiguration;
use OpenTelemetry\Config\SDK\Configuration\ComponentPlugin;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
use Symfony\Component\Config\Definition\Builder\NodeBuilder;

View File

@ -4,9 +4,9 @@ declare(strict_types=1);
namespace OpenTelemetry\Config\SDK\ComponentProvider\Logs;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\SDK\Common\Services\Loader;
use OpenTelemetry\SDK\Logs\Exporter\ConsoleExporter;
use OpenTelemetry\SDK\Logs\LogRecordExporterInterface;

View File

@ -4,9 +4,9 @@ declare(strict_types=1);
namespace OpenTelemetry\Config\SDK\ComponentProvider\Logs;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\SDK\Logs\Exporter\InMemoryExporter;
use OpenTelemetry\SDK\Logs\LogRecordExporterInterface;
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;

View File

@ -5,10 +5,10 @@ declare(strict_types=1);
namespace OpenTelemetry\Config\SDK\ComponentProvider\Logs;
use Nevay\SPI\ServiceProviderDependency\PackageDependency;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\Config\SDK\ComponentProvider\OutputStreamParser;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\Config\SDK\Configuration\Validation;
use OpenTelemetry\Contrib\Otlp\ContentTypes;
use OpenTelemetry\Contrib\Otlp\LogsExporter;

View File

@ -6,10 +6,10 @@ namespace OpenTelemetry\Config\SDK\ComponentProvider\Logs;
use Nevay\SPI\ServiceProviderDependency\PackageDependency;
use OpenTelemetry\API\Common\Time\ClockInterface;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\API\Signals;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\Config\SDK\Configuration\Validation;
use OpenTelemetry\Contrib\Otlp\LogsExporter;
use OpenTelemetry\Contrib\Otlp\OtlpUtil;

View File

@ -6,9 +6,9 @@ namespace OpenTelemetry\Config\SDK\ComponentProvider\Logs;
use Nevay\SPI\ServiceProviderDependency\PackageDependency;
use OpenTelemetry\API\Common\Time\ClockInterface;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\Config\SDK\Configuration\Validation;
use OpenTelemetry\Contrib\Otlp\ContentTypes;
use OpenTelemetry\Contrib\Otlp\LogsExporter;

View File

@ -5,10 +5,10 @@ declare(strict_types=1);
namespace OpenTelemetry\Config\SDK\ComponentProvider\Logs;
use OpenTelemetry\API\Common\Time\Clock;
use OpenTelemetry\Config\SDK\Configuration\ComponentPlugin;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\API\Configuration\Config\ComponentPlugin;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\SDK\Logs\LogRecordExporterInterface;
use OpenTelemetry\SDK\Logs\LogRecordProcessorInterface;
use OpenTelemetry\SDK\Logs\Processor\BatchLogRecordProcessor;

View File

@ -4,10 +4,10 @@ declare(strict_types=1);
namespace OpenTelemetry\Config\SDK\ComponentProvider\Logs;
use OpenTelemetry\Config\SDK\Configuration\ComponentPlugin;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\API\Configuration\Config\ComponentPlugin;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\SDK\Logs\LogRecordExporterInterface;
use OpenTelemetry\SDK\Logs\LogRecordProcessorInterface;
use OpenTelemetry\SDK\Logs\Processor\SimpleLogRecordProcessor;

View File

@ -4,9 +4,9 @@ declare(strict_types=1);
namespace OpenTelemetry\Config\SDK\ComponentProvider\Metrics;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\SDK\Metrics\DefaultAggregationProviderInterface;
use OpenTelemetry\SDK\Metrics\DefaultAggregationProviderTrait;
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;

View File

@ -4,9 +4,9 @@ declare(strict_types=1);
namespace OpenTelemetry\Config\SDK\ComponentProvider\Metrics;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\SDK\Metrics\MetricExporter\ConsoleMetricExporter;
use OpenTelemetry\SDK\Metrics\MetricExporterInterface;
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;

View File

@ -4,9 +4,9 @@ declare(strict_types=1);
namespace OpenTelemetry\Config\SDK\ComponentProvider\Metrics;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\SDK\Metrics\MetricExporter\InMemoryExporter;
use OpenTelemetry\SDK\Metrics\MetricExporterInterface;
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;

View File

@ -5,10 +5,10 @@ declare(strict_types=1);
namespace OpenTelemetry\Config\SDK\ComponentProvider\Metrics;
use Nevay\SPI\ServiceProviderDependency\PackageDependency;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\Config\SDK\ComponentProvider\OutputStreamParser;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\Config\SDK\Configuration\Validation;
use OpenTelemetry\Contrib\Otlp\ContentTypes;
use OpenTelemetry\Contrib\Otlp\MetricExporter;

View File

@ -6,10 +6,10 @@ namespace OpenTelemetry\Config\SDK\ComponentProvider\Metrics;
use Nevay\SPI\ServiceProviderDependency\PackageDependency;
use OpenTelemetry\API\Common\Time\ClockInterface;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\API\Signals;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\Config\SDK\Configuration\Validation;
use OpenTelemetry\Contrib\Otlp\MetricExporter;
use OpenTelemetry\Contrib\Otlp\OtlpUtil;

View File

@ -6,9 +6,9 @@ namespace OpenTelemetry\Config\SDK\ComponentProvider\Metrics;
use Nevay\SPI\ServiceProviderDependency\PackageDependency;
use OpenTelemetry\API\Common\Time\ClockInterface;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\Config\SDK\Configuration\Validation;
use OpenTelemetry\Contrib\Otlp\ContentTypes;
use OpenTelemetry\Contrib\Otlp\MetricExporter;

View File

@ -4,10 +4,10 @@ declare(strict_types=1);
namespace OpenTelemetry\Config\SDK\ComponentProvider\Metrics;
use OpenTelemetry\Config\SDK\Configuration\ComponentPlugin;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\API\Configuration\Config\ComponentPlugin;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\SDK\Metrics\MetricExporterInterface;
use OpenTelemetry\SDK\Metrics\MetricReader\ExportingReader;
use OpenTelemetry\SDK\Metrics\MetricReaderInterface;

View File

@ -5,10 +5,10 @@ declare(strict_types=1);
namespace OpenTelemetry\Config\SDK\ComponentProvider;
use OpenTelemetry\API\Common\Time\Clock;
use OpenTelemetry\Config\SDK\Configuration\ComponentPlugin;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\API\Configuration\Config\ComponentPlugin;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\Config\SDK\Configuration\Validation;
use OpenTelemetry\Config\SDK\Parser\AttributesParser;
use OpenTelemetry\Context\Propagation\MultiTextMapPropagator;

View File

@ -5,9 +5,9 @@ declare(strict_types=1);
namespace OpenTelemetry\Config\SDK\ComponentProvider\Propagator;
use Nevay\SPI\ServiceProviderDependency\PackageDependency;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\Context\Propagation\TextMapPropagatorInterface;
use OpenTelemetry\Extension\Propagator\B3\B3Propagator;
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;

View File

@ -5,9 +5,9 @@ declare(strict_types=1);
namespace OpenTelemetry\Config\SDK\ComponentProvider\Propagator;
use Nevay\SPI\ServiceProviderDependency\PackageDependency;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\Context\Propagation\TextMapPropagatorInterface;
use OpenTelemetry\Extension\Propagator\B3\B3Propagator;
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;

View File

@ -5,9 +5,9 @@ declare(strict_types=1);
namespace OpenTelemetry\Config\SDK\ComponentProvider\Propagator;
use OpenTelemetry\API\Baggage\Propagation\BaggagePropagator;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\Context\Propagation\TextMapPropagatorInterface;
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
use Symfony\Component\Config\Definition\Builder\NodeBuilder;

View File

@ -4,10 +4,10 @@ declare(strict_types=1);
namespace OpenTelemetry\Config\SDK\ComponentProvider\Propagator;
use OpenTelemetry\Config\SDK\Configuration\ComponentPlugin;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\API\Configuration\Config\ComponentPlugin;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\Context\Propagation\MultiTextMapPropagator;
use OpenTelemetry\Context\Propagation\TextMapPropagatorInterface;
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;

View File

@ -5,9 +5,9 @@ declare(strict_types=1);
namespace OpenTelemetry\Config\SDK\ComponentProvider\Propagator;
use Nevay\SPI\ServiceProviderDependency\PackageDependency;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\Context\Propagation\TextMapPropagatorInterface;
use OpenTelemetry\Extension\Propagator\Jaeger\JaegerPropagator;
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;

View File

@ -4,10 +4,10 @@ declare(strict_types=1);
namespace OpenTelemetry\Config\SDK\ComponentProvider\Propagator;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\API\Trace\Propagation\TraceContextPropagator;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\Context\Propagation\TextMapPropagatorInterface;
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
use Symfony\Component\Config\Definition\Builder\NodeBuilder;

View File

@ -4,9 +4,9 @@ declare(strict_types=1);
namespace OpenTelemetry\Config\SDK\ComponentProvider\Trace;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\SDK\Trace\Sampler\AlwaysOffSampler;
use OpenTelemetry\SDK\Trace\SamplerInterface;
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;

View File

@ -4,9 +4,9 @@ declare(strict_types=1);
namespace OpenTelemetry\Config\SDK\ComponentProvider\Trace;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\SDK\Trace\Sampler\AlwaysOnSampler;
use OpenTelemetry\SDK\Trace\SamplerInterface;
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;

View File

@ -4,10 +4,10 @@ declare(strict_types=1);
namespace OpenTelemetry\Config\SDK\ComponentProvider\Trace;
use OpenTelemetry\Config\SDK\Configuration\ComponentPlugin;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\API\Configuration\Config\ComponentPlugin;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\SDK\Trace\Sampler\AlwaysOffSampler;
use OpenTelemetry\SDK\Trace\Sampler\AlwaysOnSampler;
use OpenTelemetry\SDK\Trace\Sampler\ParentBased;

View File

@ -4,9 +4,9 @@ declare(strict_types=1);
namespace OpenTelemetry\Config\SDK\ComponentProvider\Trace;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\SDK\Trace\Sampler\TraceIdRatioBasedSampler;
use OpenTelemetry\SDK\Trace\SamplerInterface;
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;

View File

@ -4,9 +4,9 @@ declare(strict_types=1);
namespace OpenTelemetry\Config\SDK\ComponentProvider\Trace;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\SDK\Common\Services\Loader;
use OpenTelemetry\SDK\Trace\SpanExporter\ConsoleSpanExporter;
use OpenTelemetry\SDK\Trace\SpanExporterInterface;

View File

@ -4,9 +4,9 @@ declare(strict_types=1);
namespace OpenTelemetry\Config\SDK\ComponentProvider\Trace;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\SDK\Trace\SpanExporter\InMemoryExporter;
use OpenTelemetry\SDK\Trace\SpanExporterInterface;
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;

View File

@ -5,10 +5,10 @@ declare(strict_types=1);
namespace OpenTelemetry\Config\SDK\ComponentProvider\Trace;
use Nevay\SPI\ServiceProviderDependency\PackageDependency;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\Config\SDK\ComponentProvider\OutputStreamParser;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\Config\SDK\Configuration\Validation;
use OpenTelemetry\Contrib\Otlp\ContentTypes;
use OpenTelemetry\Contrib\Otlp\SpanExporter;

View File

@ -6,10 +6,10 @@ namespace OpenTelemetry\Config\SDK\ComponentProvider\Trace;
use Nevay\SPI\ServiceProviderDependency\PackageDependency;
use OpenTelemetry\API\Common\Time\ClockInterface;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\API\Signals;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\Config\SDK\Configuration\Validation;
use OpenTelemetry\Contrib\Otlp\OtlpUtil;
use OpenTelemetry\Contrib\Otlp\Protocols;

View File

@ -6,9 +6,9 @@ namespace OpenTelemetry\Config\SDK\ComponentProvider\Trace;
use Nevay\SPI\ServiceProviderDependency\PackageDependency;
use OpenTelemetry\API\Common\Time\ClockInterface;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\Config\SDK\Configuration\Validation;
use OpenTelemetry\Contrib\Otlp\ContentTypes;
use OpenTelemetry\Contrib\Otlp\SpanExporter;

View File

@ -6,9 +6,9 @@ namespace OpenTelemetry\Config\SDK\ComponentProvider\Trace;
use Nevay\SPI\ServiceProviderDependency\PackageDependency;
use OpenTelemetry\API\Common\Time\ClockInterface;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\Config\SDK\Configuration\Validation;
use OpenTelemetry\Contrib\Zipkin;
use OpenTelemetry\SDK\Common\Services\Loader;

View File

@ -5,10 +5,10 @@ declare(strict_types=1);
namespace OpenTelemetry\Config\SDK\ComponentProvider\Trace;
use OpenTelemetry\API\Common\Time\Clock;
use OpenTelemetry\Config\SDK\Configuration\ComponentPlugin;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\API\Configuration\Config\ComponentPlugin;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\SDK\Trace\SpanExporterInterface;
use OpenTelemetry\SDK\Trace\SpanProcessor\BatchSpanProcessor;
use OpenTelemetry\SDK\Trace\SpanProcessorInterface;

View File

@ -4,10 +4,10 @@ declare(strict_types=1);
namespace OpenTelemetry\Config\SDK\ComponentProvider\Trace;
use OpenTelemetry\Config\SDK\Configuration\ComponentPlugin;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\API\Configuration\Config\ComponentPlugin;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\SDK\Trace\SpanExporterInterface;
use OpenTelemetry\SDK\Trace\SpanProcessor\SimpleSpanProcessor;
use OpenTelemetry\SDK\Trace\SpanProcessorInterface;

View File

@ -5,11 +5,11 @@ declare(strict_types=1);
namespace OpenTelemetry\Config\SDK;
use Nevay\SPI\ServiceLoader;
use OpenTelemetry\API\Configuration\Config\ComponentPlugin;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\Config\SDK\ComponentProvider\OpenTelemetrySdk;
use OpenTelemetry\Config\SDK\Configuration\ComponentPlugin;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ConfigurationFactory;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\Config\SDK\Configuration\Environment\EnvSourceReader;
use OpenTelemetry\Config\SDK\Configuration\Environment\PhpIniEnvSource;
use OpenTelemetry\Config\SDK\Configuration\Environment\ServerEnvSource;
@ -49,7 +49,7 @@ final class Configuration
static $factory;
return $factory ??= new ConfigurationFactory(
ServiceLoader::load(ComponentProvider::class),
self::loadComponentProviders(),
new OpenTelemetrySdk(),
new EnvSourceReader([
new ServerEnvSource(),
@ -57,4 +57,12 @@ final class Configuration
]),
);
}
private static function loadComponentProviders(): iterable
{
yield from ServiceLoader::load(ComponentProvider::class);
/** @phpstan-ignore-next-line */
yield from ServiceLoader::load(Configuration\ComponentProvider::class);
}
}

View File

@ -2,20 +2,6 @@
declare(strict_types=1);
namespace OpenTelemetry\Config\SDK\Configuration;
use OpenTelemetry\API\Configuration\Config\ComponentPlugin;
/**
* A component plugin that can be used to create a component.
*
* @template T
*/
interface ComponentPlugin
{
/**
* Creates the component that is provided by this plugin.
*
* @param Context $context context used for creation
* @return T created component
*/
public function create(Context $context): mixed;
}
interface_exists(ComponentPlugin::class);

View File

@ -2,39 +2,6 @@
declare(strict_types=1);
namespace OpenTelemetry\Config\SDK\Configuration;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
use Symfony\Component\Config\Definition\Builder\NodeBuilder;
/**
* A component provider is responsible for interpreting configuration and returning an
* implementation of a particular type.
*
* @template T
*/
interface ComponentProvider
{
/**
* @param array $properties properties provided for this component provider
* @param Context $context context that should be used to resolve component plugins
* @return T created component, typehint has to specify the component type that is
* provided by this component provider
*
* @see ComponentPlugin::create()
*/
public function createPlugin(array $properties, Context $context): mixed;
/**
* Returns an array node describing the properties of this component provider.
*
* @param ComponentProviderRegistry $registry registry containing all available component providers
* @param NodeBuilder $builder node builder used to create configuration nodes
* @return ArrayNodeDefinition array node describing the properties
*
* @see ComponentProviderRegistry::component()
* @see ComponentProviderRegistry::componentList()
* @see ComponentProviderRegistry::componentNames()
*/
public function getConfig(ComponentProviderRegistry $registry, NodeBuilder $builder): ArrayNodeDefinition;
}
interface_exists(ComponentProvider::class);

View File

@ -2,86 +2,6 @@
declare(strict_types=1);
namespace OpenTelemetry\Config\SDK\Configuration;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
use Symfony\Component\Config\Definition\Builder\NodeDefinition;
/**
* A registry of component providers.
*/
interface ComponentProviderRegistry
{
/**
* Creates a node to specify a component plugin.
*
* `$name: ?ComponentPlugin<$type>`
*
* ```
* $name:
* provider1:
* property: value
* anotherProperty: value
* ```
*
* @param string $name name of configuration node
* @param string $type type of the component plugin
*/
public function component(string $name, string $type): NodeDefinition;
/**
* Creates a node to specify a list of component plugin.
*
* `$name: list<ComponentPlugin<$type>>`
*
* ```
* $name:
* provider1:
* property: value
* anotherProperty: value
* provider2:
* property: value
* anotherProperty: value
* ```
*
* @param string $name name of configuration node
* @param string $type type of the component plugin
*/
public function componentList(string $name, string $type): ArrayNodeDefinition;
/**
* Creates a node to specify a map of component plugins.
*
* `$name: list<ComponentPlugin<$type>>`
*
* ```
* $name:
* provider1:
* property: value
* anotherProperty: value
* provider2:
* property: value
* anotherProperty: value
* ```
*
* @param string $name name of configuration node
* @param string $type type of the component plugin
*/
public function componentMap(string $name, string $type): ArrayNodeDefinition;
/**
* Creates a node to specify a list of component plugin names.
*
* The providers cannot have required properties.
*
* `$name: list<ComponentPlugin<$type>>`
*
* ```
* $name: [provider1, provider2]
* ```
*
* @param string $name name of configuration node
* @param string $type type of the component plugin
*/
public function componentNames(string $name, string $type): ArrayNodeDefinition;
}
interface_exists(ComponentProviderRegistry::class);

View File

@ -8,6 +8,8 @@ use function class_exists;
use Exception;
use function getcwd;
use function is_file;
use OpenTelemetry\API\Configuration\Config\ComponentPlugin;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\Environment\EnvReader;
use OpenTelemetry\Config\SDK\Configuration\Environment\EnvResourceChecker;
use OpenTelemetry\Config\SDK\Configuration\Internal\CompiledConfigurationFactory;

View File

@ -2,29 +2,6 @@
declare(strict_types=1);
namespace OpenTelemetry\Config\SDK\Configuration;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\API\Metrics\MeterProviderInterface;
use OpenTelemetry\API\Metrics\Noop\NoopMeterProvider;
use OpenTelemetry\API\Trace\NoopTracerProvider;
use OpenTelemetry\API\Trace\TracerProviderInterface;
use Psr\Log\LoggerInterface;
use Psr\Log\NullLogger;
/**
* Context used for component creation.
*/
final class Context
{
/**
* @param TracerProviderInterface $tracerProvider tracer provider to use for self diagnostics
* @param MeterProviderInterface $meterProvider meter provider to use for self diagnostics
* @param LoggerInterface $logger logger to use for self diagnostics
*/
public function __construct(
public readonly TracerProviderInterface $tracerProvider = new NoopTracerProvider(),
public readonly MeterProviderInterface $meterProvider = new NoopMeterProvider(),
public readonly LoggerInterface $logger = new NullLogger(),
) {
}
}
class_exists(Context::class);

View File

@ -4,7 +4,7 @@ declare(strict_types=1);
namespace OpenTelemetry\Config\SDK\Configuration\Internal;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use Symfony\Component\Config\Definition\Exception\InvalidConfigurationException;
use Symfony\Component\Config\Definition\NodeInterface;
use Symfony\Component\Config\Definition\Processor;

View File

@ -4,16 +4,16 @@ declare(strict_types=1);
namespace OpenTelemetry\Config\SDK\Configuration\Internal;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Context;
/**
* @template T
* @implements \OpenTelemetry\Config\SDK\Configuration\ComponentPlugin<T>
* @implements \OpenTelemetry\API\Configuration\Config\ComponentPlugin<T>
*
* @internal
*/
final class ComponentPlugin implements \OpenTelemetry\Config\SDK\Configuration\ComponentPlugin
final class ComponentPlugin implements \OpenTelemetry\API\Configuration\Config\ComponentPlugin
{
/**
* @param array $properties resolved properties according to component provider config

View File

@ -11,7 +11,7 @@ use function count;
use function implode;
use InvalidArgumentException;
use LogicException;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ResourceCollection;
use OpenTelemetry\Config\SDK\Configuration\Validation;
use ReflectionClass;
@ -30,7 +30,7 @@ use Symfony\Component\Config\Definition\Processor;
/**
* @internal
*/
final class ComponentProviderRegistry implements \OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry, ResourceTrackable
final class ComponentProviderRegistry implements \OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry, ResourceTrackable
{
/** @var iterable iterable<Normalization> */
private readonly iterable $normalizations;

View File

@ -4,7 +4,7 @@ declare(strict_types=1);
namespace OpenTelemetry\Config\SDK\Configuration\Internal;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
use Symfony\Component\Config\Definition\NodeInterface;

View File

@ -5,12 +5,12 @@ declare(strict_types=1);
namespace OpenTelemetry\Config\SDK;
use Nevay\SPI\ServiceLoader;
use OpenTelemetry\API\Configuration\Config\ComponentPlugin;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\API\Instrumentation\AutoInstrumentation\ConfigurationRegistry;
use OpenTelemetry\Config\SDK\ComponentProvider\InstrumentationConfigurationRegistry;
use OpenTelemetry\Config\SDK\Configuration\ComponentPlugin;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ConfigurationFactory;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\Config\SDK\Configuration\Environment\EnvSourceReader;
use OpenTelemetry\Config\SDK\Configuration\Environment\PhpIniEnvSource;
use OpenTelemetry\Config\SDK\Configuration\Environment\ServerEnvSource;
@ -51,7 +51,7 @@ final class Instrumentation
static $factory;
return $factory ??= new ConfigurationFactory(
ServiceLoader::load(ComponentProvider::class),
self::loadComponentProviders(),
new InstrumentationConfigurationRegistry(),
new EnvSourceReader([
new ServerEnvSource(),
@ -59,4 +59,12 @@ final class Instrumentation
]),
);
}
private static function loadComponentProviders(): iterable
{
yield from ServiceLoader::load(ComponentProvider::class);
/** @phpstan-ignore-next-line */
yield from ServiceLoader::load(Configuration\ComponentProvider::class);
}
}

View File

@ -35,7 +35,7 @@ use OpenTelemetry\Config\SDK\ComponentProvider\Trace\SpanExporterOtlpHttp;
use OpenTelemetry\Config\SDK\ComponentProvider\Trace\SpanExporterZipkin;
use OpenTelemetry\Config\SDK\ComponentProvider\Trace\SpanProcessorBatch;
use OpenTelemetry\Config\SDK\ComponentProvider\Trace\SpanProcessorSimple;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
ServiceLoader::register(ComponentProvider::class, TextMapPropagatorB3::class);
ServiceLoader::register(ComponentProvider::class, TextMapPropagatorB3Multi::class);

View File

@ -18,15 +18,13 @@
],
"require": {
"php": "^8.2",
"open-telemetry/context": "^1.0|^2.0",
"open-telemetry/sdk": "^1.0|^2.0",
"open-telemetry/api": "~1.4.0",
"open-telemetry/context": "^1.0",
"open-telemetry/sdk": "^1.0",
"symfony/config": "^6.4 || ^7.0",
"tbachert/spi": "^1.0.1"
},
"autoload": {
"files": [
"_register.php"
],
"psr-4": {
"OpenTelemetry\\Config\\SDK\\": ""
}
@ -42,8 +40,54 @@
"dev-2.x": "2.x-dev"
},
"spi-config": {
"autoload-files": true,
"prune-autoload-files": true
"autoload-files": true,
"prune-autoload-files": true
},
"spi": {
"OpenTelemetry\\API\\Configuration\\Config\\ComponentProvider": [
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Propagator\\TextMapPropagatorB3",
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Propagator\\TextMapPropagatorB3Multi",
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Propagator\\TextMapPropagatorBaggage",
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Propagator\\TextMapPropagatorComposite",
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Propagator\\TextMapPropagatorJaeger",
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Propagator\\TextMapPropagatorTraceContext",
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Trace\\SamplerAlwaysOff",
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Trace\\SamplerAlwaysOn",
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Trace\\SamplerParentBased",
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Trace\\SamplerTraceIdRatioBased",
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Trace\\SpanExporterConsole",
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Trace\\SpanExporterMemory",
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Trace\\SpanExporterOtlpFile",
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Trace\\SpanExporterOtlpGrpc",
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Trace\\SpanExporterOtlpHttp",
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Trace\\SpanExporterZipkin",
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Trace\\SpanProcessorBatch",
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Trace\\SpanProcessorSimple",
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Metrics\\AggregationResolverDefault",
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Metrics\\MetricExporterConsole",
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Metrics\\MetricExporterMemory",
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Metrics\\MetricExporterOtlpFile",
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Metrics\\MetricExporterOtlpGrpc",
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Metrics\\MetricExporterOtlpHttp",
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Metrics\\MetricReaderPeriodic",
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Logs\\LogRecordExporterConsole",
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Logs\\LogRecordExporterMemory",
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Logs\\LogRecordExporterOtlpFile",
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Logs\\LogRecordExporterOtlpGrpc",
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Logs\\LogRecordExporterOtlpHttp",
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Logs\\LogRecordProcessorBatch",
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Logs\\LogRecordProcessorSimple",
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Detector\\Composer",
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Detector\\Host",
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Detector\\Process",
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Instrumentation\\General\\HttpConfigProvider",
"OpenTelemetry\\Config\\SDK\\ComponentProvider\\Instrumentation\\General\\PeerConfigProvider"
]
}
}
}

View File

@ -0,0 +1,80 @@
<?php
declare(strict_types=1);
namespace OpenTelemetry\SDK\Common\Configuration;
use function array_map;
use function implode;
use InvalidArgumentException;
use LogicException;
use OpenTelemetry\API\Configuration\ConfigEnv\EnvComponentLoader;
use OpenTelemetry\API\Configuration\ConfigEnv\EnvResolver;
use OpenTelemetry\API\Configuration\Context;
use ReflectionIntersectionType;
use ReflectionMethod;
use ReflectionNamedType;
use ReflectionType;
use ReflectionUnionType;
use function sprintf;
/**
* @internal
*/
final class EnvComponentLoaderRegistry implements \OpenTelemetry\API\Configuration\ConfigEnv\EnvComponentLoaderRegistry
{
/**
* @var array<string, array<string, EnvComponentLoader>>
*/
private array $loaders = [];
public function register(EnvComponentLoader $loader): EnvComponentLoaderRegistry
{
$name = $loader->name();
$type = self::loadType($loader);
if (isset($this->loaders[$type][$name])) {
throw new LogicException(sprintf('Duplicate environment loader registered for "%s" "%s"', $type, $name));
}
$this->loaders[$type][$name] = $loader;
return $this;
}
public function load(string $type, string $name, EnvResolver $env, Context $context): mixed
{
if (!$loader = $this->loaders[$type][$name] ?? null) {
throw new InvalidArgumentException(sprintf('Loader for %s %s not found', $type, $name));
}
return $loader->load($env, $this, $context);
}
public function loadAll(string $type, EnvResolver $env, Context $context): iterable
{
foreach ($this->loaders[$type] ?? [] as $loader) {
yield $loader->load($env, $this, $context);
}
}
private static function loadType(EnvComponentLoader $loader): string
{
/** @noinspection PhpUnhandledExceptionInspection */
if ($returnType = (new ReflectionMethod($loader, 'load'))->getReturnType()) {
return self::typeToString($returnType);
}
return 'mixed';
}
/** @phan-suppress PhanUndeclaredMethod */
private static function typeToString(ReflectionType $type): string
{
/** @phpstan-ignore-next-line */
return match ($type::class) {
ReflectionNamedType::class => $type->getName(),
ReflectionUnionType::class => implode('|', array_map(self::typeToString(...), $type->getTypes())),
ReflectionIntersectionType::class => implode('&', array_map(self::typeToString(...), $type->getTypes())),
};
}
}

View File

@ -0,0 +1,94 @@
<?php
declare(strict_types=1);
namespace OpenTelemetry\SDK\Common\Configuration;
use function in_array;
/**
* @internal
*/
final class EnvResolver implements \OpenTelemetry\API\Configuration\ConfigEnv\EnvResolver
{
public function string(string $name): ?string
{
if (!Configuration::has($name)) {
return null;
}
return Configuration::getString($name);
}
public function enum(string $name, array $values): ?string
{
if (!Configuration::has($name)) {
return null;
}
$value = Configuration::getEnum($name);
if (!in_array($value, $values, true)) {
return null;
}
return $value;
}
public function bool(string $name): ?bool
{
if (!Configuration::has($name)) {
return null;
}
return Configuration::getBoolean($name);
}
public function int(string $name, ?int $min = 0, ?int $max = ~(-1 << 31)): int|null
{
if (!Configuration::has($name)) {
return null;
}
$value = Configuration::getInt($name);
if ($value < $min || $value > $max) {
return null;
}
return $value;
}
public function numeric(string $name, float|int|null $min = 0, float|int|null $max = ~(-1 << 31)): float|int|null
{
if (!Configuration::has($name)) {
return null;
}
$value = Configuration::getFloat($name);
if ($value < $min || $value > $max) {
return null;
}
return $value;
}
public function list(string $name): ?array
{
if (!Configuration::has($name)) {
return null;
}
/** @var list<string> $value */
$value = Configuration::getList($name);
return $value;
}
public function map(string $name): ?array
{
if (!Configuration::has($name)) {
return null;
}
return Configuration::getMap($name);
}
}

View File

@ -4,14 +4,19 @@ declare(strict_types=1);
namespace OpenTelemetry\SDK;
use function class_exists;
use Nevay\SPI\ServiceLoader;
use OpenTelemetry\API\Behavior\LogsMessagesTrait;
use OpenTelemetry\API\Configuration\Noop\NoopConfigProperties;
use OpenTelemetry\API\Configuration\ConfigEnv\EnvComponentLoader;
use OpenTelemetry\API\Configuration\ConfigProperties;
use OpenTelemetry\API\Globals;
use OpenTelemetry\API\Instrumentation\AutoInstrumentation\ConfigurationRegistry;
use OpenTelemetry\API\Instrumentation\AutoInstrumentation\Context as InstrumentationContext;
use OpenTelemetry\API\Instrumentation\AutoInstrumentation\GeneralInstrumentationConfiguration;
use OpenTelemetry\API\Instrumentation\AutoInstrumentation\HookManager;
use OpenTelemetry\API\Instrumentation\AutoInstrumentation\HookManagerInterface;
use OpenTelemetry\API\Instrumentation\AutoInstrumentation\Instrumentation;
use OpenTelemetry\API\Instrumentation\AutoInstrumentation\InstrumentationConfiguration;
use OpenTelemetry\API\Instrumentation\AutoInstrumentation\NoopHookManager;
use OpenTelemetry\API\Instrumentation\Configurator;
use OpenTelemetry\API\Logs\LateBindingLoggerProvider;
@ -25,6 +30,8 @@ use OpenTelemetry\Config\SDK\Instrumentation as SdkInstrumentation;
use OpenTelemetry\Context\Context;
use OpenTelemetry\Context\Propagation\TextMapPropagatorInterface;
use OpenTelemetry\SDK\Common\Configuration\Configuration;
use OpenTelemetry\SDK\Common\Configuration\EnvComponentLoaderRegistry;
use OpenTelemetry\SDK\Common\Configuration\EnvResolver;
use OpenTelemetry\SDK\Common\Configuration\Variables;
use OpenTelemetry\SDK\Common\Util\ShutdownHandler;
use OpenTelemetry\SDK\Logs\EventLoggerProviderFactory;
@ -150,10 +157,10 @@ class SdkAutoloader
$files = Configuration::has(Variables::OTEL_EXPERIMENTAL_CONFIG_FILE)
? Configuration::getList(Variables::OTEL_EXPERIMENTAL_CONFIG_FILE)
: [];
if (class_exists(SdkInstrumentation::class)) {
if (class_exists(SdkInstrumentation::class) && $files) {
$configuration = SdkInstrumentation::parseFile($files)->create();
} else {
$configuration = new NoopConfigProperties();
$configuration = self::loadConfigPropertiesFromEnv();
}
$hookManager = self::getHookManager();
$tracerProvider = self::createLateBindingTracerProvider();
@ -172,6 +179,27 @@ class SdkAutoloader
}
}
private static function loadConfigPropertiesFromEnv(): ConfigProperties
{
$loaderRegistry = new EnvComponentLoaderRegistry();
foreach (ServiceLoader::load(EnvComponentLoader::class) as $loader) {
$loaderRegistry->register($loader);
}
$env = new EnvResolver();
$context = new \OpenTelemetry\API\Configuration\Context();
$configuration = new ConfigurationRegistry();
foreach ($loaderRegistry->loadAll(GeneralInstrumentationConfiguration::class, $env, $context) as $instrumentation) {
$configuration->add($instrumentation);
}
foreach ($loaderRegistry->loadAll(InstrumentationConfiguration::class, $env, $context) as $instrumentation) {
$configuration->add($instrumentation);
}
return $configuration;
}
private static function createLateBindingTracerProvider(): TracerProviderInterface
{
return new LateBindingTracerProvider(static function (): TracerProviderInterface {

View File

@ -17,11 +17,11 @@
}
],
"require": {
"php": "^8.2",
"php": "^8.1",
"ext-json": "*",
"nyholm/psr7-server": "^1.1",
"open-telemetry/api": "^1.0|^2.0",
"open-telemetry/context": "^1.0|^2.0",
"open-telemetry/api": "~1.4.0",
"open-telemetry/context": "^1.0",
"open-telemetry/sem-conv": "^1.0",
"php-http/discovery": "^1.14",
"psr/http-client-implementation": "^1.0",
@ -31,6 +31,7 @@
"psr/log": "^1.1|^2.0|^3.0",
"ramsey/uuid": "^3.0 || ^4.0",
"symfony/polyfill-mbstring": "^1.23",
"symfony/polyfill-php82": "^1.26",
"tbachert/spi": "^1.0.1"
},
"autoload": {
@ -55,10 +56,19 @@
"dev-2.x": "2.x-dev"
},
"spi-config": {
"autoload-files": [
"_register.php"
"autoload-files": [
"_register.php"
],
"prune-autoload-files": true
},
"spi": {
"OpenTelemetry\\API\\Instrumentation\\AutoInstrumentation\\HookManagerInterface": [
"OpenTelemetry\\API\\Instrumentation\\AutoInstrumentation\\ExtensionHookManager"
],
"prune-autoload-files": true
"OpenTelemetry\\API\\Configuration\\ConfigEnv\\EnvComponentLoader": [
"OpenTelemetry\\API\\Instrumentation\\Configuration\\General\\ConfigEnv\\EnvComponentLoaderHttpConfig",
"OpenTelemetry\\API\\Instrumentation\\Configuration\\General\\ConfigEnv\\EnvComponentLoaderPeerConfig"
]
}
}
}

View File

@ -532,12 +532,19 @@ interface ResourceAttributeValues
public const OS_TYPE_SOLARIS = 'solaris';
/**
* IBM z/OS
* Deprecated. Use `zos` instead.
*
* @see ResourceAttributes::OS_TYPE
*/
public const OS_TYPE_Z_OS = 'z_os';
/**
* IBM z/OS
*
* @see ResourceAttributes::OS_TYPE
*/
public const OS_TYPE_ZOS = 'zos';
/**
* cpp
*
@ -622,4 +629,18 @@ interface ResourceAttributeValues
*/
public const TELEMETRY_SDK_LANGUAGE_WEBJS = 'webjs';
/**
* [branch](https://git-scm.com/docs/gitglossary#Documentation/gitglossary.txt-aiddefbranchabranch)
*
* @see ResourceAttributes::VCS_REF_TYPE
*/
public const VCS_REF_TYPE_BRANCH = 'branch';
/**
* [tag](https://git-scm.com/docs/gitglossary#Documentation/gitglossary.txt-aiddeftagatag)
*
* @see ResourceAttributes::VCS_REF_TYPE
*/
public const VCS_REF_TYPE_TAG = 'tag';
}

View File

@ -132,6 +132,36 @@ interface ResourceAttributes
*/
public const BROWSER_PLATFORM = 'browser.platform';
/**
* The human readable name of the pipeline within a CI/CD system.
*/
public const CICD_PIPELINE_NAME = 'cicd.pipeline.name';
/**
* The unique identifier of a pipeline run within a CI/CD system.
*/
public const CICD_PIPELINE_RUN_ID = 'cicd.pipeline.run.id';
/**
* The [URL](https://wikipedia.org/wiki/URL) of the pipeline run, providing the complete address in order to locate and identify the pipeline run.
*/
public const CICD_PIPELINE_RUN_URL_FULL = 'cicd.pipeline.run.url.full';
/**
* The unique identifier of a worker within a CICD system.
*/
public const CICD_WORKER_ID = 'cicd.worker.id';
/**
* The name of a worker within a CICD system.
*/
public const CICD_WORKER_NAME = 'cicd.worker.name';
/**
* The [URL](https://wikipedia.org/wiki/URL) of the worker, providing the complete address in order to locate and identify the worker.
*/
public const CICD_WORKER_URL_FULL = 'cicd.worker.url.full';
/**
* The cloud account ID the resource is assigned to.
*/
@ -157,7 +187,7 @@ interface ResourceAttributes
public const CLOUD_PROVIDER = 'cloud.provider';
/**
* The geographical region the resource is running.
* The geographical region within a cloud provider. When associated with a resource, this attribute specifies the region where the resource operates. When calling services or APIs deployed on a cloud, this attribute identifies the region where the called destination is deployed.
*
* Refer to your provider's docs to see the available regions, for example [Alibaba Cloud regions](https://www.alibabacloud.com/help/doc-detail/40654.htm), [AWS regions](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/), [Azure regions](https://azure.microsoft.com/global-infrastructure/geographies/), [Google Cloud regions](https://cloud.google.com/about/locations), or [Tencent Cloud regions](https://www.tencentcloud.com/document/product/213/6091).
*/
@ -377,7 +407,7 @@ interface ResourceAttributes
* > [!WARNING]> This attribute may contain sensitive (PII) information. Caution should be taken when storing personal data or anything which can identify a user. GDPR and data protection laws may apply,
* > ensure you do your own due diligence.> Due to these reasons, this identifier is not recommended for consumer applications and will likely result in rejection from both Google Play and App Store.
* > However, it may be appropriate for specific enterprise scenarios, such as kiosk devices or enterprise-managed devices, with appropriate compliance clearance.
* > Any instrumentation providing this identifier MUST implement it as an opt-in feature.> See [`app.installation.id`](/docs/attributes-registry/app.md#app-installation-id)> for a more privacy-preserving alternative.
* > Any instrumentation providing this identifier MUST implement it as an opt-in feature.> See [`app.installation.id`](/docs/registry/attributes/app.md#app-installation-id)> for a more privacy-preserving alternative.
*/
public const DEVICE_ID = 'device.id';
@ -782,6 +812,27 @@ interface ResourceAttributes
*/
public const K8S_HPA_NAME = 'k8s.hpa.name';
/**
* The API version of the target resource to scale for the HorizontalPodAutoscaler.
*
* This maps to the `apiVersion` field in the `scaleTargetRef` of the HPA spec.
*/
public const K8S_HPA_SCALETARGETREF_API_VERSION = 'k8s.hpa.scaletargetref.api_version';
/**
* The kind of the target resource to scale for the HorizontalPodAutoscaler.
*
* This maps to the `kind` field in the `scaleTargetRef` of the HPA spec.
*/
public const K8S_HPA_SCALETARGETREF_KIND = 'k8s.hpa.scaletargetref.kind';
/**
* The name of the target resource to scale for the HorizontalPodAutoscaler.
*
* This maps to the `name` field in the `scaleTargetRef` of the HPA spec.
*/
public const K8S_HPA_SCALETARGETREF_NAME = 'k8s.hpa.scaletargetref.name';
/**
* The UID of the horizontal pod autoscaler.
*/
@ -970,6 +1021,11 @@ interface ResourceAttributes
*/
public const K8S_STATEFULSET_UID = 'k8s.statefulset.uid';
/**
* Name of the logical partition that hosts a systems with a mainframe operating system.
*/
public const MAINFRAME_LPAR_NAME = 'mainframe.lpar.name';
/**
* The digest of the OCI image manifest. For container images specifically is the digest by which the container image is known.
*
@ -1026,12 +1082,12 @@ interface ResourceAttributes
public const PROCESS_COMMAND = 'process.command';
/**
* All the command arguments (including the command/executable itself) as received by the process. On Linux-based systems (and some other Unixoid systems supporting procfs), can be set according to the list of null-delimited strings extracted from `proc/[pid]/cmdline`. For libc-based executables, this would be the full argv vector passed to `main`.
* All the command arguments (including the command/executable itself) as received by the process. On Linux-based systems (and some other Unixoid systems supporting procfs), can be set according to the list of null-delimited strings extracted from `proc/[pid]/cmdline`. For libc-based executables, this would be the full argv vector passed to `main`. SHOULD NOT be collected by default unless there is sanitization that excludes sensitive data.
*/
public const PROCESS_COMMAND_ARGS = 'process.command_args';
/**
* The full command used to launch the process as a single string representing the full command. On Windows, can be set to the result of `GetCommandLineW`. Do not set this if you have to assemble it just for monitoring; use `process.command_args` instead.
* The full command used to launch the process as a single string representing the full command. On Windows, can be set to the result of `GetCommandLineW`. Do not set this if you have to assemble it just for monitoring; use `process.command_args` instead. SHOULD NOT be collected by default unless there is sanitization that excludes sensitive data.
*/
public const PROCESS_COMMAND_LINE = 'process.command_line';
@ -1173,6 +1229,53 @@ interface ResourceAttributes
*/
public const USER_AGENT_ORIGINAL = 'user_agent.original';
/**
* The name of the [reference](https://git-scm.com/docs/gitglossary#def_ref) such as **branch** or **tag** in the repository.
*
* `head` refers to where you are right now; the current reference at a
* given time.
*/
public const VCS_REF_HEAD_NAME = 'vcs.ref.head.name';
/**
* The revision, literally [revised version](https://www.merriam-webster.com/dictionary/revision), The revision most often refers to a commit object in Git, or a revision number in SVN.
*
* `head` refers to where you are right now; the current reference at a
* given time.The revision can be a full [hash value (see
* glossary)](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-5.pdf),
* of the recorded change to a ref within a repository pointing to a
* commit [commit](https://git-scm.com/docs/git-commit) object. It does
* not necessarily have to be a hash; it can simply define a [revision
* number](https://svnbook.red-bean.com/en/1.7/svn.tour.revs.specifiers.html)
* which is an integer that is monotonically increasing. In cases where
* it is identical to the `ref.head.name`, it SHOULD still be included.
* It is up to the implementer to decide which value to set as the
* revision based on the VCS system and situational context.
*/
public const VCS_REF_HEAD_REVISION = 'vcs.ref.head.revision';
/**
* The type of the [reference](https://git-scm.com/docs/gitglossary#def_ref) in the repository.
*/
public const VCS_REF_TYPE = 'vcs.ref.type';
/**
* The human readable name of the repository. It SHOULD NOT include any additional identifier like Group/SubGroup in GitLab or organization in GitHub.
*
* Due to it only being the name, it can clash with forks of the same
* repository if collecting telemetry across multiple orgs or groups in
* the same backends.
*/
public const VCS_REPOSITORY_NAME = 'vcs.repository.name';
/**
* The [canonical URL](https://support.google.com/webmasters/answer/10347851?hl=en#:~:text=A%20canonical%20URL%20is%20the,Google%20chooses%20one%20as%20canonical.) of the repository providing the complete HTTP(S) address in order to locate and identify the repository through a browser.
*
* In Git Version Control Systems, the canonical URL SHOULD NOT include
* the `.git` extension.
*/
public const VCS_REPOSITORY_URL_FULL = 'vcs.repository.url.full';
/**
* Additional description of the web engine (e.g. detailed version and edition information).
*/
@ -1188,4 +1291,14 @@ interface ResourceAttributes
*/
public const WEBENGINE_VERSION = 'webengine.version';
/**
* The System Management Facility (SMF) Identifier uniquely identified a z/OS system within a SYSPLEX or mainframe environment and is used for system and performance analysis.
*/
public const ZOS_SMF_ID = 'zos.smf.id';
/**
* The name of the SYSPLEX to which the z/OS system belongs too.
*/
public const ZOS_SYSPLEX_NAME = 'zos.sysplex.name';
}

View File

@ -12,6 +12,48 @@ interface TraceAttributeValues
* The URL of the OpenTelemetry schema for these values.
*/
public const SCHEMA_URL = 'https://opentelemetry.io/schemas/1.32.0';
/**
* Any time before Activity.onResume() or, if the app has no Activity, Context.startService() has been called in the app for the first time.
*
* @see TraceAttributes::ANDROID_APP_STATE
*/
public const ANDROID_APP_STATE_CREATED = 'created';
/**
* Any time after Activity.onPause() or, if the app has no Activity, Context.stopService() has been called when the app was in the foreground state.
*
* @see TraceAttributes::ANDROID_APP_STATE
*/
public const ANDROID_APP_STATE_BACKGROUND = 'background';
/**
* Any time after Activity.onResume() or, if the app has no Activity, Context.startService() has been called when the app was in either the created or background states.
*
* @see TraceAttributes::ANDROID_APP_STATE
*/
public const ANDROID_APP_STATE_FOREGROUND = 'foreground';
/**
* Any time before Activity.onResume() or, if the app has no Activity, Context.startService() has been called in the app for the first time.
*
* @see TraceAttributes::ANDROID_STATE
*/
public const ANDROID_STATE_CREATED = 'created';
/**
* Any time after Activity.onPause() or, if the app has no Activity, Context.stopService() has been called when the app was in the foreground state.
*
* @see TraceAttributes::ANDROID_STATE
*/
public const ANDROID_STATE_BACKGROUND = 'background';
/**
* Any time after Activity.onResume() or, if the app has no Activity, Context.startService() has been called when the app was in either the created or background states.
*
* @see TraceAttributes::ANDROID_STATE
*/
public const ANDROID_STATE_FOREGROUND = 'foreground';
/**
* Exception was handled by the exception handling middleware.
*
@ -222,6 +264,27 @@ interface TraceAttributeValues
*/
public const CASSANDRA_CONSISTENCY_LEVEL_LOCAL_SERIAL = 'local_serial';
/**
* The pipeline run is executing a build.
*
* @see TraceAttributes::CICD_PIPELINE_ACTION_NAME
*/
public const CICD_PIPELINE_ACTION_NAME_BUILD = 'BUILD';
/**
* The pipeline run is executing.
*
* @see TraceAttributes::CICD_PIPELINE_ACTION_NAME
*/
public const CICD_PIPELINE_ACTION_NAME_RUN = 'RUN';
/**
* The pipeline run is executing a sync.
*
* @see TraceAttributes::CICD_PIPELINE_ACTION_NAME
*/
public const CICD_PIPELINE_ACTION_NAME_SYNC = 'SYNC';
/**
* The pipeline run finished successfully.
*
@ -285,6 +348,48 @@ interface TraceAttributeValues
*/
public const CICD_PIPELINE_RUN_STATE_FINALIZING = 'finalizing';
/**
* The task run finished successfully.
*
* @see TraceAttributes::CICD_PIPELINE_TASK_RUN_RESULT
*/
public const CICD_PIPELINE_TASK_RUN_RESULT_SUCCESS = 'success';
/**
* The task run did not finish successfully, eg. due to a compile error or a failing test. Such failures are usually detected by non-zero exit codes of the tools executed in the task run.
*
* @see TraceAttributes::CICD_PIPELINE_TASK_RUN_RESULT
*/
public const CICD_PIPELINE_TASK_RUN_RESULT_FAILURE = 'failure';
/**
* The task run failed due to an error in the CICD system, eg. due to the worker being killed.
*
* @see TraceAttributes::CICD_PIPELINE_TASK_RUN_RESULT
*/
public const CICD_PIPELINE_TASK_RUN_RESULT_ERROR = 'error';
/**
* A timeout caused the task run to be interrupted.
*
* @see TraceAttributes::CICD_PIPELINE_TASK_RUN_RESULT
*/
public const CICD_PIPELINE_TASK_RUN_RESULT_TIMEOUT = 'timeout';
/**
* The task run was cancelled, eg. by a user manually cancelling the task run.
*
* @see TraceAttributes::CICD_PIPELINE_TASK_RUN_RESULT
*/
public const CICD_PIPELINE_TASK_RUN_RESULT_CANCELLATION = 'cancellation';
/**
* The task run was skipped, eg. due to a precondition not being met.
*
* @see TraceAttributes::CICD_PIPELINE_TASK_RUN_RESULT
*/
public const CICD_PIPELINE_TASK_RUN_RESULT_SKIP = 'skip';
/**
* build
*
@ -670,6 +775,27 @@ interface TraceAttributeValues
*/
public const CPU_MODE_KERNEL = 'kernel';
/**
* Generation 0
*
* @see TraceAttributes::CPYTHON_GC_GENERATION
*/
public const CPYTHON_GC_GENERATION_GENERATION_0 = '0';
/**
* Generation 1
*
* @see TraceAttributes::CPYTHON_GC_GENERATION
*/
public const CPYTHON_GC_GENERATION_GENERATION_1 = '1';
/**
* Generation 2
*
* @see TraceAttributes::CPYTHON_GC_GENERATION
*/
public const CPYTHON_GC_GENERATION_GENERATION_2 = '2';
/**
* all
*
@ -2484,6 +2610,76 @@ interface TraceAttributeValues
*/
public const HTTP_REQUEST_METHOD_OTHER = '_OTHER';
/**
* The app has become `active`. Associated with UIKit notification `applicationDidBecomeActive`.
*
* @see TraceAttributes::IOS_APP_STATE
*/
public const IOS_APP_STATE_ACTIVE = 'active';
/**
* The app is now `inactive`. Associated with UIKit notification `applicationWillResignActive`.
*
* @see TraceAttributes::IOS_APP_STATE
*/
public const IOS_APP_STATE_INACTIVE = 'inactive';
/**
* The app is now in the background. This value is associated with UIKit notification `applicationDidEnterBackground`.
*
* @see TraceAttributes::IOS_APP_STATE
*/
public const IOS_APP_STATE_BACKGROUND = 'background';
/**
* The app is now in the foreground. This value is associated with UIKit notification `applicationWillEnterForeground`.
*
* @see TraceAttributes::IOS_APP_STATE
*/
public const IOS_APP_STATE_FOREGROUND = 'foreground';
/**
* The app is about to terminate. Associated with UIKit notification `applicationWillTerminate`.
*
* @see TraceAttributes::IOS_APP_STATE
*/
public const IOS_APP_STATE_TERMINATE = 'terminate';
/**
* The app has become `active`. Associated with UIKit notification `applicationDidBecomeActive`.
*
* @see TraceAttributes::IOS_STATE
*/
public const IOS_STATE_ACTIVE = 'active';
/**
* The app is now `inactive`. Associated with UIKit notification `applicationWillResignActive`.
*
* @see TraceAttributes::IOS_STATE
*/
public const IOS_STATE_INACTIVE = 'inactive';
/**
* The app is now in the background. This value is associated with UIKit notification `applicationDidEnterBackground`.
*
* @see TraceAttributes::IOS_STATE
*/
public const IOS_STATE_BACKGROUND = 'background';
/**
* The app is now in the foreground. This value is associated with UIKit notification `applicationWillEnterForeground`.
*
* @see TraceAttributes::IOS_STATE
*/
public const IOS_STATE_FOREGROUND = 'foreground';
/**
* The app is about to terminate. Associated with UIKit notification `applicationWillTerminate`.
*
* @see TraceAttributes::IOS_STATE
*/
public const IOS_STATE_TERMINATE = 'terminate';
/**
* Heap memory.
*
@ -2540,6 +2736,90 @@ interface TraceAttributeValues
*/
public const JVM_THREAD_STATE_TERMINATED = 'terminated';
/**
* The container is being created.
*
* @see TraceAttributes::K8S_CONTAINER_STATUS_REASON
*/
public const K8S_CONTAINER_STATUS_REASON_CONTAINER_CREATING = 'ContainerCreating';
/**
* The container is in a crash loop back off state.
*
* @see TraceAttributes::K8S_CONTAINER_STATUS_REASON
*/
public const K8S_CONTAINER_STATUS_REASON_CRASH_LOOP_BACK_OFF = 'CrashLoopBackOff';
/**
* There was an error creating the container configuration.
*
* @see TraceAttributes::K8S_CONTAINER_STATUS_REASON
*/
public const K8S_CONTAINER_STATUS_REASON_CREATE_CONTAINER_CONFIG_ERROR = 'CreateContainerConfigError';
/**
* There was an error pulling the container image.
*
* @see TraceAttributes::K8S_CONTAINER_STATUS_REASON
*/
public const K8S_CONTAINER_STATUS_REASON_ERR_IMAGE_PULL = 'ErrImagePull';
/**
* The container image pull is in back off state.
*
* @see TraceAttributes::K8S_CONTAINER_STATUS_REASON
*/
public const K8S_CONTAINER_STATUS_REASON_IMAGE_PULL_BACK_OFF = 'ImagePullBackOff';
/**
* The container was killed due to out of memory.
*
* @see TraceAttributes::K8S_CONTAINER_STATUS_REASON
*/
public const K8S_CONTAINER_STATUS_REASON_OOM_KILLED = 'OOMKilled';
/**
* The container has completed execution.
*
* @see TraceAttributes::K8S_CONTAINER_STATUS_REASON
*/
public const K8S_CONTAINER_STATUS_REASON_COMPLETED = 'Completed';
/**
* There was an error with the container.
*
* @see TraceAttributes::K8S_CONTAINER_STATUS_REASON
*/
public const K8S_CONTAINER_STATUS_REASON_ERROR = 'Error';
/**
* The container cannot run.
*
* @see TraceAttributes::K8S_CONTAINER_STATUS_REASON
*/
public const K8S_CONTAINER_STATUS_REASON_CONTAINER_CANNOT_RUN = 'ContainerCannotRun';
/**
* The container has terminated.
*
* @see TraceAttributes::K8S_CONTAINER_STATUS_STATE
*/
public const K8S_CONTAINER_STATUS_STATE_TERMINATED = 'terminated';
/**
* The container is running.
*
* @see TraceAttributes::K8S_CONTAINER_STATUS_STATE
*/
public const K8S_CONTAINER_STATUS_STATE_RUNNING = 'running';
/**
* The container is waiting.
*
* @see TraceAttributes::K8S_CONTAINER_STATUS_STATE
*/
public const K8S_CONTAINER_STATUS_STATE_WAITING = 'waiting';
/**
* Active namespace phase as described by [K8s API](https://pkg.go.dev/k8s.io/api@v0.31.3/core/v1#NamespacePhase)
*
@ -3299,12 +3579,19 @@ interface TraceAttributeValues
public const OS_TYPE_SOLARIS = 'solaris';
/**
* IBM z/OS
* Deprecated. Use `zos` instead.
*
* @see TraceAttributes::OS_TYPE
*/
public const OS_TYPE_Z_OS = 'z_os';
/**
* IBM z/OS
*
* @see TraceAttributes::OS_TYPE
*/
public const OS_TYPE_ZOS = 'zos';
/**
* The builtin SDK batching span processor
*

File diff suppressed because it is too large Load Diff

View File

@ -4,9 +4,9 @@ declare(strict_types=1);
namespace OpenTelemetry\Tests\Integration\Config\ComponentProvider\Detector;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\SDK\Resource\ResourceDetectorInterface;
use OpenTelemetry\SDK\Resource\ResourceInfo;
use OpenTelemetry\SDK\Resource\ResourceInfoFactory;

View File

@ -4,9 +4,9 @@ declare(strict_types=1);
namespace OpenTelemetry\Tests\Integration\Config\ComponentProvider\Detector;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\SDK\Resource\ResourceDetectorInterface;
use OpenTelemetry\SDK\Resource\ResourceInfo;
use OpenTelemetry\SDK\Resource\ResourceInfoFactory;

View File

@ -4,9 +4,9 @@ declare(strict_types=1);
namespace OpenTelemetry\Tests\Integration\Config\ComponentProvider\Metrics;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\Config\SDK\Configuration\Validation;
use OpenTelemetry\SDK\Metrics\DefaultAggregationProviderInterface;
use OpenTelemetry\SDK\Metrics\DefaultAggregationProviderTrait;

View File

@ -4,9 +4,9 @@ declare(strict_types=1);
namespace OpenTelemetry\Tests\Integration\Config\ComponentProvider\Metrics;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\Config\SDK\Configuration\Validation;
use OpenTelemetry\SDK\Metrics\MetricExporterInterface;
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;

View File

@ -4,10 +4,10 @@ declare(strict_types=1);
namespace OpenTelemetry\Tests\Integration\Config\ComponentProvider\Metrics;
use OpenTelemetry\Config\SDK\Configuration\ComponentPlugin;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\API\Configuration\Config\ComponentPlugin;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\SDK\Metrics\MetricExporterInterface;
use OpenTelemetry\SDK\Metrics\MetricReaderInterface;
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;

View File

@ -4,9 +4,9 @@ declare(strict_types=1);
namespace OpenTelemetry\Tests\Integration\Config\ComponentProvider\Propagator;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\Context\Context as Ctx;
use OpenTelemetry\Context\ContextInterface;
use OpenTelemetry\Context\Propagation\PropagationGetterInterface;

View File

@ -4,9 +4,9 @@ declare(strict_types=1);
namespace OpenTelemetry\Tests\Integration\Config\ComponentProvider\Propagator;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\Context\Context as Ctx;
use OpenTelemetry\Context\ContextInterface;
use OpenTelemetry\Context\Propagation\PropagationGetterInterface;

View File

@ -6,10 +6,10 @@ namespace OpenTelemetry\Test\Unit\Config\SDK\Configuration;
use BadMethodCallException;
use ExampleSDK\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentPlugin;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Config\ComponentPlugin;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\Config\SDK\Configuration\ConfigurationFactory;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\Config\SDK\Configuration\Environment\ArrayEnvSource;
use OpenTelemetry\Config\SDK\Configuration\Environment\EnvSourceReader;
use OpenTelemetry\Config\SDK\Configuration\Environment\PhpIniEnvSource;
@ -48,7 +48,7 @@ final class ConfigurationFactoryTest extends TestCase
// see example https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/configuration/file-configuration.md#environment-variable-substitution
$factory = new ConfigurationFactory(
[],
new class() implements \OpenTelemetry\Config\SDK\Configuration\ComponentProvider {
new class() implements \OpenTelemetry\API\Configuration\Config\ComponentProvider {
public function createPlugin(array $properties, Context $context): mixed
{
throw new BadMethodCallException();

View File

@ -6,9 +6,9 @@ namespace ExampleSDK\ComponentProvider\Logs;
use BadMethodCallException;
use ExampleSDK\Logs\LogRecordExporter;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
use Symfony\Component\Config\Definition\Builder\NodeBuilder;

View File

@ -6,9 +6,9 @@ namespace ExampleSDK\ComponentProvider\Logs;
use BadMethodCallException;
use ExampleSDK\Logs\LogRecordExporter;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use OpenTelemetry\Config\SDK\Configuration\Validation;
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
use Symfony\Component\Config\Definition\Builder\NodeBuilder;

View File

@ -7,10 +7,10 @@ namespace ExampleSDK\ComponentProvider\Logs;
use BadMethodCallException;
use ExampleSDK\Logs\LogRecordExporter;
use ExampleSDK\Logs\LogRecordProcessor;
use OpenTelemetry\Config\SDK\Configuration\ComponentPlugin;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\API\Configuration\Config\ComponentPlugin;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
use Symfony\Component\Config\Definition\Builder\NodeBuilder;

View File

@ -7,10 +7,10 @@ namespace ExampleSDK\ComponentProvider\Logs;
use BadMethodCallException;
use ExampleSDK\Logs\LogRecordExporter;
use ExampleSDK\Logs\LogRecordProcessor;
use OpenTelemetry\Config\SDK\Configuration\ComponentPlugin;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\API\Configuration\Config\ComponentPlugin;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
use Symfony\Component\Config\Definition\Builder\NodeBuilder;

View File

@ -6,9 +6,9 @@ namespace ExampleSDK\ComponentProvider\Metrics;
use BadMethodCallException;
use ExampleSDK\Metrics\AggregationResolver;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
use Symfony\Component\Config\Definition\Builder\NodeBuilder;

View File

@ -6,9 +6,9 @@ namespace ExampleSDK\ComponentProvider\Metrics;
use BadMethodCallException;
use ExampleSDK\Metrics\AggregationResolver;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
use Symfony\Component\Config\Definition\Builder\NodeBuilder;

View File

@ -7,9 +7,9 @@ namespace ExampleSDK\ComponentProvider\Metrics;
use BadMethodCallException;
use ExampleSDK\Metrics\AggregationResolver;
use InvalidArgumentException;
use OpenTelemetry\Config\SDK\Configuration\ComponentProvider;
use OpenTelemetry\Config\SDK\Configuration\ComponentProviderRegistry;
use OpenTelemetry\Config\SDK\Configuration\Context;
use OpenTelemetry\API\Configuration\Config\ComponentProvider;
use OpenTelemetry\API\Configuration\Config\ComponentProviderRegistry;
use OpenTelemetry\API\Configuration\Context;
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
use Symfony\Component\Config\Definition\Builder\NodeBuilder;

Some files were not shown because too many files have changed in this diff Show More