All notable changes to this project will be documented in this file.
- 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()
toITraceContext
interface. 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
ExceptionSerializationStrategy
interface for serializing exceptions, users can configure custom max number of stack frames to be recorded for exception usingWithExceptionSerializationStrategy()
onAWSXRayRecorderBuilder
class. 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
deprecated
classAWSSdkTracingHandler
. Use AWSSDKHandler to trace AWS SDK requests.
- Removed
deprecated
classTracingMessageHandler
. Use AWSXRayASPNET middleware for tracing ASP.NET and WEB API requests.
- Bumped version to address AWSXRayRecorder.Core package change
- Changed
TraceContext
from static class to instance member ofAWSXRayRecorder
instance TracingContext.GetEntity()
is removed and the new syntax isAWSXRayRecorder.Instance.GetEntity()
- Changed sampling rule key name from
rule_name
tosampling_rule_name
- Changed
public Boolean IsLambda()
topublic static Boolean IsLambda()
- .NET and .NET Core: Added
ITraceContext
interface.AWSXRayRecorder
can be configured with customTraceContext
usingWithTraceContext()
and building recorder instance.ITraceContext
and allTraceContext
s are underAmazon.XRay.Recorder.Core.Internal.Context
namespace - .NET and .NET Core:
ITraceContext
methods 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
TraceContext
for the middleware is changed toHybridContextContainer
. It usesCallContext
andHttpContext
for 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);
fromISamplingStrategy
interface. -
Renamed namespace for
LocalizedSamplingStartegy.cs
fromAmazon.XRay.Recorder.Core.Sampling
toAmazon.XRay.Recorder.Core.Sampling.Local
-
Changed constant
UdpSegmentEmitter.EnvironmentVariableDaemonAddress
toDaemonConfig.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););
ofIAWSXRayRecorder
interface andAWSXRayRecorder
class. -
The
BeginSegment()
method now uses the recorder's sampling strategy to make a sampling decision ifSampleDecision
is not present inSamplingResponse
instance as an argument. Previously, the segment would be sampled by default. -
Removed
EndSegment()
,EndSegment(decimal timestamp)
and addedvoid EndSegment(DateTime? timestamp = null);
onIAWSXRayRecorder
interface andAWSXRayRecorder
class. -
Removed
public void BeginSegment(string name, string traceId, decimal timestamp, string parentId = null, SampleDecision? sampleDecision = null)
onAWSXRayRecorder
instance. -
.NET Core : Changed method from
AWSXRayRecorder.InitializeInstance(IConfiguration configuration, AWSXRayRecorder recorder)
toAWSXRayRecorder.InitializeInstance(IConfiguration configuration = null, AWSXRayRecorder recorder = null)
-
Added
ShoudTrace()
method toISamplingStartegy
interface -
Environment variable
AWS_TRACING_DAEMON_ADDRESS
andWithDaemonAddress()
onAwsXrayRecorderBuilder.cs
class can now take a value of the form127.0.0.1:2000
ortcp:127.0.0.1:2000 udp:127.0.0.2:2001
orudp: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_name
has been replaced tohost
and 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()
onAwsXrayRecorderBuilder
class to accept customISegmentEmitter
instance - .NET and .NET Core :
WithSamplingStrategy
throwsArgumentNullException
on null argument
- Bumped version to address AWSXRayRecorder.Core package change
- Bumped version to address AWSXRayRecorder.Core package change
- Handling null value for
RegionEndpoint
of 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.ConstantClass
PR: #16 - .NET and .NET Core : Setting custom recorder to
AWSXRayRecorder.Instance
(issue: #18)
- .NET and .NET Core: Support for
HttpClient
class (PR: #5)
- Bumped version to address AWSXRayRecorder.Core package change
- Added AWS S3 service in the AWS service manifest file
- Added
select
attribute for Dynamo DB andInvocationType
attribute for Lambda service
- Bumped version to address AWSXRayRecorder.Core package change
- .NET and .NET Core : Updated
sdk
attribute 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.xray
namespace on segments. - Added a
ContextMissingStrategy
property to theIAWSXRayRecorder
interface. 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_MISSING
can be used (overrides any modes set in code). Valid values for this environment variable are currently (case insensitive)RUNTIME_ERROR
andLOG_ERROR
. By default, an exception will be thrown on missing context.
- Renamed
SegmentNotAvailableException
toEntityNotAvailableException
- Capturing 'x_forwarded_for' header from incoming HTTP request
- Method
AddMetadata
toIAWSXRayRecorder
interface. - Method
SetDaemonAddress
toIAWSXRayRecorder
interface. - Propert
RuntimeContext
toIAWSXRayRecorder
interface. DefaultSamplingRule.json
as embedded resource.- Requirement to provide default sampling rule, otherwise
InvalidSamplingConfigurationException
will be thrown. - Constructor to
LocalizedSamplingStrategy
without 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
TryGetRuntimeContext
in intercaeIPlug
fromDictionary
toIDictionary
. - The json format of sampling configuration.
DefaultAWSWhitelist.json
as embedded resource.- Constructor to
AWSSdkTracingHandler
without path which loads default AWS whitelist configuration.
- Rename
TracingEventHandler
toAWSSdkTracingHandler
. - Reorganized classed to
Entities
namespace.
- 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.
FixedSegmentNamingStrategy
andDynamicSegmentNamingStrategy
.- 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
TracingMessageHandler
to require an instance ofSegmentNamingStrategy
when instantiating. A shorthand constructor which accepts a singlestring
is also provided to simplify use of theFixedSegmentNamingStrategy
.
- A bug in the wildcard matching logic used in sampling rules and
TracingMessageHandler
.
- Method
AddEventHandler
from interfaceIAWSXRayRecorder
- Fixed a bug where file handler is not properly closed.