Skip to content

Commit

Permalink
lint
Browse files Browse the repository at this point in the history
  • Loading branch information
lmolkova committed Mar 12, 2024
1 parent fbf27ff commit 91c5de1
Show file tree
Hide file tree
Showing 3 changed files with 83 additions and 77 deletions.
61 changes: 32 additions & 29 deletions src/OpenTelemetry/Metrics/Builder/MeterProviderBuilderExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -196,35 +196,6 @@ public static MeterProviderBuilder AddView(this MeterProviderBuilder meterProvid
return meterProviderBuilder;
}

#if EXPOSE_EXPERIMENTAL_FEATURES
/// <summary>
/// Adds a predicate for <see cref="Meter"/> that is used to determine
/// if <see cref="MeterProvider"/> should subscribe to the meter.
///
/// <remarks>
/// When multiple predicates are added using this method or via <see cref="MeterProviderBuilder.AddMeter(string[])"/>,
/// the <see cref="MeterProvider"/> will enable a meter if at least one of the predicates returns true for it, or
/// if the meter name matches one provided in the <see cref="MeterProviderBuilder.AddMeter(string[])"/> overload.
/// </remarks>
/// </summary>
/// <param name="meterProviderBuilder"><see cref="MeterProviderBuilder"/>.</param>
/// <param name="meterPredicate">Meter predicate - if it returns true, OpenTelemetry subscribes to the corresponding meter.</param>
/// <returns>Returns <see cref="MeterProviderBuilder"/> for chaining.</returns>
public static MeterProviderBuilder AddMeter(this MeterProviderBuilder meterProviderBuilder, Predicate<Meter> meterPredicate)
{
Guard.ThrowIfNull(meterProviderBuilder);
meterProviderBuilder.ConfigureBuilder((_, builder) =>
{
if (builder is MeterProviderBuilderSdk meterProviderBuilderSdk)
{
meterProviderBuilderSdk.AddMeter(meterPredicate);
}
});

return meterProviderBuilder;
}
#endif

/// <summary>
/// Sets the maximum number of Metric streams supported by the MeterProvider.
/// When no Views are configured, every instrument will result in one metric stream,
Expand Down Expand Up @@ -397,4 +368,36 @@ static MeterProviderBuilder SetExemplarFilter(

return meterProviderBuilder;
}

/// <summary>
/// Adds a predicate for <see cref="Meter"/> that is used to determine
/// if <see cref="MeterProvider"/> should subscribe to the meter.
///
/// <remarks>
/// When multiple predicates are added using this method or via <see cref="MeterProviderBuilder.AddMeter(string[])"/>,
/// the <see cref="MeterProvider"/> will enable a meter if at least one of the predicates returns true for it, or
/// if the meter name matches one provided in the <see cref="MeterProviderBuilder.AddMeter(string[])"/> overload.
/// </remarks>
/// </summary>
/// <param name="meterProviderBuilder"><see cref="MeterProviderBuilder"/>.</param>
/// <param name="meterPredicate">Meter predicate - if it returns true, OpenTelemetry subscribes to the corresponding meter.</param>
/// <returns>Returns <see cref="MeterProviderBuilder"/> for chaining.</returns>
#if EXPOSE_EXPERIMENTAL_FEATURES
public
#else
internal
#endif
static MeterProviderBuilder AddMeter(this MeterProviderBuilder meterProviderBuilder, Predicate<Meter> meterPredicate)
{
Guard.ThrowIfNull(meterProviderBuilder);
meterProviderBuilder.ConfigureBuilder((_, builder) =>
{
if (builder is MeterProviderBuilderSdk meterProviderBuilderSdk)
{
meterProviderBuilderSdk.AddMeter(meterPredicate);
}
});

return meterProviderBuilder;
}
}
60 changes: 30 additions & 30 deletions src/OpenTelemetry/Metrics/MeterProviderSdk.cs
Original file line number Diff line number Diff line change
Expand Up @@ -175,36 +175,6 @@ internal MeterProviderSdk(
OpenTelemetrySdkEventSource.Log.MeterProviderSdkEvent("MeterProvider built successfully.");
}

private Func<Instrument, bool> GetPredicate(MeterProviderBuilderSdk state)
{
List<Predicate<Meter>> predicates = new List<Predicate<Meter>>();

if (state.MeterSources.Any())
{
predicates.Add(this.GetNamePredicate(state));
}

predicates.AddRange(state.MeterSelectionPredicates);

return (instrument) =>
{
bool shouldListen = false;
for (int i = 0; i < predicates.Count && !shouldListen; i++)
{
try
{
shouldListen |= predicates[i](instrument.Meter);
}
catch (Exception ex)
{
OpenTelemetrySdkEventSource.Log.MeterPredicateException(instrument.Meter.Name, ex);
}
}

return shouldListen;
};
}

