Used when getting or creating a Metric to optionally specify the scope across which the values for the metric are to be aggregated in memory.
Intended for advanced scenarios.
The default "TelemetryConfiguration" is used whenever MetricAggregationScope is not specified explicitly.
Metric values will be aggregated only across a specific TelemetryClient instance and then sent using that
Such aggregation across many smaller scopes can be resource intensive. This option is only recommended when a particular instance
of TelementryClient needs to be used for sending telemetry. Typically, MetricAggregationScope.TelemetryConfiguration
is the preferred option.
Background-Info: This option causes the MetricManager instance that
owns the retrieved Metric to be attached to a specified TelemetryClient instance.
As a result, the Context and the InstrumentationKey of the specified TelemetryClient will be respected.
However, each MetricManager instance encapsulates a managed thread and each aggregator uses additional memory.
Metric values will be aggregated ACROSS all telemetry clients that belong to the same TelemetryConfiguration.
This is the default. It fits most use cases and is more conservative towards resources.
Background-Info: When you use this option with the .GetMetric(..) extension method of a TelemetryClient,
the MetricManager instance that owns the retrieved Metric will
be attached to a TelemetryConfiguration instance associated with that TelemetryClient. Thus, the MetricManager
will be shared across all clients of this telemetry config. As a result, the Context, the InstrumentationKey
and other properties of the respective TelemetryClient will be ignored in favor of the TelemetryConfiguration-wide