in src/sdk/Utils/SqlRequestUtil.cs [158:195]
private static string BuildSubsegmentName(DbCommand command)
=> command.Connection.Database + "@" + RemovePortNumberFromDataSource(command.Connection.DataSource);
/// <summary>
/// Check if subsegment should collect Sql command text.
/// </summary>
#if !NET45
internal static bool ShouldCollectSqlText()
=> AWSXRayRecorder.Instance.XRayOptions.CollectSqlQueries;
#else
internal static bool ShouldCollectSqlText()
=> AppSettings.CollectSqlQueries;
#endif
/// <summary>
/// Check if it's within an ef core subsegment, if so, skip it
/// </summary>
internal static bool IsTraceable()
{
try
{
var subsegment = AWSXRayRecorder.Instance.GetEntity() as Subsegment;
if (subsegment == null || subsegment.Sql == null)
{
return true;
}
if (subsegment.IsInProgress && subsegment.Sql.Count > 0)
{
return false;
}
}
catch (EntityNotAvailableException e)
{
AWSXRayRecorder.Instance.TraceContext.HandleEntityMissing(AWSXRayRecorder.Instance, e, "Failed to get entity since it is not available in trace context.");
}
return true;
}