Esempio n. 1
0
        /// <summary>Snippet for CreateSpanAsync</summary>
        public async Task CreateSpanRequestObjectAsync()
        {
            // Snippet: CreateSpanAsync(Span, CallSettings)
            // Additional: CreateSpanAsync(Span, CancellationToken)
            // Create client
            TraceServiceClient traceServiceClient = await TraceServiceClient.CreateAsync();

            // Initialize request argument(s)
            Span request = new Span
            {
                SpanName                = SpanName.FromProjectTraceSpan("[PROJECT]", "[TRACE]", "[SPAN]"),
                SpanId                  = "",
                ParentSpanId            = "",
                DisplayName             = new TruncatableString(),
                StartTime               = new Timestamp(),
                EndTime                 = new Timestamp(),
                Attributes              = new Span.Types.Attributes(),
                StackTrace              = new StackTrace(),
                TimeEvents              = new Span.Types.TimeEvents(),
                Links                   = new Span.Types.Links(),
                Status                  = new Status(),
                SameProcessAsParentSpan = false,
                ChildSpanCount          = 0,
            };
            // Make the request
            Span response = await traceServiceClient.CreateSpanAsync(request);

            // End snippet
        }
Esempio n. 2
0
 /// <summary>Snippet for CreateSpan</summary>
 public void CreateSpanRequestObject()
 {
     // Snippet: CreateSpan(Span, CallSettings)
     // Create client
     TraceServiceClient traceServiceClient = TraceServiceClient.Create();
     // Initialize request argument(s)
     Span request = new Span
     {
         SpanName                = SpanName.FromProjectTraceSpan("[PROJECT]", "[TRACE]", "[SPAN]"),
         SpanId                  = "",
         ParentSpanId            = "",
         DisplayName             = new TruncatableString(),
         StartTime               = new Timestamp(),
         EndTime                 = new Timestamp(),
         Attributes              = new Span.Types.Attributes(),
         StackTrace              = new StackTrace(),
         TimeEvents              = new Span.Types.TimeEvents(),
         Links                   = new Span.Types.Links(),
         Status                  = new Status(),
         SameProcessAsParentSpan = new bool?(),
         ChildSpanCount          = new int?(),
     };
     // Make the request
     Span response = traceServiceClient.CreateSpan(request);
     // End snippet
 }
        public async stt::Task CreateSpanRequestObjectAsync()
        {
            moq::Mock <TraceService.TraceServiceClient> mockGrpcClient = new moq::Mock <TraceService.TraceServiceClient>(moq::MockBehavior.Strict);
            Span request = new Span
            {
                SpanName                = SpanName.FromProjectTraceSpan("[PROJECT]", "[TRACE]", "[SPAN]"),
                SpanId                  = "span_id47c232d3",
                ParentSpanId            = "parent_span_ide637f6a2",
                DisplayName             = new TruncatableString(),
                StartTime               = new wkt::Timestamp(),
                EndTime                 = new wkt::Timestamp(),
                Attributes              = new Span.Types.Attributes(),
                StackTrace              = new StackTrace(),
                TimeEvents              = new Span.Types.TimeEvents(),
                Links                   = new Span.Types.Links(),
                Status                  = new gr::Status(),
                SameProcessAsParentSpan = false,
                ChildSpanCount          = -1491694397,
                SpanKind                = Span.Types.SpanKind.Consumer,
            };
            Span expectedResponse = new Span
            {
                SpanName                = SpanName.FromProjectTraceSpan("[PROJECT]", "[TRACE]", "[SPAN]"),
                SpanId                  = "span_id47c232d3",
                ParentSpanId            = "parent_span_ide637f6a2",
                DisplayName             = new TruncatableString(),
                StartTime               = new wkt::Timestamp(),
                EndTime                 = new wkt::Timestamp(),
                Attributes              = new Span.Types.Attributes(),
                StackTrace              = new StackTrace(),
                TimeEvents              = new Span.Types.TimeEvents(),
                Links                   = new Span.Types.Links(),
                Status                  = new gr::Status(),
                SameProcessAsParentSpan = false,
                ChildSpanCount          = -1491694397,
                SpanKind                = Span.Types.SpanKind.Consumer,
            };

            mockGrpcClient.Setup(x => x.CreateSpanAsync(request, moq::It.IsAny <grpccore::CallOptions>())).Returns(new grpccore::AsyncUnaryCall <Span>(stt::Task.FromResult(expectedResponse), null, null, null, null));
            TraceServiceClient client = new TraceServiceClientImpl(mockGrpcClient.Object, null);
            Span responseCallSettings = await client.CreateSpanAsync(request, gaxgrpc::CallSettings.FromCancellationToken(st::CancellationToken.None));

            xunit::Assert.Same(expectedResponse, responseCallSettings);
            Span responseCancellationToken = await client.CreateSpanAsync(request, st::CancellationToken.None);

            xunit::Assert.Same(expectedResponse, responseCancellationToken);
            mockGrpcClient.VerifyAll();
        }
