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

Breadcrumb

  1. Drupal Core 11.1.x

ObservableInstrumentTrait.php

Namespace

OpenTelemetry\SDK\Metrics

File

vendor/open-telemetry/sdk/Metrics/ObservableInstrumentTrait.php

View source
<?php

declare (strict_types=1);
namespace OpenTelemetry\SDK\Metrics;

use ArrayAccess;
use function assert;
use OpenTelemetry\API\Metrics\ObservableCallbackInterface;
use OpenTelemetry\API\Metrics\ObserverInterface;
use OpenTelemetry\SDK\Metrics\MetricRegistry\MetricWriterInterface;

/**
 * @internal
 */
trait ObservableInstrumentTrait {
    public function __construct(MetricWriterInterface $writer, Instrument $instrument, ReferenceCounterInterface $referenceCounter, ArrayAccess $destructors) {
        assert($this instanceof InstrumentHandle);
        $this->referenceCounter
            ->acquire();
    }
    public function __destruct() {
        $this->referenceCounter
            ->release();
    }
    public function getHandle() : Instrument {
        return $this->instrument;
    }
    
    /**
     * @param callable(ObserverInterface): void $callback
     */
    public function observe(callable $callback) : ObservableCallbackInterface {
        return AsynchronousInstruments::observe($this->writer, $this->destructors, $callback, [
            $this->instrument,
        ], $this->referenceCounter);
    }
    public function isEnabled() : bool {
        return $this->writer
            ->enabled($this->instrument);
    }

}

Traits

Title Deprecated Summary
ObservableInstrumentTrait @internal

API Navigation

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