All notable changes to this project will be documented in this file.
- Add locking mechanism for Subsegments in Entity.AddException method #PR307
- Rework internal logic for determining the Trace ID created by AWS Lambda #PR322
- No changes. Bumping to release with lateral related packages.
- No changes. Bumping to release with lateral related packages.
- No changes. Bumping to release with lateral related packages.
- No changes. Bumping to release with lateral related packages.
- No changes. Bumping to release with lateral related packages.
- No changes. Bumping to release with lateral related packages.
- Fix race condition on static dictionaries #PR291
- No changes. Bumping to release with lateral related packages.
- No changes. Bumping to release with lateral related packages.
- No changes. Bumping to release with lateral related packages.
- No changes. Bumping to release with lateral related packages.
- Update System.Data.SqlClient version for CVE mitigation #PR294
- No changes. Bumping to release with lateral related packages.
- ec2plugin: fallback to utf8 if response encoding not set #PR278
- Change context missing strategy behaviour to Log Error #PR281
- No changes. Bumping to release with lateral related packages.
- No changes. Bumping to release with lateral related packages.
- No changes. Bumping to release with lateral related packages.
- No changes. Bumping to release with lateral related packages.
- No changes. Bumping to release with lateral related packages.
- No changes. Bumping to release with lateral related packages.
- Oversampling Mitigation #PR270
- No changes. Bumping to release with lateral related packages.
- No changes. Bumping to release with lateral related packages.
- No changes. Bumping to release with lateral related packages.
- No changes. Bumping to release with lateral related packages.
- No changes. Bumping to release with lateral related packages.
- No changes. Bumping to release with lateral related packages.
- No changes. Bumping to release with lateral related packages.
- No changes. Bumping to release with lateral related packages.
- No changes. Bumping to release with lateral related packages.
- Allow list TopicArn for SNS PublishBatch request PR#269
- Fix issue using version 3.7.100 of AWS SDK causing exception not finding EndpointResolver PR#268
- No changes. Bumping to release with lateral related packages.
- No changes. Bumping to release with lateral related packages.
- Provide tracing handler to allow removal of query string in traces PR#264
- No changes. Bumping to release with lateral related packages.
- No changes. Bumping to release with lateral related packages.
- No changes. Bumping to release with lateral related packages.
- No changes. Bumping to release with lateral related packages.
- No changes. Bumping to release with lateral related packages.
- Restore TraceableSqlCommand for NetCoreApp3.1 and Dotnet 6 Runtimes PR#262
- No changes. Bumping to release with lateral related packages.
- Fix ability to serialize GUIDs PR#203
- Add netcoreapp3.1 target framework PR#215
- Add support for net462 PR#248
- Add targets for net6.0 PR#242
- Bump Microsoft.AspNetCore.Http from 2.0.0 to 2.1.22 in /sdk/src/Core PR#256
- Reuse the same cause id for same exception in different subsegments PR#210
- Removed blocking call which was producing deadlocks from EC2Plugin PR#234
- Bailing out of AWSXRayASPNET.ProcessHTTPResponse for 'parent' requests that have not been populated with an X-Ray Entity. PR#235
- Add support for net462 PR#248
- Bump System.Net.Http from 4.3.3 to 4.3.4 in /sdk/src/Core PR#193
- Bumped version to address AWSXRayRecorder.Core package change
- Bumped version to address AWSXRayRecorder.Core package change
- Bumped version to address AWSXRayRecorder.Core package change
- Bumped version to address AWSXRayRecorder.Core package change
- Bumped version to address AWSXRayRecorder.Core package change
- Bumped version to address AWSXRayRecorder.Core package change
- Fixed race condition where the rule poller may start immediately before initializing the timer PR#154
- Updated xraycontext to use a concurrent dictionary PR#157
- Fixed tracing S3 id pairs and SNS naming issue #168
- Added tracing support for EntityFramework 6 (.NET Framework) PR#171
- Bumped version to address AWSXRayRecorder.Core package change
- Bumped version to address AWSXRayRecorder.Core package change
- Bumped version to address AWSXRayRecorder.Core package change
- Bumped version to address AWSXRayRecorder.Core package change
- Added .gitattributes file and normalized line endings PR#132
- Added IMDSv2 support PR#134
- Added .gitattributes file and normalized line endings PR#132
- Added .gitattributes file and normalized line endings PR#132
- Added .gitattributes file and normalized line endings PR#132
- Fixed typo in AWSXRayMiddlewareExtensions.cs. From Applicaion to Application PR#131
- Added .gitattributes file and normalized line endings PR#132
- Added .gitattributes file and normalized line endings PR#132
- Added .gitattributes file and normalized line endings PR#132
- Fixed customer start/end timestamps floor PR#119
- Added DelegateExporter to JasonSegmentMarshaller PR#122
- Added Whitelisting EndpointName parameter for InvokeEndpoint operation for SageMakerRuntime PR#117
- Added tracing support for Entity Framework Core 3.0 and above PR#124
- Modified README.md and removed some code comments PR#127
- Added EF Core package for build PR#129
- Bumped version to address AWSXRayRecorder.Core package change
- Bumped version to address AWSXRayRecorder.Core package change
- Bumped version to address AWSXRayRecorder.Core package change
- Bumped version to address AWSXRayRecorder.Core package change
- Faster implementation of wildcard matching PR#105
- Use ID of subsegment created for SDK request as parent id in trace header. PR#106
- Bumped version to address AWSXRayRecorder.Core package change
- Bumped version to address AWSXRayRecorder.Core package change
- Bumped version to address AWSXRayRecorder.Core package change
- Bumped version to address AWSXRayRecorder.Core package change
- Calling BeginSegment created a SamplingInput with null fields which matched incorrectly with the centralized sampling rules PR#100
- Bumped version to address AWSXRayRecorder.Core package change
- Bumped version to address AWSXRayRecorder.Core package change
- Bumped version to address AWSXRayRecorder.Core package change
- Bumped version to address AWSXRayRecorder.Core package change
- Bumped version to address AWSXRayRecorder.Core package change
- Fixes the issue where rule pollers were started even when the tracing was disabled. issue #86 PR #91
- Adds IStreamingStrategy interface for custome streaming strategies for subsegments. Also, the MaxSubsegmentSize for the DefaultStreamingStrategy is customizable now. PR #83
- Adds the ability to capture CommandText in the sanitized_query field of a sql subsegment. Adds global and override configuration to enable/dsable this feature. PR #49
- Whitelists SimpleNotificationService to record the TopicArn on Publish operation. PR #90
- Adds a User property to a segment with a supporting SetUser method. PR #92
- Adds the ability to set custom StartTime and EndTime for subsegments while doing BeginSubsegment and EndSubsegment respectively. PR #93
- Bumped version to address AWSXRayRecorder.Core package change
- Bumped version to address AWSXRayRecorder.Core package change
- Bumped version to address AWSXRayRecorder.Core package change
- Adds validations on UserID before adding it to subsegment. In cases like trusted connections, the UserId may not be present in the connection string. PR #94
- Adds the ability to capture CommandText in the sanitized_query field of a sql subsegment. Adds global and override configuration to enable/dsable this feature. PR #49
- Bumped version to address AWSXRayRecorder.Core package change
- Fixes .NET Core Static Initialization of the AWSXRayRecorder Instance so that thread safe initialization may happen. issue #67 PR #68
- Bumped version to address AWSXRayRecorder.Core package change
- Bumped version to address AWSXRayRecorder.Core package change
- Bumped version to address AWSXRayRecorder.Core package change
- Bumped version to address AWSXRayRecorder.Core package change
- Calling AddMetadata twice with the same key should overwrite values PR#60
- Entity doesn't exist in AsyncLocal exception when X-Ray tracing disabled issue#57, PR#58
- Honoring Context missing strategy for all TraceContext.GetEntity() call sites PR #65
- Bumped version to address AWSXRayRecorder.Core package change
- Honoring Context missing strategy for all TraceContext.GetEntity() call sites PR #65
- Honoring Context missing strategy for all TraceContext.GetEntity() call sites PR #65
- Added
HandleEntityMissing()toITraceContextinterface. Users can override this method to define custom trace context missing behavior.
- Merged Hostname support PR for parsing X-Ray daemon address PR #38, issue #19
- Added
ExceptionSerializationStrategyinterface for serializing exceptions, users can configure custom max number of stack frames to be recorded for exception usingWithExceptionSerializationStrategy()onAWSXRayRecorderBuilderclass. issue #8 - Amazon service exceptions are marked as
remote - Added missing interceptor for
ExecuteDbDataReader()PR #48
- Bumped version to address AWSXRayRecorder.Core package change
- Bumped version to address AWSXRayRecorder.Core package change
- Removed
deprecatedclassAWSSdkTracingHandler. Use AWSSDKHandler to trace AWS SDK requests.
- Removed
deprecatedclassTracingMessageHandler. Use AWSXRayASPNET middleware for tracing ASP.NET and WEB API requests.
- Bumped version to address AWSXRayRecorder.Core package change
- Changed
TraceContextfrom static class to instance member ofAWSXRayRecorderinstance TracingContext.GetEntity()is removed and the new syntax isAWSXRayRecorder.Instance.GetEntity()- Changed sampling rule key name from
rule_nametosampling_rule_name
- Changed
public Boolean IsLambda()topublic static Boolean IsLambda()
- .NET and .NET Core: Added
ITraceContextinterface.AWSXRayRecordercan be configured with customTraceContextusingWithTraceContext()and building recorder instance.ITraceContextand allTraceContexts are underAmazon.XRay.Recorder.Core.Internal.Contextnamespace - .NET and .NET Core:
ITraceContextmethods can be accessed at recorder instance level. For example :AWSXRayRecorder.Instance.GetEntity()
- Bumped version to address AWSXRayRecorder.Core package change
- Bumped version to address AWSXRayRecorder.Core package change
- Bumped version to address AWSXRayRecorder.Core package change
- The
TraceContextfor the middleware is changed toHybridContextContainer. It usesCallContextandHttpContextfor entity storage.
- Bumped version to address AWSXRayRecorder.Core package change
- .NET : Default context missing strategy is to runtime
- Prevent trace header from from being added more than once : PR#40
- Bumped version to address AWSXRayRecorder.Core package change
- Bumped version to address AWSXRayRecorder.Core package change
- Bumped version to address AWSXRayRecorder.Core package change
- Bumped version to address AWSXRayRecorder.Core package change
-
The default sampling strategy now uses sampling rules. The strategy now runs background tasks that poll X-Ray for updated sampling rules and targets. If you currently use a configuration file to define local sampling rules, the SDK will use those rules as a backup to rules that are defined in the console. To use only local rules, build the recorder with a
LocalizedSamplingStrategy. -
Removed
SampleDecision Sample(string serviceName, string path, string method);andSampleDecision Sample(HttpRequestMessage request);fromISamplingStrategyinterface. -
Renamed namespace for
LocalizedSamplingStartegy.csfromAmazon.XRay.Recorder.Core.SamplingtoAmazon.XRay.Recorder.Core.Sampling.Local -
Changed constant
UdpSegmentEmitter.EnvironmentVariableDaemonAddresstoDaemonConfig.EnvironmentVariableDaemonAddress -
Changed
void BeginSegment(string name, string traceId, string parentId = null, SampleDecision sampleDecision = SampledDecision.Sampled);tovoid BeginSegment(string name, string traceId = null, string parentId = null, SamplingResponse? samplingResponse = null, DateTime? timestamp = null););ofIAWSXRayRecorderinterface andAWSXRayRecorderclass. -
The
BeginSegment()method now uses the recorder's sampling strategy to make a sampling decision ifSampleDecisionis not present inSamplingResponseinstance as an argument. Previously, the segment would be sampled by default. -
Removed
EndSegment(),EndSegment(decimal timestamp)and addedvoid EndSegment(DateTime? timestamp = null);onIAWSXRayRecorderinterface andAWSXRayRecorderclass. -
Removed
public void BeginSegment(string name, string traceId, decimal timestamp, string parentId = null, SampleDecision? sampleDecision = null)onAWSXRayRecorderinstance. -
.NET Core : Changed method from
AWSXRayRecorder.InitializeInstance(IConfiguration configuration, AWSXRayRecorder recorder)toAWSXRayRecorder.InitializeInstance(IConfiguration configuration = null, AWSXRayRecorder recorder = null)
-
Added
ShoudTrace()method toISamplingStartegyinterface -
Environment variable
AWS_TRACING_DAEMON_ADDRESSandWithDaemonAddress()onAwsXrayRecorderBuilder.csclass can now take a value of the form127.0.0.1:2000ortcp:127.0.0.1:2000 udp:127.0.0.2:2001orudp:127.0.0.1:2000 tcp:127.0.0.2:2001. The former one means UDP and TCP are running at the same address and the later ones specify individual addresses for tcp and udp. By default it assumes a X-Ray daemon running at 127.0.0.1:2000 listening to both UDP and TCP traffic. -
Update DefaultSamplingRules.json file. i.e.
service_namehas been replaced tohostand version changed to2. SDK still supports v1 JSON file. -
Adding support for reading context missing startegy setting from IConfiguration : PR #35 for .NET Core and from Appsettings.json for .NET
- Bumped version to address AWSXRayRecorder.Core package change
- Bumped version to address AWSXRayRecorder.Core package change
- Bumped version to address AWSXRayRecorder.Core package change
- Bumped version to address AWSXRayRecorder.Core package change
- Bumped version to address AWSXRayRecorder.Core package change
- .NET and .NET Core : Added
WithSegmentEmitter()onAwsXrayRecorderBuilderclass to accept customISegmentEmitterinstance - .NET and .NET Core :
WithSamplingStrategythrowsArgumentNullExceptionon null argument
- Bumped version to address AWSXRayRecorder.Core package change
- Bumped version to address AWSXRayRecorder.Core package change
- Handling null value for
RegionEndpointof AWS SDK client PR: #22
- Bumped version to address AWSXRayRecorder.Core package change
- Bumped version to address AWSXRayRecorder.Core package change
- .NET and .NET Core : Fixed serialization issue for Http method PR: #12,
Amazon.Util.Internal.ConstantClassPR: #16 - .NET and .NET Core : Setting custom recorder to
AWSXRayRecorder.Instance(issue: #18)
- .NET and .NET Core: Support for
HttpClientclass (PR: #5)
- Bumped version to address AWSXRayRecorder.Core package change
- Added AWS S3 service in the AWS service manifest file
- Added
selectattribute for Dynamo DB andInvocationTypeattribute for Lambda service
- Bumped version to address AWSXRayRecorder.Core package change
- .NET and .NET Core : Updated
sdkattribute of the Trace - .NET and .NET Core : Changed return type of
TraceMethodAsync()method toTask(issue: #9)
- Bumped version to address AWSXRayRecorder.Core package change
- Bumped version to address AWSXRayRecorder.Core package change
- Bumped version to address AWSXRayRecorder.Core package change
- Bumped version to address AWSXRayRecorder.Core package change
- Bumped version to address AWSXRayRecorder.Core package change
- .NET Core : In AWS Lambda environment, TraceContext.GetEntity() is now casted to Entity instead of Subsegment
- .NET and .NET Core : Improve logging
- Bumped version to address AWSXRayRecorder.Core package change
- Bumped version to address AWSXRayRecorder.Core package change
- Bumped version to address AWSXRayRecorder.Core package change
- Bumped version to address AWSXRayRecorder.Core package change
- Bumped version to address AWSXRayRecorder.Core package change
- .NET Core 2.0 support
- Added AWS Lambda support for .NET Core 2.0 and above
- Added Elastic Beanstalk and ECS plugins
- .NET Core 2.0 support
- Added support for asynchronous method calls
- .NET Core 2.0 support
- Added support for asynchronous method calls
- .NET Core 2.0 support
- AWS SDK Handler is changed. Deprecated - AWSSdkTracingHandler class
- Package for ASP.NET Framework
- Package for ASP.NET Core 2.0 Framework
- This functionality is included in AWSXRayRecorder.Handlers.AspNet package
- Reorganize 'aws.xray' filed to move runtime related informantion into 'service' field.
- Just bump up version for GA
- Just bump up version for GA
- Just bump up version for GA
- Just bump up version for GA
- Exceptions that Entity and Subsegment are not decorated as Serializable.
- Reorganize 'aws.xray' filed to move runtime related informantion into 'service' field.
- Exceptions that Entity and Subsegment are not decorated as Serializable.
- Just bump up version for GA
- Just bump up version for GA
- Just bump up version for GA
- Just bump up version for GA
- Just bump up version for GA
- Subsegment name for S3 client is not captured correctly.
- Dynamo ListTables response descriptor to get number of tables returned.
- Update usage of interface in sync with Core Runtime 1.0.2-beta
- Update usage of interface in sync with Core Runtime 1.0.2-beta
- Runtime information to the
aws.xraynamespace on segments. - Added a
ContextMissingStrategyproperty to theIAWSXRayRecorderinterface. This allows configuration of the exception behavior exhibited when trace context is not properly propagated. The behavior can be configured in code. Alternatively, the environment variableAWS_XRAY_CONTEXT_MISSINGcan be used (overrides any modes set in code). Valid values for this environment variable are currently (case insensitive)RUNTIME_ERRORandLOG_ERROR. By default, an exception will be thrown on missing context.
- Renamed
SegmentNotAvailableExceptiontoEntityNotAvailableException
- Capturing 'x_forwarded_for' header from incoming HTTP request
- Method
AddMetadatatoIAWSXRayRecorderinterface. - Method
SetDaemonAddresstoIAWSXRayRecorderinterface. - Propert
RuntimeContexttoIAWSXRayRecorderinterface. DefaultSamplingRule.jsonas embedded resource.- Requirement to provide default sampling rule, otherwise
InvalidSamplingConfigurationExceptionwill be thrown. - Constructor to
LocalizedSamplingStrategywithout path which loads default sampling rules. - Method
Sample(string serviceName, string path, string method)to interfaceISamplingStrategy. - New Exception type
InvalidSamplingConfigurationException.
- Attribute aws.xray.sdk get renamed to aws.xray.sdk_version.
- Resolution of start/end time to microsecond.
- Parameter type of method
TryGetRuntimeContextin intercaeIPlugfromDictionarytoIDictionary. - The json format of sampling configuration.
DefaultAWSWhitelist.jsonas embedded resource.- Constructor to
AWSSdkTracingHandlerwithout path which loads default AWS whitelist configuration.
- Rename
TracingEventHandlertoAWSSdkTracingHandler. - Reorganized classed to
Entitiesnamespace.
- Feature of setting error/fault/throttle to subsegment based on the response code received from downstream HTTP service.
- Package AWSXRayRecorder.Core. It provides the core functions to control tracing segment and communication to daemon.
- Package AWSXRayRecorder.Handlers.AspNet.WebApi` package. It provides functionality to trace ASP.NET Web API requests.
- Package AWSXRayRecorder.Handlers.AwsSdk package. It provides functionality to trace AWSSDK request.
- Package AWSXRayRecorder.Handlers.SqlServer package. It provides functionality to trace queries to SQl Server.
- Package AWSXRayRecorder.Handlers.System.Net` package. It provides functionality to trace WebRequest from System.Net namespace.
- Environment variable AWS_XRAY_DAEMON_ADDRESS to configure target daemon address and port.
- Environment variable AWS_XRAY_TRACING_NAME to configure segment name.
- Support of chaining exceptions, which increase efficiency to serialize Exceptions.
FixedSegmentNamingStrategyandDynamicSegmentNamingStrategy.- Attribute aws.xray.sdk to capture version of the SDK.
- AWSXRayRecorder package. It has been split into AWSXRayRecorder.Core and AWSXRayRecorder.Handlers packages. AWSXRayRecorder package become a meta-package, which do not contain any code, but only defines dependencies to all subpackages.
- Modified
TracingMessageHandlerto require an instance ofSegmentNamingStrategywhen instantiating. A shorthand constructor which accepts a singlestringis also provided to simplify use of theFixedSegmentNamingStrategy.
- A bug in the wildcard matching logic used in sampling rules and
TracingMessageHandler.
- Method
AddEventHandlerfrom interfaceIAWSXRayRecorder
- Fixed a bug where file handler is not properly closed.