ttrss/vendor/open-telemetry/sdk/Metrics/View/SelectionCriteria/InstrumentNameCriteria.php

29 lines
832 B
PHP
Raw Normal View History

2023-10-20 14:12:29 +00:00
<?php
declare(strict_types=1);
namespace OpenTelemetry\SDK\Metrics\View\SelectionCriteria;
use OpenTelemetry\SDK\Common\Instrumentation\InstrumentationScopeInterface;
use OpenTelemetry\SDK\Metrics\Instrument;
use OpenTelemetry\SDK\Metrics\View\SelectionCriteriaInterface;
use function preg_match;
use function preg_quote;
use function sprintf;
use function strtr;
final class InstrumentNameCriteria implements SelectionCriteriaInterface
{
private string $pattern;
public function __construct(string $name)
{
$this->pattern = sprintf('/^%s$/', strtr(preg_quote($name, '/'), ['\\?' => '.', '\\*' => '.*']));
}
public function accepts(Instrument $instrument, InstrumentationScopeInterface $instrumentationScope): bool
{
return (bool) preg_match($this->pattern, $instrument->name);
}
}