Skip to content
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: 2 additions & 0 deletions build/BannedSymbols.txt
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@ M:System.SByte.TryParse(System.ReadOnlySpan{System.Char},System.SByte@); Use ove
M:System.SByte.TryParse(System.String,System.SByte@); Use overloads that specify CultureInfo.InvariantCulture.
M:System.Single.TryParse(System.ReadOnlySpan{System.Char},System.Single@); Use overloads that specify CultureInfo.InvariantCulture.
M:System.Single.TryParse(System.String,System.Single@); Use overloads that specify CultureInfo.InvariantCulture.
Comment thread
martincostello marked this conversation as resolved.
M:System.String.Equals(System.String); Use the static string.Equals(string, string) method instead to avoid potential NullReferenceException.
M:System.String.Equals(System.String,System.StringComparison); Use the static string.Equals(string, string, StringComparison) method instead to avoid potential NullReferenceException.
M:System.TimeOnly.TryParse(System.ReadOnlySpan{System.Char},System.TimeOnly@); Use overloads that specify CultureInfo.InvariantCulture.
M:System.TimeOnly.TryParse(System.String,System.TimeOnly@); Use overloads that specify CultureInfo.InvariantCulture.
M:System.TimeSpan.TryParse(System.ReadOnlySpan{System.Char},System.TimeSpan@); Use overloads that specify CultureInfo.InvariantCulture.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,16 +71,16 @@ public string EtwSession
}

public bool PrivatePreviewEnableTraceLoggingDynamic => this.parts.TryGetValue(nameof(this.PrivatePreviewEnableTraceLoggingDynamic), out var value)
&& bool.TrueString.Equals(value, StringComparison.OrdinalIgnoreCase);
&& string.Equals(bool.TrueString, value, StringComparison.OrdinalIgnoreCase);

public bool PrivatePreviewEnableOtlpProtobufEncoding => this.parts.TryGetValue(nameof(this.PrivatePreviewEnableOtlpProtobufEncoding), out var value)
&& bool.TrueString.Equals(value, StringComparison.OrdinalIgnoreCase);
&& string.Equals(bool.TrueString, value, StringComparison.OrdinalIgnoreCase);

public bool PrivatePreviewEnableUserEvents => this.parts.TryGetValue(nameof(this.PrivatePreviewEnableUserEvents), out var value)
&& bool.TrueString.Equals(value, StringComparison.OrdinalIgnoreCase);
&& string.Equals(bool.TrueString, value, StringComparison.OrdinalIgnoreCase);

public bool PrivatePreviewEnableAFDCorrelationIdEnrichment => this.parts.TryGetValue(nameof(this.PrivatePreviewEnableAFDCorrelationIdEnrichment), out var value)
&& bool.TrueString.Equals(value, StringComparison.OrdinalIgnoreCase);
&& string.Equals(bool.TrueString, value, StringComparison.OrdinalIgnoreCase);

public int PrivatePreviewLogMessagePackStringSizeLimit =>
!this.parts.TryGetValue(nameof(this.PrivatePreviewLogMessagePackStringSizeLimit), out var value)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,8 @@ public IReadOnlyDictionary<string, object>? PrepopulatedMetricDimensions

