Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Size: Mime:
// (c) Copyright 2023 Supertenant Ltd. - all rights reserved.
// See LICENSE file in project root for license terms.
"use strict";const opentracing=require("opentracing"),spanBuffer=require("../spanBuffer"),tracingUtil=require("../tracingUtil");let serviceName,processIdentityProvider=null;function Span(tracer,name,fields){opentracing.Span.call(this),this.tracerImpl=tracer;let parentContext;if(fields&&fields.references)for(let i=0,length=fields.references.length;i<length;i++){var reference=fields.references[i];reference.type()!==opentracing.REFERENCE_CHILD_OF&&reference.type()!==opentracing.REFERENCE_FOLLOWS_FROM||(parentContext=reference.referencedContext())}var tracer=tracingUtil.generateRandomSpanId(),traceId=(parentContext?parentContext.t:null)||tracer,parentId=(parentContext?parentContext.s:null)||void 0;this._contextImpl=new opentracing.SpanContext,this._contextImpl.s=tracer,this._contextImpl.t=traceId,this._contextImpl.baggage=copyBaggage(parentContext&&parentContext.baggage),this._contextImpl.samplingPriority=parentContext?parentContext.samplingPriority:1,this.span={s:tracer,t:traceId,p:parentId,ec:0,ts:(fields?fields.startTime:null)||Date.now(),d:0,n:"sdk",stack:[],data:{service:serviceName,sdk:{type:parentContext?"local":"entry",name:name,custom:{tags:{},logs:{}}}}},processIdentityProvider&&"function"==typeof processIdentityProvider.getFrom&&(this.span.f=processIdentityProvider.getFrom()),fields&&fields.tags&&this._addTags(fields.tags),fields&&fields.operationName&&(this.span.data.sdk.name=fields.operationName)}function copyBaggage(baggage){if(!baggage)return{};var copy={},keys=Object.keys(baggage);for(let i=0,length=keys.length;i<length;i++){var key=keys[i];copy[key]=baggage[key]}return copy}(module.exports=Span).prototype=Object.create(opentracing.Span.prototype),Span.prototype._context=function(){return this._contextImpl},Span.prototype._tracer=function(){return this.tracerImpl},Span.prototype._setOperationName=function(name){this.span.data.sdk.name=name},Span.prototype._setBaggageItem=function(key,value){this._contextImpl.baggage[key]=value},Span.prototype._getBaggageItem=function(key){return this._contextImpl.baggage[key]},Span.prototype._addTags=function(keyValuePairs){var keys=Object.keys(keyValuePairs);for(let i=0,length=keys.length;i<length;i++){var key=keys[i];this._addTag(key,keyValuePairs[key])}},Span.prototype._addTag=function(key,value){key===opentracing.Tags.ERROR?value&&(this.span.ec=1):key===opentracing.Tags.SPAN_KIND?value===opentracing.Tags.SPAN_KIND_RPC_SERVER||"consumer"===value?this.span.data.sdk.type="entry":value!==opentracing.Tags.SPAN_KIND_RPC_CLIENT&&"producer"!==value||(this.span.data.sdk.type="exit"):key===opentracing.Tags.SAMPLING_PRIORITY?this._contextImpl.samplingPriority=value:this.span.data.sdk.custom.tags[key]=value},Span.prototype._log=function(keyValuePairs,timestamp){null==timestamp&&(timestamp=Date.now());let timestampData=this.span.data.sdk.custom.logs[timestamp];timestampData=timestampData||(this.span.data.sdk.custom.logs[timestamp]={});var keys=Object.keys(keyValuePairs);for(let i=0,length=keys.length;i<length;i++){var key=keys[i];timestampData[key]=keyValuePairs[key]}},Span.prototype._finish=function(finishTime){this._contextImpl.samplingPriority<=0||(null==finishTime&&(finishTime=Date.now()),this.span.d=Math.max(0,finishTime-this.span.ts),spanBuffer.addSpan(this.span))},Span.init=function(config,_processIdentityProvider){config.serviceName&&(serviceName=config.serviceName),processIdentityProvider=_processIdentityProvider},Span.setProcessIdentityProvider=function(fn){processIdentityProvider=fn};