`collect` doesn't return anything, so returning True until we implement timeout/error handling mechanism seemed reasonable to me. What do you think? _Originally posted by @lonewolf3739 in https://github.com/open-telemetry/opentelemetry-python/pull/2401#discussion_r790980110_ Also, the timeout mechanism is required in several parts of the metrics spec: 1. [MeterProvider.shutdown](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk.md#shutdown) 2. [MeterProvider.forceflush](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk.md#forceflush) 3. [Asynchronous callbacks](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk.md#observations-inside-asynchronous-callbacks) 4. [MetricReader.collect](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk.md#metricreader-operations) 5. [MetricReader.shutdown](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk.md#shutdown-1) 6. [PushMetricExporter.forceflush](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk.md#forceflush-1) 7. [PushMetricExporter.shutdown](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk.md#shutdown-2)