foreach (var entry in value)
{
if (entry.Key.Equals(GenevaMetricExporter.DimensionKeyForCustomMonitoringAccount, StringComparison.OrdinalIgnoreCase) ||
entry.Key.Equals(GenevaMetricExporter.DimensionKeyForCustomMetricsNamespace, StringComparison.OrdinalIgnoreCase))
if (string.Equals(entry.Key, GenevaMetricExporter.DimensionKeyForCustomMonitoringAccount, StringComparison.OrdinalIgnoreCase) ||
string.Equals(entry.Key, GenevaMetricExporter.DimensionKeyForCustomMetricsNamespace, StringComparison.OrdinalIgnoreCase))
{
throw new ArgumentException($"The dimension: {entry.Key} is reserved and cannot be used as a prepopulated dimension.");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -646,8 +646,8 @@ private void SerializeDimensionsAndGetCustomAccountNamespace(in ReadOnlyTagColle
// TODO: Data Validation
}

if (tag.Key.Equals(GenevaMetricExporter.DimensionKeyForCustomMonitoringAccount, StringComparison.OrdinalIgnoreCase) ||
tag.Key.Equals(GenevaMetricExporter.DimensionKeyForCustomMetricsNamespace, StringComparison.OrdinalIgnoreCase))
if (string.Equals(tag.Key, GenevaMetricExporter.DimensionKeyForCustomMonitoringAccount, StringComparison.OrdinalIgnoreCase) ||
string.Equals(tag.Key, GenevaMetricExporter.DimensionKeyForCustomMetricsNamespace, StringComparison.OrdinalIgnoreCase))
{
reservedTags++;
continue;
Expand All @@ -667,7 +667,7 @@ private void SerializeDimensionsAndGetCustomAccountNamespace(in ReadOnlyTagColle
// Serialize MetricPoint Dimension values
foreach (var tag in tags)
{
if (tag.Key.Equals(GenevaMetricExporter.DimensionKeyForCustomMonitoringAccount, StringComparison.OrdinalIgnoreCase) && tag.Value is string metricsAccount)
if (string.Equals(tag.Key, GenevaMetricExporter.DimensionKeyForCustomMonitoringAccount, StringComparison.OrdinalIgnoreCase) && tag.Value is string metricsAccount)
{
if (!string.IsNullOrWhiteSpace(metricsAccount))
{
Expand All @@ -677,7 +677,7 @@ private void SerializeDimensionsAndGetCustomAccountNamespace(in ReadOnlyTagColle
continue;
}

if (tag.Key.Equals(GenevaMetricExporter.DimensionKeyForCustomMetricsNamespace, StringComparison.OrdinalIgnoreCase) && tag.Value is string metricsNamespace)
if (string.Equals(tag.Key, GenevaMetricExporter.DimensionKeyForCustomMetricsNamespace, StringComparison.OrdinalIgnoreCase) && tag.Value is string metricsNamespace)
{
if (!string.IsNullOrWhiteSpace(metricsNamespace))
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,23 +15,23 @@ internal class AWSServiceType
internal const string BedrockRuntimeService = "Bedrock Runtime";

internal static bool IsDynamoDbService(string service)
=> DynamoDbService.Equals(service, StringComparison.OrdinalIgnoreCase);
=> string.Equals(DynamoDbService, service, StringComparison.OrdinalIgnoreCase);

internal static bool IsSqsService(string service)
=> SQSService.Equals(service, StringComparison.OrdinalIgnoreCase);
=> string.Equals(SQSService, service, StringComparison.OrdinalIgnoreCase);

internal static bool IsSnsService(string service)
=> SNSService.Equals(service, StringComparison.OrdinalIgnoreCase);
=> string.Equals(SNSService, service, StringComparison.OrdinalIgnoreCase);

internal static bool IsBedrockService(string service)
=> BedrockService.Equals(service, StringComparison.OrdinalIgnoreCase);
=> string.Equals(BedrockService, service, StringComparison.OrdinalIgnoreCase);

internal static bool IsBedrockAgentService(string service)
=> BedrockAgentService.Equals(service, StringComparison.OrdinalIgnoreCase);
=> string.Equals(BedrockAgentService, service, StringComparison.OrdinalIgnoreCase);

internal static bool IsBedrockAgentRuntimeService(string service)
=> BedrockAgentRuntimeService.Equals(service, StringComparison.OrdinalIgnoreCase);
=> string.Equals(BedrockAgentRuntimeService, service, StringComparison.OrdinalIgnoreCase);

internal static bool IsBedrockRuntimeService(string service)
=> BedrockRuntimeService.Equals(service, StringComparison.OrdinalIgnoreCase);
=> string.Equals(BedrockRuntimeService, service, StringComparison.OrdinalIgnoreCase);
}
18 changes: 6 additions & 12 deletions src/OpenTelemetry.Instrumentation.AWS/Implementation/Utils.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ internal class Utils
{
foreach (var tag in activity.TagObjects)
{
if (tag.Key.Equals(tagName, StringComparison.Ordinal))
if (string.Equals(tag.Key, tagName, StringComparison.Ordinal))
{
return tag.Value;
}
Expand All @@ -20,15 +20,13 @@ internal class Utils
return null;
}

internal static string RemoveSuffix(string originalString, string suffix)
{
return string.IsNullOrEmpty(originalString)
internal static string RemoveSuffix(string originalString, string suffix) =>
string.IsNullOrEmpty(originalString)
? string.Empty
: originalString.EndsWith(suffix, StringComparison.Ordinal)
?
originalString.Substring(0, originalString.Length - suffix.Length)
: originalString;
}

/// <summary>
/// Removes amazon prefix from service name. There are two type of service name.
Expand All @@ -39,14 +37,10 @@ internal static string RemoveSuffix(string originalString, string suffix)
/// <param name="serviceName">Name of the service.</param>
/// <returns>String after removing Amazon prefix.</returns>
internal static string RemoveAmazonPrefixFromServiceName(string serviceName)
{
return RemovePrefix(RemovePrefix(serviceName, "Amazon"), ".");
}
=> RemovePrefix(RemovePrefix(serviceName, "Amazon"), ".");

private static string RemovePrefix(string originalString, string prefix)
{
return string.IsNullOrEmpty(originalString) ? string.Empty :
private static string RemovePrefix(string originalString, string prefix) =>
string.IsNullOrEmpty(originalString) ? string.Empty :
originalString.StartsWith(prefix, StringComparison.Ordinal) ? originalString.Substring(prefix.Length) :
originalString;
}
}
18 changes: 9 additions & 9 deletions src/OpenTelemetry.Sampler.AWS/SamplingRuleApplier.cs
Original file line number Diff line number Diff line change
Expand Up @@ -94,19 +94,19 @@ public bool Matches(SamplingParameters samplingParameters, Resource resource)
{
foreach (var tag in samplingParameters.Tags)
{
if (tag.Key.Equals(SemanticConventions.AttributeUrlPath, StringComparison.Ordinal))
if (string.Equals(tag.Key, SemanticConventions.AttributeUrlPath, StringComparison.Ordinal))
{
httpTarget = (string?)tag.Value;
}
else if (tag.Key.Equals(SemanticConventions.AttributeUrlFull, StringComparison.Ordinal))
else if (string.Equals(tag.Key, SemanticConventions.AttributeUrlFull, StringComparison.Ordinal))
{
httpUrl = (string?)tag.Value;
}
else if (tag.Key.Equals(SemanticConventions.AttributeHttpRequestMethod, StringComparison.Ordinal))
else if (string.Equals(tag.Key, SemanticConventions.AttributeHttpRequestMethod, StringComparison.Ordinal))
{
httpMethod = (string?)tag.Value;
}
else if (tag.Key.Equals(SemanticConventions.AttributeHttpHost, StringComparison.Ordinal))
else if (string.Equals(tag.Key, SemanticConventions.AttributeHttpHost, StringComparison.Ordinal))
{
httpHost = (string?)tag.Value;
}
Expand All @@ -128,7 +128,7 @@ public bool Matches(SamplingParameters samplingParameters, Resource resource)
}

var serviceName = (string)resource.Attributes.FirstOrDefault(kvp =>
kvp.Key.Equals("service.name", StringComparison.Ordinal)).Value;
string.Equals(kvp.Key, "service.name", StringComparison.Ordinal)).Value;

return Matcher.AttributeMatch(samplingParameters.Tags, this.Rule.Attributes) &&
Matcher.WildcardMatch(httpTarget, this.Rule.UrlPath) &&
Expand Down Expand Up @@ -224,7 +224,7 @@ public SamplingRuleApplier WithTarget(SamplingTargetDocument target, DateTimeOff
private static string GetServiceType(Resource resource)
{
var cloudPlatform = (string)resource.Attributes.FirstOrDefault(kvp =>
kvp.Key.Equals("cloud.platform", StringComparison.Ordinal)).Value;
string.Equals(kvp.Key, "cloud.platform", StringComparison.Ordinal)).Value;

return cloudPlatform == null ? string.Empty :
Matcher.XRayCloudPlatform.TryGetValue(cloudPlatform, out var value) ? value : string.Empty;
Expand All @@ -234,16 +234,16 @@ private static string GetArn(in SamplingParameters samplingParameters, Resource
{
// currently the aws resource detectors only capture ARNs for ECS and Lambda environments.
var arn = (string?)resource.Attributes.FirstOrDefault(kvp =>
kvp.Key.Equals("aws.ecs.container.arn", StringComparison.Ordinal)).Value;
string.Equals(kvp.Key, "aws.ecs.container.arn", StringComparison.Ordinal)).Value;

if (arn != null)
{
return arn;
}

if (GetServiceType(resource).Equals("AWS::Lambda::Function", StringComparison.Ordinal))
if (string.Equals(GetServiceType(resource), "AWS::Lambda::Function", StringComparison.Ordinal))
{
arn = (string?)samplingParameters.Tags?.FirstOrDefault(kvp => kvp.Key.Equals("faas.id", StringComparison.Ordinal)).Value;
arn = (string?)samplingParameters.Tags?.FirstOrDefault(kvp => string.Equals(kvp.Key, "faas.id", StringComparison.Ordinal)).Value;

if (arn != null)
{
Expand Down
Loading