function ExportingReader::add
Overrides MetricSourceRegistryInterface::add
File
-
vendor/
open-telemetry/ sdk/ Metrics/ MetricReader/ ExportingReader.php, line 52
Class
Namespace
OpenTelemetry\SDK\Metrics\MetricReaderCode
public function add(MetricSourceProviderInterface $provider, MetricMetadataInterface $metadata, StalenessHandlerInterface $stalenessHandler) : void {
if ($this->closed) {
return;
}
if (!$this->exporter instanceof AggregationTemporalitySelectorInterface) {
return;
}
if (!($temporality = $this->exporter
->temporality($metadata))) {
return;
}
$source = $provider->create($temporality);
$sourceId = spl_object_id($source);
$this->sources[$sourceId] = $source;
if (!$provider instanceof StreamMetricSourceProvider) {
$stalenessHandler->onStale(function () use ($sourceId) : void {
unset($this->sources[$sourceId]);
});
return;
}
$streamId = $provider->streamId;
$registry = $provider->metricCollector;
$registryId = spl_object_id($registry);
$this->registries[$registryId] = $registry;
$this->streamIds[$registryId][$streamId][] = $sourceId;
}