diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e182294952..0a1e590110 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -138,8 +138,16 @@ and the new feature doesn't fit it. ### How to request for release of package * Submit a PR with `CHANGELOG.md` file reflecting the version to be released -along with the date in the following format `[yyyy-MMM-dd`]`. For example: -"1.2.0-beta.2 [2022-May-15]". +along with the date in the following format `yyyy-MMM-dd`. + +For example: + +```text +## 1.2.0-beta.2 + +Released 2022-Jun-21 +``` + * Tag the maintainers of this repository (@open-telemetry/dotnet-contrib-maintainers) who can release the package. diff --git a/src/OpenTelemetry.Contrib.Extensions.AWSXRay/CHANGELOG.md b/src/OpenTelemetry.Contrib.Extensions.AWSXRay/CHANGELOG.md index 67369c91e6..b3ffec18f8 100644 --- a/src/OpenTelemetry.Contrib.Extensions.AWSXRay/CHANGELOG.md +++ b/src/OpenTelemetry.Contrib.Extensions.AWSXRay/CHANGELOG.md @@ -6,7 +6,9 @@ instance instead of recreating with ThreadLocal ([#380](https://github.com/open-telemetry/opentelemetry-dotnet-contrib/pull/380)) -## 1.2.0 [2022-May-18] +## 1.2.0 + +Released 2022-May-18 * Enhancement - AWSEKSResourceDetector - Validate ClusterName/ContainerID independently before adding it to the resource @@ -15,13 +17,17 @@ "The SSL connection could not be established" ([#208](https://github.com/open-telemetry/opentelemetry-dotnet-contrib/pull/208)) -## 1.1.0 [2021-Sept-20] +## 1.1.0 + +Released 2021-Sep-20 * Added AWS resource detectors ([#149](https://github.com/open-telemetry/opentelemetry-dotnet-contrib/pull/149)) * Updated OTel SDK package version to 1.1.0 ([#100](https://github.com/open-telemetry/opentelemetry-dotnet-contrib/pull/100)) -## 1.0.1 [2021-Feb-24] +## 1.0.1 + +Released 2021-Feb-24 This is the first release for the `OpenTelemetry.Contrib.Extensions.AWSXRay` project. The project targets v1.0.1 of the [OpenTelemetry diff --git a/src/OpenTelemetry.Contrib.Instrumentation.AWS/CHANGELOG.md b/src/OpenTelemetry.Contrib.Instrumentation.AWS/CHANGELOG.md index ea1991daf8..0e903ec307 100644 --- a/src/OpenTelemetry.Contrib.Instrumentation.AWS/CHANGELOG.md +++ b/src/OpenTelemetry.Contrib.Instrumentation.AWS/CHANGELOG.md @@ -1,6 +1,8 @@ # Changelog - OpenTelemetry.Contrib.Instrumentation.AWS -## 1.0.1 [2021-Feb-24] +## 1.0.1 + +Released 2021-Feb-24 This is the first release for the `OpenTelemetry.Contrib.Instrumentation.AWS` project. The release targets v1.0.1 of the diff --git a/src/OpenTelemetry.Contrib.Instrumentation.AWS/Implementation/AWSSemanticConventions.cs b/src/OpenTelemetry.Contrib.Instrumentation.AWS/Implementation/AWSSemanticConventions.cs index 26665d3458..43090d2c85 100644 --- a/src/OpenTelemetry.Contrib.Instrumentation.AWS/Implementation/AWSSemanticConventions.cs +++ b/src/OpenTelemetry.Contrib.Instrumentation.AWS/Implementation/AWSSemanticConventions.cs @@ -28,5 +28,7 @@ internal static class AWSSemanticConventions public const string AttributeHttpStatusCode = "http.status_code"; public const string AttributeHttpResponseContentLength = "http.response_content_length"; + + public const string AttributeValueDynamoDb = "dynamodb"; } } diff --git a/src/OpenTelemetry.Contrib.Instrumentation.AWS/Implementation/AWSServiceHelper.cs b/src/OpenTelemetry.Contrib.Instrumentation.AWS/Implementation/AWSServiceHelper.cs new file mode 100644 index 0000000000..d884b21003 --- /dev/null +++ b/src/OpenTelemetry.Contrib.Instrumentation.AWS/Implementation/AWSServiceHelper.cs @@ -0,0 +1,54 @@ +// +// Copyright The OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +using System; +using System.Collections.Generic; +using Amazon.Runtime; + +namespace OpenTelemetry.Contrib.Instrumentation.AWS.Implementation +{ + internal class AWSServiceHelper + { + internal static IReadOnlyDictionary ServiceParameterMap = new Dictionary() + { + { DynamoDbService, "TableName" }, + { SQSService, "QueueUrl" }, + }; + + internal static IReadOnlyDictionary ParameterAttributeMap = new Dictionary() + { + { "TableName", AWSSemanticConventions.AttributeAWSDynamoTableName }, + { "QueueUrl", AWSSemanticConventions.AttributeAWSSQSQueueUrl }, + }; + + private const string DynamoDbService = "DynamoDBv2"; + private const string SQSService = "SQS"; + + internal static string GetAWSServiceName(IRequestContext requestContext) + => Utils.RemoveAmazonPrefixFromServiceName(requestContext.Request.ServiceName); + + internal static string GetAWSOperationName(IRequestContext requestContext) + { + string completeRequestName = requestContext.OriginalRequest.GetType().Name; + string suffix = "Request"; + var operationName = Utils.RemoveSuffix(completeRequestName, suffix); + return operationName; + } + + internal static bool IsDynamoDbService(string service) + => DynamoDbService.Equals(service, StringComparison.OrdinalIgnoreCase); + } +} diff --git a/src/OpenTelemetry.Contrib.Instrumentation.AWS/Implementation/AWSTracingPipelineHandler.cs b/src/OpenTelemetry.Contrib.Instrumentation.AWS/Implementation/AWSTracingPipelineHandler.cs index f7b5862186..e731aabff4 100644 --- a/src/OpenTelemetry.Contrib.Instrumentation.AWS/Implementation/AWSTracingPipelineHandler.cs +++ b/src/OpenTelemetry.Contrib.Instrumentation.AWS/Implementation/AWSTracingPipelineHandler.cs @@ -37,18 +37,6 @@ internal class AWSTracingPipelineHandler : PipelineHandler carrier[name] = value; }; - private static readonly Dictionary ServiceParameterMap = new Dictionary() - { - { "DynamoDBv2", "TableName" }, - { "SQS", "QueueUrl" }, - }; - - private static readonly Dictionary ParameterAttributeMap = new Dictionary() - { - { "TableName", AWSSemanticConventions.AttributeAWSDynamoTableName }, - { "QueueUrl", AWSSemanticConventions.AttributeAWSSQSQueueUrl }, - }; - private static readonly ActivitySource AWSSDKActivitySource = new ActivitySource(ActivitySourceName); private readonly AWSClientInstrumentationOptions options; @@ -117,8 +105,8 @@ private Activity ProcessBeginRequest(IExecutionContext executionContext) Activity activity = null; var requestContext = executionContext.RequestContext; - var service = this.GetAWSServiceName(requestContext); - var operation = this.GetAWSOperationName(requestContext); + var service = AWSServiceHelper.GetAWSServiceName(requestContext); + var operation = AWSServiceHelper.GetAWSOperationName(requestContext); activity = AWSSDKActivitySource.StartActivity(service + "." + operation, ActivityKind.Client); @@ -192,37 +180,26 @@ private void ProcessException(Activity activity, Exception ex) } } - private string GetAWSServiceName(IRequestContext requestContext) - { - string serviceName = string.Empty; - serviceName = Utils.RemoveAmazonPrefixFromServiceName(requestContext.Request.ServiceName); - return serviceName; - } - - private string GetAWSOperationName(IRequestContext requestContext) - { - string operationName = string.Empty; - string completeRequestName = requestContext.OriginalRequest.GetType().Name; - string suffix = "Request"; - operationName = Utils.RemoveSuffix(completeRequestName, suffix); - return operationName; - } - private void AddRequestSpecificInformation(Activity activity, IRequestContext requestContext, string service) { - AmazonWebServiceRequest request = requestContext.OriginalRequest; - - if (ServiceParameterMap.TryGetValue(service, out string parameter)) + if (AWSServiceHelper.ServiceParameterMap.TryGetValue(service, out string parameter)) { + AmazonWebServiceRequest request = requestContext.OriginalRequest; + var property = request.GetType().GetProperty(parameter); if (property != null) { - if (ParameterAttributeMap.TryGetValue(parameter, out string attribute)) + if (AWSServiceHelper.ParameterAttributeMap.TryGetValue(parameter, out string attribute)) { activity.SetTag(attribute, property.GetValue(request)); } } } + + if (AWSServiceHelper.IsDynamoDbService(service)) + { + activity.SetTag(SemanticConventions.AttributeDbSystem, AWSSemanticConventions.AttributeValueDynamoDb); + } } private void AddStatusCodeToActivity(Activity activity, int status_code) diff --git a/src/OpenTelemetry.Contrib.Instrumentation.AWS/OpenTelemetry.Contrib.Instrumentation.AWS.csproj b/src/OpenTelemetry.Contrib.Instrumentation.AWS/OpenTelemetry.Contrib.Instrumentation.AWS.csproj index 45d4e245b8..01adf3f3f5 100644 --- a/src/OpenTelemetry.Contrib.Instrumentation.AWS/OpenTelemetry.Contrib.Instrumentation.AWS.csproj +++ b/src/OpenTelemetry.Contrib.Instrumentation.AWS/OpenTelemetry.Contrib.Instrumentation.AWS.csproj @@ -1,4 +1,4 @@ - + net452;netstandard2.0 @@ -13,5 +13,6 @@ + diff --git a/src/OpenTelemetry.Contrib.Instrumentation.AWSLambda/CHANGELOG.md b/src/OpenTelemetry.Contrib.Instrumentation.AWSLambda/CHANGELOG.md index df08983d54..8928f2bfc5 100644 --- a/src/OpenTelemetry.Contrib.Instrumentation.AWSLambda/CHANGELOG.md +++ b/src/OpenTelemetry.Contrib.Instrumentation.AWSLambda/CHANGELOG.md @@ -1,6 +1,8 @@ # Changelog - OpenTelemetry.Contrib.Instrumentation.AWSLambda -## 1.1.0-beta1 [2021-May-26] +## 1.1.0-beta1 + +Released 2021-May-26 This is the first release for the `OpenTelemetry.Contrib.Instrumentation.AWSLambda` project. The project targets v1.1.0-beta1 of the [OpenTelemetry diff --git a/src/OpenTelemetry.Exporter.Geneva/CHANGELOG.md b/src/OpenTelemetry.Exporter.Geneva/CHANGELOG.md index 6a6d7e957e..66bf8e7480 100644 --- a/src/OpenTelemetry.Exporter.Geneva/CHANGELOG.md +++ b/src/OpenTelemetry.Exporter.Geneva/CHANGELOG.md @@ -20,12 +20,16 @@ by throwing any exception caught by `UnixDomainSocketDataTransport.Send` so that `ExportResult.Failure`. [444](https://github.com/open-telemetry/opentelemetry-dotnet-contrib/pull/444) -## 1.3.0-beta.2 [2022-Jun-03] +## 1.3.0-beta.2 + +Released 2022-Jun-03 * Add support for exporting `ILogger` scopes. [390](https://github.com/open-telemetry/opentelemetry-dotnet-contrib/pull/390) -## 1.3.0-beta.1 [2022-May-27] +## 1.3.0-beta.1 + +Released 2022-May-27 * Enable PassThru TableNameMappings using the logger category name. [345](https://github.com/open-telemetry/opentelemetry-dotnet-contrib/pull/345) @@ -44,12 +48,16 @@ by throwing any exception caught by `UnixDomainSocketDataTransport.Send` so that `LogRecord.Exception.GetType().FullName`. [375](https://github.com/open-telemetry/opentelemetry-dotnet-contrib/pull/375) -## 1.2.6 [2022-Apr-21] +## 1.2.6 + +Released 2022-Apr-21 * Set GenevaMetricExporter temporality preference back to Delta. [323](https://github.com/open-telemetry/opentelemetry-dotnet-contrib/pull/323) -## 1.2.5 [2022-Apr-20] Broken +## 1.2.5 Broken + +Released 2022-Apr-20 Note: This release was broken due to the GenevaMetricExporter using a TemporalityPreference of Cumulative instead of Delta, it has been unlisted from @@ -60,7 +68,9 @@ is the PR that introduced this bug to GenevaMetricExporterExtensions.cs * Update OTel SDK version to `1.2.0`. [319](https://github.com/open-telemetry/opentelemetry-dotnet-contrib/pull/319) -## 1.2.4 [2022-Apr-20] Broken +## 1.2.4 Broken + +Released 2022-Apr-20 This is the first release of the `OpenTelemetry.Exporter.Geneva` project. Note: This release was broken due to using OpenTelemetry 1.2.0-rc5. Therefore, it has diff --git a/src/OpenTelemetry.Exporter.Instana/CHANGELOG.md b/src/OpenTelemetry.Exporter.Instana/CHANGELOG.md index 78dcba1e6c..4bb688b84f 100644 --- a/src/OpenTelemetry.Exporter.Instana/CHANGELOG.md +++ b/src/OpenTelemetry.Exporter.Instana/CHANGELOG.md @@ -2,17 +2,23 @@ ## Unreleased -## 1.0.2 [2022-Jun-02] +## 1.0.2 + +Released 2022-Jun-02 * Application is chrashing if environment variables are not defined [385](https://github.com/open-telemetry/opentelemetry-dotnet-contrib/pull/385) -## 1.0.1 [2022-May-25] +## 1.0.1 + +Released 2022-May-25 * Instana span duration was not calculated correctly [376](https://github.com/open-telemetry/opentelemetry-dotnet-contrib/pull/376) -## 1.0.0 [2022-May-24] +## 1.0.0 + +Released 2022-May-24 * This is the first release of the `OpenTelemetry.Exporter.Instana` project. diff --git a/src/OpenTelemetry.Instrumentation.MySqlData/CHANGELOG.md b/src/OpenTelemetry.Instrumentation.MySqlData/CHANGELOG.md index dca310dd3b..4d88e85de9 100644 --- a/src/OpenTelemetry.Instrumentation.MySqlData/CHANGELOG.md +++ b/src/OpenTelemetry.Instrumentation.MySqlData/CHANGELOG.md @@ -2,6 +2,10 @@ ## Unreleased +## 1.0.0-beta.3 + +Released 2022-Jun-29 + * Fix incomplete db.statement when the length>300 [(#424)](https://github.com/open-telemetry/opentelemetry-dotnet-contrib/pull/424) diff --git a/src/OpenTelemetry.Instrumentation.Runtime/CHANGELOG.md b/src/OpenTelemetry.Instrumentation.Runtime/CHANGELOG.md index 3557ac6b8b..6d326578d0 100644 --- a/src/OpenTelemetry.Instrumentation.Runtime/CHANGELOG.md +++ b/src/OpenTelemetry.Instrumentation.Runtime/CHANGELOG.md @@ -2,6 +2,13 @@ ## Unreleased +## 1.0.0-rc.1 + +Released 2022-Jun-29 + +Major refactor of the runtime instrumentation. Renamed API signature and metrics. +Removed the options to turn off certain metrics. + ## 1.0.0-beta.1 Major redesign of the runtime instrumentation. Renamed metrics to be more user-friendly diff --git a/src/OpenTelemetry.Instrumentation.StackExchangeRedis/CHANGELOG.md b/src/OpenTelemetry.Instrumentation.StackExchangeRedis/CHANGELOG.md index f3a0adf69c..dc45bd3b30 100644 --- a/src/OpenTelemetry.Instrumentation.StackExchangeRedis/CHANGELOG.md +++ b/src/OpenTelemetry.Instrumentation.StackExchangeRedis/CHANGELOG.md @@ -1,6 +1,8 @@ # Changelog -## Unreleased +## 1.0.0-rc9.6 + +Released 2022-Jun-29 * Added the EnrichActivityWithTimingEvents option to StackExchangeRedisCallsInstrumentationOptions to be able to disable adding diff --git a/test/OpenTelemetry.Contrib.Instrumentation.AWS.Tests/TestAWSClientInstrumentation.cs b/test/OpenTelemetry.Contrib.Instrumentation.AWS.Tests/TestAWSClientInstrumentation.cs index e4ec96ee6b..b17a0567aa 100644 --- a/test/OpenTelemetry.Contrib.Instrumentation.AWS.Tests/TestAWSClientInstrumentation.cs +++ b/test/OpenTelemetry.Contrib.Instrumentation.AWS.Tests/TestAWSClientInstrumentation.cs @@ -179,6 +179,7 @@ private void ValidateDynamoActivityTags(Activity ddb_activity) Assert.Equal("Scan", Utils.GetTagValue(ddb_activity, "aws.operation")); Assert.Equal("us-east-1", Utils.GetTagValue(ddb_activity, "aws.region")); Assert.Equal("SampleProduct", Utils.GetTagValue(ddb_activity, "aws.table_name")); + Assert.Equal("dynamodb", Utils.GetTagValue(ddb_activity, "db.system")); } private void ValidateSqsActivityTags(Activity sqs_activity)