setResource(ResourceInfoFactory::emptyResource()) ->addReader($reader) ->build(); $callback = new class() { public function __invoke(ObserverInterface $observer) { $observer->observe(random_int(1, 10)); } }; $meterProvider ->getMeter('demo_meter') ->createObservableGauge('number', 'items', 'Random number') ->observe($callback); //weak-ref to callback $reader->collect(); //metrics (data-points) collected (callback invoked) unset($callback); $reader->collect(); //no metrics (data-points) collected, because the callback was garbage-collected due to weak-ref