Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. WithSpanHandler.php

function WithSpanHandler::pre

@psalm-suppress ArgumentTypeCoercion

File

vendor/open-telemetry/api/Instrumentation/WithSpanHandler.php, line 21

Class

WithSpanHandler
Generic pre-hook and post-hook handlers for attribute-based auto instrumentation

Namespace

OpenTelemetry\API\Instrumentation

Code

public static function pre(mixed $target, array $params, ?string $class, string $function, ?string $filename, ?int $lineno, ?array $span_args = [], ?array $attributes = []) : void {
    static $instrumentation;
    $instrumentation ??= new CachedInstrumentation(name: 'io.opentelemetry.php.with-span', schemaUrl: 'https://opentelemetry.io/schemas/1.25.0');
    $name = $span_args['name'] ?? null;
    if ($name === null) {
        $name = empty($class) ? $function : sprintf('%s::%s', $class, $function);
    }
    $kind = $span_args['span_kind'] ?? SpanKind::KIND_INTERNAL;
    $span = $instrumentation->tracer()
        ->spanBuilder($name)
        ->setSpanKind($kind)
        ->setAttribute('code.function', $function)
        ->setAttribute('code.namespace', $class)
        ->setAttribute('code.filepath', $filename)
        ->setAttribute('code.lineno', $lineno)
        ->setAttributes($attributes ?? [])
        ->startSpan();
    $context = $span->storeInContext(Context::getCurrent());
    Context::storage()->attach($context);
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal