public static function load()
    {
        if (!extension_loaded('opencensus')) {
            trigger_error('opencensus extension required to load Eloquent integrations.', E_USER_WARNING);
            return;
        }

        // public function getModels($columns = ['*'])
        opencensus_trace_method(Builder::class, 'getModels', function ($builder) {
            return [
                'name' => 'eloquent/get',
                'attributes' => [
                    'query' => $builder->toBase()->toSql()
                ],
                'kind' => Span::KIND_CLIENT
            ];
        });

        // protected function performInsert(Builder $query)
        opencensus_trace_method(Model::class, 'performInsert', function ($model, $query) {
            return [
                'name' => 'eloquent/insert',
                'attributes' => [
                    'query' => $query->toBase()->toSql()
                ],
                'kind' => Span::KIND_CLIENT
            ];
        });

        // protected function performUpdate(Builder $query)
        opencensus_trace_method(Model::class, 'performUpdate', function ($model, $query) {
            return [
                'name' => 'eloquent/update',
                'attributes' => [
                    'query' => $query->toBase()->toSql()
                ],
                'kind' => Span::KIND_CLIENT
            ];
        });

        // public function delete()
        opencensus_trace_method(Model::class, 'delete', function ($model) {
            return [
                'name' => 'eloquent/delete',
                'kind' => Span::KIND_CLIENT
            ];
        });
    }
public static function load()
    {
        if (!extension_loaded('opencensus')) {
            trigger_error('opencensus extension required to load Eloquent integrations.', E_USER_WARNING);
            return;
        }

        // public function getModels($columns = ['*'])
        opencensus_trace_method(Builder::class, 'getModels', function ($builder) {
            return [
                'name' => 'eloquent/get',
                'attributes' => [
                    'query' => $builder->toBase()->toSql()
                ],
                'kind' => Span::KIND_CLIENT
            ];
        });

        // protected function performInsert(Builder $query)
        opencensus_trace_method(Model::class, 'performInsert', function ($model, $query) {
            return [
                'name' => 'eloquent/insert',
                'attributes' => [
                    'query' => $query->toBase()->toSql()
                ],
                'kind' => Span::KIND_CLIENT
            ];
        });

        // protected function performUpdate(Builder $query)
        opencensus_trace_method(Model::class, 'performUpdate', function ($model, $query) {
            return [
                'name' => 'eloquent/update',
                'attributes' => [
                    'query' => $query->toBase()->toSql()
                ],
                'kind' => Span::KIND_CLIENT
            ];
        });

        // public function delete()
        opencensus_trace_method(Model::class, 'delete', function ($model) {
            return [
                'name' => 'eloquent/delete',
                'kind' => Span::KIND_CLIENT
            ];
        });
    }
public static function load ( ) { if ( ! extension_loaded ( 'opencensus' ) ) { trigger_error ( 'opencensus extension required to load Eloquent integrations.' , E_USER_WARNING ) ; return ; } // public function getModels($columns = ['*']) opencensus_trace_method ( Builder :: class , 'getModels' , function ( $ builder ) { return [ 'name' => 'eloquent/get' , 'attributes' => [ 'query' => $ builder -> toBase ( ) -> toSql ( ) ] , 'kind' => Span :: KIND_CLIENT ] ; } ) ; // protected function performInsert(Builder $query) opencensus_trace_method ( Model :: class , 'performInsert' , function ( $ model , $ query ) { return [ 'name' => 'eloquent/insert' , 'attributes' => [ 'query' => $ query -> toBase ( ) -> toSql ( ) ] , 'kind' => Span :: KIND_CLIENT ] ; } ) ; // protected function performUpdate(Builder $query) opencensus_trace_method ( Model :: class , 'performUpdate' , function ( $ model , $ query ) { return [ 'name' => 'eloquent/update' , 'attributes' => [ 'query' => $ query -> toBase ( ) -> toSql ( ) ] , 'kind' => Span :: KIND_CLIENT ] ; } ) ; // public function delete() opencensus_trace_method ( Model :: class , 'delete' , function ( $ model ) { return [ 'name' => 'eloquent/delete' , 'kind' => Span :: KIND_CLIENT ] ; } ) ; }
Static method to add instrumentation to Eloquent ORM calls
Static method to add instrumentation to Eloquent ORM calls