Beispiel #1
0
        /// <summary>
        /// Create an entry span
        /// </summary>
        public ISpan CreateEntrySpan(string operationName)
        {
            if (!EnsureLimitMechanismWorking(out var noopSpan))
            {
                return(noopSpan);
            }

            _activeSpanStacks.TryPeek(out var parentSpan);
            var parentSpanId = parentSpan?.SpanId ?? -1;

            if (parentSpan != null && parentSpan.IsEntry)
            {
                parentSpan.OperationName = operationName;
                return(parentSpan.Start());
            }
            else
            {
                var entrySpan = new EntrySpan(_spanIdGenerator++, parentSpanId, operationName);

                entrySpan.Start();

                _activeSpanStacks.Push(entrySpan);

                return(entrySpan);
            }
        }
Beispiel #2
0
        public ISpan CreateEntrySpan(string operationName)
        {
            _activeSpanStacks.TryPeek(out var parentSpan);
            var parentSpanId = parentSpan?.SpanId ?? "-1";

            if (parentSpan != null && parentSpan.IsEntry)
            {
                parentSpan.OperationName = operationName;
                return(parentSpan.Start());
            }
            else
            {
                var entrySpan = new EntrySpan(RandomUtils.NextLong().ToString(), parentSpanId, operationName);
                entrySpan.Start();
                _activeSpanStacks.Push(entrySpan);
                return(entrySpan);
            }
        }
        /// <summary>
        /// Create an entry span
        /// </summary>
        public ISpan CreateEntrySpan(string operationName, string activityId, string parentId)
        {
            if (!EnsureLimitMechanismWorking(activityId, out var noopSpan))
            {
                return(noopSpan);
            }

            var parentSpanId = -1;

            if (!string.IsNullOrWhiteSpace(parentId))
            {
                _activeSpanDic.TryGetValue(parentId, out var parentSpan);
                parentSpanId = parentSpan?.SpanId ?? -1;
            }

            var entrySpan = new EntrySpan(_spanIdGenerator++, parentSpanId, operationName);

            entrySpan.Start();
            TryAddSpan(activityId, entrySpan);

            return(entrySpan);
        }