pub fn new_view(
    criteria: Instrument,
    mask: Stream
) -> Result<Box<dyn View>, MetricsError>
Expand description

Creates a View that applies the Stream mask for all instruments that match criteria.

The returned View will only apply the mask if all non-empty fields of criteria match the corresponding Instrument passed to the view. If all fields of the criteria are their default values, a view that matches no instruments is returned. If you need to match an empty-value field, create a View directly.

The Instrument::name field of criteria supports wildcard pattern matching. The wildcard * is recognized as matching zero or more characters, and ? is recognized as matching exactly one character. For example, a pattern of * will match all instrument names.

The Stream mask only applies updates for non-empty fields. By default, the Instrument the View matches against will be use for the name, description, and unit of the returned Stream and no aggregation or allowed_attribute_keys are set. All non-empty fields of mask are used instead of the default. If you need to set a an empty value in the returned stream, create a custom View directly.

Example

use opentelemetry_sdk::metrics::{new_view, Aggregation, Instrument, Stream};

let criteria = Instrument::new().name("counter_*");
let mask = Stream::new().aggregation(Aggregation::Sum);

let view = new_view(criteria, mask);