func startTrace()

in Sources/apm-agent-ios/Instrumentation/ViewController/TraceLogger.swift [30:66]


  func startTrace(tracer: Tracer, associatedObject: AnyObject, name: String, preferredName: String?) -> Span? {
    spanLock.lock()
    defer {
      spanLock.unlock()
    }
    loadCount+=1
    var activeSpan = getActiveSpan()

    if activeSpan == nil {
      let builder = tracer.spanBuilder(spanName: "\(name)")
        .setActive(true)
        .setNoParent()
        .setSpanKind(spanKind: .client)

      let span = builder.startSpan()
      os_log("Started trace: %@ - %@ - %@",
             log: logger,
             type: .debug,
             name,
             span.context.traceId.description,
             span.context.spanId.description)

      setActiveSpan(span)
      activeSpan = span
    }

    if let span = activeSpan {
      OpenTelemetry.instance.contextProvider.setActiveSpan(span)

    }

    if let preferredName = preferredName, activeSpan?.name != preferredName {
      activeSpan?.name = preferredName

    }
    return activeSpan
  }