diff --git a/src/Speckle.Sdk.Dependencies/ISdkActivity.cs b/src/Speckle.Sdk.Dependencies/ISdkActivity.cs index d832c769..0b3d1cea 100644 --- a/src/Speckle.Sdk.Dependencies/ISdkActivity.cs +++ b/src/Speckle.Sdk.Dependencies/ISdkActivity.cs @@ -5,6 +5,7 @@ public interface ISdkActivity : IDisposable void SetTag(string key, object? value); void RecordException(Exception e); string TraceId { get; } + string SpanId { get; } void SetStatus(SdkActivityStatusCode code); void InjectHeaders(Action header); diff --git a/src/Speckle.Sdk.Dependencies/ISdkActivityFactory.cs b/src/Speckle.Sdk.Dependencies/ISdkActivityFactory.cs index 2ed61881..ce69c387 100644 --- a/src/Speckle.Sdk.Dependencies/ISdkActivityFactory.cs +++ b/src/Speckle.Sdk.Dependencies/ISdkActivityFactory.cs @@ -6,7 +6,12 @@ public interface ISdkActivityFactory : IDisposable { /// /// - /// Only need to set if the parent is coming from an external source (e.g.to trace between client and server) /// - ISdkActivity? Start(string? name = default, [CallerMemberName] string source = "", string? parentId = null); + ISdkActivity? Start(string? name = default, [CallerMemberName] string source = ""); + ISdkActivity? StartRemote( + string traceId, + string parentSpanId, + string? name = default, + [CallerMemberName] string source = "" + ); } diff --git a/src/Speckle.Sdk/Logging/NullActivityFactory.cs b/src/Speckle.Sdk/Logging/NullActivityFactory.cs index a8aeb098..e761a9bd 100644 --- a/src/Speckle.Sdk/Logging/NullActivityFactory.cs +++ b/src/Speckle.Sdk/Logging/NullActivityFactory.cs @@ -4,5 +4,8 @@ public sealed class NullActivityFactory : ISdkActivityFactory { public void Dispose() { } - public ISdkActivity? Start(string? name = default, string source = "", string? parentId = null) => null; + public ISdkActivity? Start(string? name = default, string source = "") => null; + + public ISdkActivity? StartRemote(string traceId, string parentSpanId, string? name = default, string source = "") => + null; } diff --git a/tests/Speckle.Sdk.Serialization.Tests/ServerObjectManagerTests.cs b/tests/Speckle.Sdk.Serialization.Tests/ServerObjectManagerTests.cs index 1ba692c9..c81e734e 100644 --- a/tests/Speckle.Sdk.Serialization.Tests/ServerObjectManagerTests.cs +++ b/tests/Speckle.Sdk.Serialization.Tests/ServerObjectManagerTests.cs @@ -52,7 +52,7 @@ public class ServerObjectManagerTests : MoqTest http.Setup(x => x.CreateHttpClient(It.IsAny(), timeout, token)).Returns(httpClient); var activityFactory = Create(); - activityFactory.Setup(x => x.Start(null, "DownloadObjects", null)).Returns((ISdkActivity?)null); + activityFactory.Setup(x => x.Start(null, "DownloadObjects")).Returns((ISdkActivity?)null); var serverObjectManager = new ServerObjectManager( http.Object, @@ -91,7 +91,7 @@ public class ServerObjectManagerTests : MoqTest http.Setup(x => x.CreateHttpClient(It.IsAny(), timeout, token)).Returns(httpClient); var activityFactory = Create(); - activityFactory.Setup(x => x.Start(null, "DownloadSingleObject", null)).Returns((ISdkActivity?)null); + activityFactory.Setup(x => x.Start(null, "DownloadSingleObject")).Returns((ISdkActivity?)null); var serverObjectManager = new ServerObjectManager( http.Object, @@ -132,7 +132,7 @@ public class ServerObjectManagerTests : MoqTest http.Setup(x => x.CreateHttpClient(It.IsAny(), timeout, token)).Returns(httpClient); var activityFactory = Create(); - activityFactory.Setup(x => x.Start(null, "HasObjects", null)).Returns((ISdkActivity?)null); + activityFactory.Setup(x => x.Start(null, "HasObjects")).Returns((ISdkActivity?)null); var serverObjectManager = new ServerObjectManager( http.Object, @@ -171,7 +171,7 @@ public class ServerObjectManagerTests : MoqTest http.Setup(x => x.CreateHttpClient(It.IsAny(), timeout, token)).Returns(httpClient); var activityFactory = Create(); - activityFactory.Setup(x => x.Start(null, "UploadObjects", null)).Returns((ISdkActivity?)null); + activityFactory.Setup(x => x.Start(null, "UploadObjects")).Returns((ISdkActivity?)null); var serverObjectManager = new ServerObjectManager( http.Object,