Esempio n. 4
0
        public void CreateSpanRequestObject()
        {
            moq::Mock <TraceService.TraceServiceClient> mockGrpcClient = new moq::Mock <TraceService.TraceServiceClient>(moq::MockBehavior.Strict);
            Span request = new Span
            {
                SpanName                = SpanName.FromProjectTraceSpan("[PROJECT]", "[TRACE]", "[SPAN]"),
                SpanId                  = "span_id47c232d3",
                ParentSpanId            = "parent_span_ide637f6a2",
                DisplayName             = new TruncatableString(),
                StartTime               = new wkt::Timestamp(),
                EndTime                 = new wkt::Timestamp(),
                Attributes              = new Span.Types.Attributes(),
                StackTrace              = new StackTrace(),
                TimeEvents              = new Span.Types.TimeEvents(),
                Links                   = new Span.Types.Links(),
                Status                  = new gr::Status(),
                SameProcessAsParentSpan = new bool?(),
                ChildSpanCount          = new int?(),
            };
            Span expectedResponse = new Span
            {
                SpanName                = SpanName.FromProjectTraceSpan("[PROJECT]", "[TRACE]", "[SPAN]"),
                SpanId                  = "span_id47c232d3",
                ParentSpanId            = "parent_span_ide637f6a2",
                DisplayName             = new TruncatableString(),
                StartTime               = new wkt::Timestamp(),
                EndTime                 = new wkt::Timestamp(),
                Attributes              = new Span.Types.Attributes(),
                StackTrace              = new StackTrace(),
                TimeEvents              = new Span.Types.TimeEvents(),
                Links                   = new Span.Types.Links(),
                Status                  = new gr::Status(),
                SameProcessAsParentSpan = new bool?(),
                ChildSpanCount          = new int?(),
            };

            mockGrpcClient.Setup(x => x.CreateSpan(request, moq::It.IsAny <grpccore::CallOptions>())).Returns(expectedResponse);
            TraceServiceClient client = new TraceServiceClientImpl(mockGrpcClient.Object, null);
            Span response             = client.CreateSpan(request);

            xunit::Assert.Same(expectedResponse, response);
            mockGrpcClient.VerifyAll();
        }
