baseMetric = $baseMetric; $this->logger = $logger; } /** @inheritDoc */ public function getName(): string { return $this->baseMetric->getName(); } /** @inheritDoc */ public function getComponent(): string { return $this->baseMetric->getComponent(); } /** @inheritDoc */ public function getSamples(): array { return $this->baseMetric->getSamples(); } /** @inheritDoc */ public function getSampleCount(): int { return $this->baseMetric->getSampleCount(); } /** @inheritDoc */ public function getSampleRate(): float { return $this->baseMetric->getSampleRate(); } /** @inheritDoc */ public function setSampleRate( float $sampleRate ) { try { $this->baseMetric->setSampleRate( $sampleRate ); } catch ( IllegalOperationException | InvalidArgumentException $ex ) { // Log the condition and give the caller something that will absorb calls. trigger_error( $ex->getMessage(), E_USER_WARNING ); return new NullMetric; } return $this; } /** @inheritDoc */ public function getLabelKeys(): array { return $this->baseMetric->getLabelKeys(); } /** @inheritDoc */ public function setLabel( string $key, string $value ) { try { $this->baseMetric->addLabel( $key, $value ); } catch ( IllegalOperationException | InvalidArgumentException $ex ) { // Log the condition and give the caller something that will absorb calls. trigger_error( $ex->getMessage(), E_USER_WARNING ); return new NullMetric; } return $this; } /** @inheritDoc */ public function setLabels( array $labels ) { try { foreach ( $labels as $key => $value ) { $this->baseMetric->addLabel( $key, $value ); } } catch ( IllegalOperationException | InvalidArgumentException $ex ) { // Log the condition and give the caller something that will absorb calls. trigger_error( $ex->getMessage(), E_USER_WARNING ); return new NullMetric; } return $this; } /** @inheritDoc */ public function copyToStatsdAt( $statsdNamespaces ) { try { $this->baseMetric->setStatsdNamespaces( $statsdNamespaces ); } catch ( InvalidArgumentException $ex ) { // Log the condition and give the caller something that will absorb calls. trigger_error( $ex->getMessage(), E_USER_WARNING ); return new NullMetric; } return $this; } /** @inheritDoc */ public function fresh(): self { $this->baseMetric->clearLabels(); return $this; } }