Slide 62
Slide 62 text
62
hook(
\Illuminate\Database\Eloquent\Builder::class,
'find',
pre: function ($builder, array $params, string $class, string $function, ?string $filename, ?int
$lineno) {
$model = $builder->getModel();
$builder = $this->instrumentation->tracer()
->spanBuilder($model::class . '::find')
->setSpanKind(SpanKind::KIND_INTERNAL)
->setAttribute(TraceAttributes::CODE_FUNCTION_NAME, sprintf('%s::%s', $class, $function))
…;
$parent = Context::getCurrent();
$span = $builder->startSpan();
Context::storage()->attach($span->storeInContext($parent));
return $params;
},
post: function ($builder, array $params, $result, ?Throwable $exception) {
$this->endSpan($exception);
}
)
https://github.com/open-telemetry/opentelemetry-php-contrib/blob/2b6a02f67d85f7f9
4ebc285d2c08c3523d26e093/src/Instrumentation/Laravel/src/Hooks/Illuminate/Databas
e/Eloquent/Model.php#L36-L60