Esempio n. 5
0
        private void AddTrace(HttpListenerContext _Context, bool _bNewSpan, Action <string> _ErrorMessageAction = null)
        {
            //Start
            if (_bNewSpan)
            {
                _Context.Request.Headers.Set("span-start-time", DateTime.Now.ToString());
            }
            //End
            else
            {
                var TraceID = _Context.Request.Headers.Get("trace-id");
                if (TraceID == null || TraceID.Length == 0)
                {
                    //It is a new trace
                    TraceID = Guid.NewGuid().ToString("N");
                }

                string ParentSpanID = null;
                string SpanID       = _Context.Request.Headers.Get("span-id");
                if (SpanID != null && SpanID.Length > 0)
                {
                    ParentSpanID = SpanID;
                }
                SpanID = GetRandomHexNumber(16);

                _Context.Request.Headers.Set("trace-id", TraceID);
                _Context.Request.Headers.Set("span-id", SpanID);

                var LegitSpanName = new SpanName(ProjectName.ProjectId, TraceID, SpanID);
                var TruncString   = new TruncatableString
                {
                    Value = _Context.Request.HttpMethod + "->" + _Context.Request.Url.AbsolutePath,
                    TruncatedByteCount = 0
                };

                Timestamp StartTime = null;
                try
                {
                    StartTime = Timestamp.FromDateTimeOffset(DateTime.Parse(_Context.Request.Headers.Get("span-start-time")));
                }
                catch (Exception ex)
                {
                    _ErrorMessageAction?.Invoke("BTracingServiceGC->AddTrace: " + ex.Message + ", Trace: " + ex.StackTrace);
                }

                var Span = new Span
                {
                    SpanName    = LegitSpanName,
                    DisplayName = TruncString,
                    SpanId      = SpanID,
                    StartTime   = StartTime ?? Timestamp.FromDateTimeOffset(DateTime.Now),
                    EndTime     = Timestamp.FromDateTimeOffset(DateTime.Now),
                    Attributes  = new Span.Types.Attributes()
                };
                if (ParentSpanID != null)
                {
                    Span.ParentSpanId = ParentSpanID;
                }

                AddEntryToSpan(Span, "Service Name", ProgramUniqueID);
                AddEntryToSpan(Span, "HTTP Method", _Context.Request.HttpMethod);
                AddEntryToSpan(Span, "HTTP URL", _Context.Request.Url.AbsoluteUri);
                AddEntryToSpan(Span, "HTTP Path", _Context.Request.Url.AbsolutePath);

                lock (Spans)
                {
                    Spans.Add(Span);
                }
            }
        }
Esempio n. 6
0
        public override int GetHashCode()
        {
            int hash = 1;

            if (TraceId.Length != 0)
            {
                hash ^= TraceId.GetHashCode();
            }
            if (SpanId.Length != 0)
            {
                hash ^= SpanId.GetHashCode();
            }
            if (ParentSpanId.Length != 0)
            {
                hash ^= ParentSpanId.GetHashCode();
            }
            if (SpanName.Length != 0)
            {
                hash ^= SpanName.GetHashCode();
            }
            if (startTime_ != null)
            {
                hash ^= StartTime.GetHashCode();
            }
            if (endTime_ != null)
            {
                hash ^= EndTime.GetHashCode();
            }
            hash ^= SpanTags.GetHashCode();
            if (HttpStatusCode != 0L)
            {
                hash ^= HttpStatusCode.GetHashCode();
            }
            if (ClientSpan != false)
            {
                hash ^= ClientSpan.GetHashCode();
            }
            if (RewriteClientSpanId != false)
            {
                hash ^= RewriteClientSpanId.GetHashCode();
            }
            if (SourceName.Length != 0)
            {
                hash ^= SourceName.GetHashCode();
            }
            if (sourceIp_ != null)
            {
                hash ^= SourceIp.GetHashCode();
            }
            if (DestinationName.Length != 0)
            {
                hash ^= DestinationName.GetHashCode();
            }
            if (destinationIp_ != null)
            {
                hash ^= DestinationIp.GetHashCode();
            }
            if (RequestSize != 0L)
            {
                hash ^= RequestSize.GetHashCode();
            }
            if (RequestTotalSize != 0L)
            {
                hash ^= RequestTotalSize.GetHashCode();
            }
            if (ResponseSize != 0L)
            {
                hash ^= ResponseSize.GetHashCode();
            }
            if (ResponseTotalSize != 0L)
            {
                hash ^= ResponseTotalSize.GetHashCode();
            }
            if (ApiProtocol.Length != 0)
            {
                hash ^= ApiProtocol.GetHashCode();
            }
            if (_unknownFields != null)
            {
                hash ^= _unknownFields.GetHashCode();
            }
            return(hash);
        }