Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mark private and internal classes as sealed when appropriate #3799

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/OpenTelemetry.Api/Baggage.cs
Original file line number Diff line number Diff line change
Expand Up @@ -377,7 +377,7 @@ private static BaggageHolder EnsureBaggageHolder()
return baggageHolder;
}

private class BaggageHolder
private sealed class BaggageHolder
{
public Baggage Baggage;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ namespace OpenTelemetry.Internal
/// This is used for internal logging of this library.
/// </summary>
[EventSource(Name = "OpenTelemetry-Api")]
internal class OpenTelemetryApiEventSource : EventSource
internal sealed class OpenTelemetryApiEventSource : EventSource
{
public static OpenTelemetryApiEventSource Log = new();

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// <auto-generated/> (Turns off StyleCop analysis in this file.)
// <auto-generated/> (Turns off StyleCop analysis in this file.)

// Licensed to the Apache Software Foundation(ASF) under one
// or more contributor license agreements.See the NOTICE file
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// <auto-generated/> (Turns off StyleCop analysis in this file.)
// <auto-generated/> (Turns off StyleCop analysis in this file.)

// Licensed to the Apache Software Foundation(ASF) under one
// or more contributor license agreements.See the NOTICE file
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ namespace OpenTelemetry.Exporter.Jaeger.Implementation
/// EventSource events emitted from the project.
/// </summary>
[EventSource(Name = "OpenTelemetry-Exporter-Jaeger")]
internal class JaegerExporterEventSource : EventSource
internal sealed class JaegerExporterEventSource : EventSource
{
public static JaegerExporterEventSource Log = new();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
namespace OpenTelemetry.Exporter.OpenTelemetryProtocol.Implementation
{
[EventSource(Name = "OpenTelemetry-Exporter-OpenTelemetryProtocol")]
internal class OpenTelemetryProtocolExporterEventSource : EventSource
internal sealed class OpenTelemetryProtocolExporterEventSource : EventSource
{
public static readonly OpenTelemetryProtocolExporterEventSource Log = new();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ namespace OpenTelemetry.Exporter
/// Exporter consuming <see cref="LogRecord"/> and exporting the data using
/// the OpenTelemetry protocol (OTLP).
/// </summary>
internal class OtlpLogExporter : BaseExporter<LogRecord>
internal sealed class OtlpLogExporter : BaseExporter<LogRecord>
{
private readonly SdkLimitOptions sdkLimitOptions;
private readonly IExportClient<OtlpCollector.ExportLogsServiceRequest> exportClient;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ namespace OpenTelemetry.Exporter.ZPages.Implementation
/// <summary>
/// Stores the activity information aggregated according to activity name.
/// </summary>
internal class ZPagesActivityAggregate
internal sealed class ZPagesActivityAggregate
{
/// <summary>
/// Initializes a new instance of the <see cref="ZPagesActivityAggregate"/> class.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ namespace OpenTelemetry.Exporter.ZPages.Implementation
/// EventSource events emitted from the project.
/// </summary>
[EventSource(Name = "OpenTelemetry-Exporter-ZPages")]
internal class ZPagesExporterEventSource : EventSource
internal sealed class ZPagesExporterEventSource : EventSource
{
public static ZPagesExporterEventSource Log = new();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

namespace OpenTelemetry.Exporter.ZPages.Implementation
{
internal class ZPagesStatsBuilder
internal sealed class ZPagesStatsBuilder
{
public const string ContentType = "text/html";
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@

namespace OpenTelemetry.Exporter.Zipkin.Implementation
{
internal class ZipkinEndpoint
internal sealed class ZipkinEndpoint
{
public ZipkinEndpoint(string serviceName)
: this(serviceName, null, null, null, null)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ namespace OpenTelemetry.Exporter.Zipkin.Implementation
/// EventSource events emitted from the project.
/// </summary>
[EventSource(Name = "OpenTelemetry-Exporter-Zipkin")]
internal class ZipkinExporterEventSource : EventSource
internal sealed class ZipkinExporterEventSource : EventSource
{
public static ZipkinExporterEventSource Log = new();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ namespace OpenTelemetry.Extensions.Hosting.Implementation
/// EventSource events emitted from the project.
/// </summary>
[EventSource(Name = "OpenTelemetry-Extensions-Hosting")]
internal class HostingExtensionsEventSource : EventSource
internal sealed class HostingExtensionsEventSource : EventSource
{
public static HostingExtensionsEventSource Log = new();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ namespace OpenTelemetry.Internal
/// This is used for internal logging of this library.
/// </summary>
[EventSource(Name = "OpenTelemetry.Extensions.Propagators")]
internal class OpenTelemetryPropagatorsEventSource : EventSource
internal sealed class OpenTelemetryPropagatorsEventSource : EventSource
{
public static OpenTelemetryPropagatorsEventSource Log = new();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ namespace OpenTelemetry.Instrumentation.AspNetCore
/// <summary>
/// Asp.Net Core Requests instrumentation.
/// </summary>
internal class AspNetCoreInstrumentation : IDisposable
internal sealed class AspNetCoreInstrumentation : IDisposable
{
private static readonly HashSet<string> DiagnosticSourceEvents = new()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ namespace OpenTelemetry.Instrumentation.AspNetCore
/// <summary>
/// Asp.Net Core Requests instrumentation.
/// </summary>
internal class AspNetCoreMetrics : IDisposable
internal sealed class AspNetCoreMetrics : IDisposable
{
internal static readonly AssemblyName AssemblyName = typeof(HttpInListener).Assembly.GetName();
internal static readonly string InstrumentationName = AssemblyName.Name;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ namespace OpenTelemetry.Instrumentation.AspNetCore.Implementation
/// EventSource events emitted from the project.
/// </summary>
[EventSource(Name = "OpenTelemetry-Instrumentation-AspNetCore")]
internal class AspNetCoreInstrumentationEventSource : EventSource
internal sealed class AspNetCoreInstrumentationEventSource : EventSource
{
public static AspNetCoreInstrumentationEventSource Log = new();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@

namespace OpenTelemetry.Instrumentation.AspNetCore.Implementation
{
internal class HttpInMetricsListener : ListenerHandler
internal sealed class HttpInMetricsListener : ListenerHandler
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@vishweshbankwar We would have to measure it first but we could get some perf improvement by marking the HttpListener class for Traces as sealed.

Currently, a class in one of the unit tests inherits from it so I didn't mark it sealed. If there is a considerable perf improvement by marking the HttpListener class as sealed, we could try to figure out a way to run the test without inheriting from the class.

{
private const string OnStopEvent = "Microsoft.AspNetCore.Hosting.HttpRequestIn.Stop";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ namespace OpenTelemetry.Instrumentation.GrpcNetClient
/// <summary>
/// GrpcClient instrumentation.
/// </summary>
internal class GrpcClientInstrumentation : IDisposable
internal sealed class GrpcClientInstrumentation : IDisposable
{
private readonly DiagnosticSourceSubscriber diagnosticSourceSubscriber;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ namespace OpenTelemetry.Instrumentation.GrpcNetClient.Implementation
/// EventSource events emitted from the project.
/// </summary>
[EventSource(Name = "OpenTelemetry-Instrumentation-Grpc")]
internal class GrpcInstrumentationEventSource : EventSource
internal sealed class GrpcInstrumentationEventSource : EventSource
{
public static GrpcInstrumentationEventSource Log = new();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ namespace OpenTelemetry.Instrumentation.Http
/// <summary>
/// HttpClient instrumentation.
/// </summary>
internal class HttpClientInstrumentation : IDisposable
internal sealed class HttpClientInstrumentation : IDisposable
{
private readonly DiagnosticSourceSubscriber diagnosticSourceSubscriber;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ namespace OpenTelemetry.Instrumentation.Http
/// <summary>
/// HttpClient instrumentation.
/// </summary>
internal class HttpClientMetrics : IDisposable
internal sealed class HttpClientMetrics : IDisposable
{
internal static readonly AssemblyName AssemblyName = typeof(HttpClientMetrics).Assembly.GetName();
internal static readonly string InstrumentationName = AssemblyName.Name;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

namespace OpenTelemetry.Instrumentation.Http.Implementation
{
internal class HttpHandlerMetricsDiagnosticListener : ListenerHandler
internal sealed class HttpHandlerMetricsDiagnosticListener : ListenerHandler
{
internal const string OnStopEvent = "System.Net.Http.HttpRequestOut.Stop";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ namespace OpenTelemetry.Instrumentation.Http.Implementation
/// EventSource events emitted from the project.
/// </summary>
[EventSource(Name = "OpenTelemetry-Instrumentation-Http")]
internal class HttpInstrumentationEventSource : EventSource
internal sealed class HttpInstrumentationEventSource : EventSource
{
public static HttpInstrumentationEventSource Log = new();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ namespace OpenTelemetry.Instrumentation.SqlClient.Implementation
/// Helper class to hold common properties used by both SqlClientDiagnosticListener on .NET Core
/// and SqlEventSourceListener on .NET Framework.
/// </summary>
internal class SqlActivitySourceHelper
internal sealed class SqlActivitySourceHelper
{
public const string MicrosoftSqlServerDatabaseSystemName = "mssql";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ namespace OpenTelemetry.Instrumentation.SqlClient.Implementation
/// EventSource events emitted from the project.
/// </summary>
[EventSource(Name = "OpenTelemetry-Instrumentation-SqlClient")]
internal class SqlClientInstrumentationEventSource : EventSource
internal sealed class SqlClientInstrumentationEventSource : EventSource
{
public static SqlClientInstrumentationEventSource Log = new();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ namespace OpenTelemetry.Instrumentation.SqlClient
/// <summary>
/// SqlClient instrumentation.
/// </summary>
internal class SqlClientInstrumentation : IDisposable
internal sealed class SqlClientInstrumentation : IDisposable
{
internal const string SqlClientDiagnosticListenerName = "SqlClientDiagnosticListener";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -270,7 +270,7 @@ internal void AddConnectionLevelDetailsToActivity(string dataSource, Activity sq
}
}

internal class SqlConnectionDetails
internal sealed class SqlConnectionDetails
{
public string ServerHostName { get; set; }

Expand Down
2 changes: 1 addition & 1 deletion src/OpenTelemetry.Shims.OpenTracing/ScopeManagerShim.cs
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ public IScope Activate(ISpan span, bool finishSpanOnDispose)
return instrumentation;
}

private class ScopeInstrumentation : IScope
private sealed class ScopeInstrumentation : IScope
{
private readonly Action disposeAction;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@

namespace OpenTelemetry.Instrumentation
{
internal class DiagnosticSourceListener : IObserver<KeyValuePair<string, object>>
internal sealed class DiagnosticSourceListener : IObserver<KeyValuePair<string, object>>
{
private readonly ListenerHandler handler;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ namespace OpenTelemetry.Instrumentation
/// EventSource events emitted from the project.
/// </summary>
[EventSource(Name = "OpenTelemetry-Instrumentation")]
internal class InstrumentationEventSource : EventSource
internal sealed class InstrumentationEventSource : EventSource
{
public static InstrumentationEventSource Log = new();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ namespace OpenTelemetry.Instrumentation
/// PropertyFetcher fetches a property from an object.
/// </summary>
/// <typeparam name="T">The type of the property being fetched.</typeparam>
internal class PropertyFetcher<T>
internal sealed class PropertyFetcher<T>
{
private readonly string propertyName;
private PropertyFetch innerFetcher;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ namespace OpenTelemetry.Internal
/// EventSource implementation for OpenTelemetry SDK implementation.
/// </summary>
[EventSource(Name = "OpenTelemetry-Sdk")]
internal class OpenTelemetrySdkEventSource : EventSource
internal sealed class OpenTelemetrySdkEventSource : EventSource
{
public static OpenTelemetrySdkEventSource Log = new();
#if DEBUG
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

namespace OpenTelemetry.Internal
{
internal class SelfDiagnosticsConfigParser
internal sealed class SelfDiagnosticsConfigParser
{
public const string ConfigFileName = "OTEL_DIAGNOSTICS.json";
private const int FileSizeLowerLimit = 1024; // Lower limit for log file size in KB: 1MB
Expand Down
2 changes: 1 addition & 1 deletion src/OpenTelemetry/Metrics/CompositeMetricReader.cs
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,7 @@ public bool MoveNext()
}
}

internal class DoublyLinkedListNode
internal sealed class DoublyLinkedListNode
{
public readonly MetricReader Value;

Expand Down
2 changes: 1 addition & 1 deletion src/OpenTelemetry/Metrics/ExponentialBucketHistogram.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ namespace OpenTelemetry.Metrics;
/// identified by <c>Bucket[index] = ( base ^ index, base ^ (index + 1) ]</c>,
/// where <c>index</c> is an integer.
/// </summary>
internal class ExponentialBucketHistogram
internal sealed class ExponentialBucketHistogram
{
private int scale;
private double scalingFactor; // 2 ^ scale / log(2)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ namespace OpenTelemetry.Metrics;
/// <summary>
/// Stores configuration for a histogram metric stream with exponential bucket boundaries.
/// </summary>
internal class ExponentialBucketHistogramConfiguration : MetricStreamConfiguration
internal sealed class ExponentialBucketHistogramConfiguration : MetricStreamConfiguration
{
/// <summary>
/// Gets or sets the maximum number of buckets in each of the positive and negative ranges, not counting the special zero bucket.
Expand Down
2 changes: 1 addition & 1 deletion src/OpenTelemetry/Metrics/StringArrayEqualityComparer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@

namespace OpenTelemetry.Metrics
{
internal class StringArrayEqualityComparer : IEqualityComparer<string[]>
internal sealed class StringArrayEqualityComparer : IEqualityComparer<string[]>
{
public bool Equals(string[] strings1, string[] strings2)
{
Expand Down
4 changes: 2 additions & 2 deletions src/OpenTelemetry/Metrics/ThreadStaticStorage.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@

namespace OpenTelemetry.Metrics
{
internal class ThreadStaticStorage
internal sealed class ThreadStaticStorage
{
private const int MaxTagCacheSize = 8;

Expand Down Expand Up @@ -150,7 +150,7 @@ internal void CloneKeysAndValues(string[] inputTagKeys, object[] inputTagValues,
}
}

internal class TagStorage
internal sealed class TagStorage
{
// Used to split into Key sequence, Value sequence.
internal readonly string[] TagKeys;
Expand Down