internal Resource Resource { get; }

internal List<object> Instrumentations => this.instrumentations;
Expand Down Expand Up @@ -550,6 +520,36 @@ private void ApplySpecificationConfigurationKeys(IConfiguration configuration)
#endif
}

private Func<Instrument, bool> GetPredicate(MeterProviderBuilderSdk state)
{
List<Predicate<Meter>> predicates = new List<Predicate<Meter>>();

if (state.MeterSources.Any())
{
predicates.Add(this.GetNamePredicate(state));
}

predicates.AddRange(state.MeterSelectionPredicates);

return (instrument) =>
{
bool shouldListen = false;
for (int i = 0; i < predicates.Count && !shouldListen; i++)
{
try
{
shouldListen |= predicates[i](instrument.Meter);
}
catch (Exception ex)
{
OpenTelemetrySdkEventSource.Log.MeterPredicateException(instrument.Meter.Name, ex);
}
}

return shouldListen;
};
}

private Predicate<Meter> GetNamePredicate(MeterProviderBuilderSdk state)
{
Debug.Assert(state.MeterSources.Any(), "Should only be called when there are name-based source predicates.");
Expand Down
39 changes: 21 additions & 18 deletions src/OpenTelemetry/Trace/Builder/TracerProviderBuilderExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -237,7 +237,21 @@ public static TracerProviderBuilder AddProcessor(
return tracerProviderBuilder;
}

#if EXPOSE_EXPERIMENTAL_FEATURES
/// <summary>
/// Run the given actions to initialize the <see cref="TracerProvider"/>.
/// </summary>
/// <param name="tracerProviderBuilder"><see cref="TracerProviderBuilder"/>.</param>
/// <returns><see cref="TracerProvider"/>.</returns>
public static TracerProvider Build(this TracerProviderBuilder tracerProviderBuilder)
{
if (tracerProviderBuilder is TracerProviderBuilderBase tracerProviderBuilderBase)
{
return tracerProviderBuilderBase.InvokeBuild();
}

throw new NotSupportedException($"Build is not supported on '{tracerProviderBuilder?.GetType().FullName ?? "null"}' instances.");
}

/// <summary>
/// Adds a predicate for <see cref="ActivitySource"/> that is used to determine
/// if <see cref="TracerProvider"/> should subscribe to the source.
Expand All @@ -251,7 +265,12 @@ public static TracerProviderBuilder AddProcessor(
/// <param name="tracerProviderBuilder"><see cref="TracerProviderBuilder"/>.</param>
/// <param name="sourcePredicate">Activity Source predicate - if it returns true, OpenTelemetry subscribes to the corresponding source.</param>
/// <returns>Returns <see cref="TracerProviderBuilder"/> for chaining.</returns>
public static TracerProviderBuilder AddSource(this TracerProviderBuilder tracerProviderBuilder, Predicate<ActivitySource> sourcePredicate)
#if EXPOSE_EXPERIMENTAL_FEATURES
public
#else
internal
#endif
static TracerProviderBuilder AddSource(this TracerProviderBuilder tracerProviderBuilder, Predicate<ActivitySource> sourcePredicate)
{
Guard.ThrowIfNull(sourcePredicate);
tracerProviderBuilder.ConfigureBuilder((_, builder) =>
Expand All @@ -264,20 +283,4 @@ public static TracerProviderBuilder AddSource(this TracerProviderBuilder tracerP

return tracerProviderBuilder;
}
#endif

/// <summary>
/// Run the given actions to initialize the <see cref="TracerProvider"/>.
/// </summary>
/// <param name="tracerProviderBuilder"><see cref="TracerProviderBuilder"/>.</param>
/// <returns><see cref="TracerProvider"/>.</returns>
public static TracerProvider Build(this TracerProviderBuilder tracerProviderBuilder)
{
if (tracerProviderBuilder is TracerProviderBuilderBase tracerProviderBuilderBase)
{
return tracerProviderBuilderBase.InvokeBuild();
}

throw new NotSupportedException($"Build is not supported on '{tracerProviderBuilder?.GetType().FullName ?? "null"}' instances.");
}
}

0 comments on commit 91c5de1

Please sign in to comment.