Пример #1
0
 protected ApplicationInsightsSpan(ApplicationInsightsTracer tracer,
                                   IApplicationInsightsSpanContext typedContext,
                                   string operationName, DateTimeOffset start, SpanKind spanKind,
                                   Endpoint localEndpoint = null, Dictionary <string, string> tagsActual = null)
 {
     TypedContext  = typedContext;
     SpanKind      = spanKind;
     OperationName = operationName;
     Started       = start;
     LocalEndpoint = localEndpoint;
     Tracer        = tracer;
 }
Пример #2
0
        public RequestSpan(ApplicationInsightsTracer tracer, IApplicationInsightsSpanContext typedContext,
                           string operationName, DateTimeOffset start, SpanKind spanKind, Endpoint localEndpoint = null,
                           Dictionary <string, string> tagsActual = null) : base(tracer, typedContext, operationName, start, spanKind,
                                                                                 localEndpoint, tagsActual)
        {
            var telemetry = new RequestTelemetry {
                Id = typedContext.SpanId, Name = operationName
            };

            InitializeTelemetry(typedContext, localEndpoint, tagsActual, telemetry);

            _operation = Tracer.Client.StartOperation(telemetry);
        }
Пример #3
0
 public bool Equals(IApplicationInsightsSpanContext other)
 {
     if (ReferenceEquals(null, other))
     {
         return(false);
     }
     if (ReferenceEquals(this, other))
     {
         return(true);
     }
     return(string.Equals(TraceId, other.TraceId) &&
            string.Equals(SpanId, other.SpanId) &&
            string.Equals(ParentId, other.ParentId));
 }
Пример #4
0
        internal static void InitializeTelemetry(IApplicationInsightsSpanContext typedContext, Endpoint localEndpoint,
                                                 Dictionary <string, string> tagsActual, ITelemetry telemetry)
        {
            telemetry.Context.Operation.Id       = typedContext.TraceId;
            telemetry.Context.Operation.ParentId = typedContext.ParentId;
            telemetry.Context.Location.Ip        = localEndpoint?.Host;
            telemetry.Context.Cloud.RoleInstance = localEndpoint?.Host + localEndpoint?.Port;
            telemetry.Context.Cloud.RoleName     = localEndpoint?.ServiceName;

            // pre-populate all tags
            if (tagsActual != null)
            {
                foreach (var tag in tagsActual)
                {
                    telemetry.Context.Properties[tag.Key] = tag.Value;
                }
            }
        }