private static CallTargetState CommonOnMethodBegin(CouchbaseTags tags) { try { var tracer = Tracer.Instance; var serviceName = tracer.Settings.GetServiceName(tracer, ServiceName); var scope = tracer.StartActiveInternal(OperationName, serviceName: serviceName, tags: tags); scope.Span.Type = SpanTypes.Db; scope.Span.ResourceName = tags.OperationCode; tracer.TracerManager.Telemetry.IntegrationGeneratedSpan(IntegrationId); return(new CallTargetState(scope)); } catch (Exception ex) { Log.Error(ex, "Error creating or populating scope."); return(CallTargetState.GetDefault()); } }
internal static CallTargetState CommonOnMethodBeginV3 <TOperation>(TOperation tOperation) { if (!Tracer.Instance.Settings.IsIntegrationEnabled(IntegrationId) || tOperation == null) { // integration disabled, don't create a scope, skip this trace return(CallTargetState.GetDefault()); } var operation = tOperation.DuckCast <OperationStructV3>(); var tags = new CouchbaseTags() { OperationCode = operation.OpCode.ToString(), Bucket = operation.BucketName, Key = operation.Key, }; return(CommonOnMethodBegin(tags)); }
internal static CallTargetState CommonOnMethodBegin <TOperation>(TOperation tOperation) { if (!Tracer.Instance.Settings.IsIntegrationEnabled(IntegrationId) || tOperation == null) { // integration disabled, don't create a scope, skip this trace return(CallTargetState.GetDefault()); } var operation = tOperation.DuckCast <OperationStruct>(); var host = operation.CurrentHost?.Address?.ToString(); var port = operation.CurrentHost?.Port.ToString(); var code = operation.OperationCode.ToString(); var tags = new CouchbaseTags() { OperationCode = code, Key = operation.Key, Host = host, Port = port }; return(CommonOnMethodBegin(tags)); }