ObservableInstrumentTrait.php
Namespace
OpenTelemetry\SDK\MetricsFile
-
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 |