code: @Trivial
      public static Tracer getTracerInstance(String appName) {
          String methodName = "getTracerInstance";
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
              Tr.entry(tc, methodName, appName);
          }
  
          Tracer tracer = null;
  
          if (opentracingTracerFactory != null) {
              try {
                  tracer = opentracingTracerFactory.newInstance(appName);
              } catch (Throwable t) {
                  Tr.error(tc, "OPENTRACING_COULD_NOT_CREATE_TRACER", t);
              }
          }
  
          // It's not worth synchronizing around this and creating a
          // bottleneck, since the only purpose is to print an error
          // message if there is no factory configured. In the worst
          // (and unlikely) case, this may cause a handful of those error messages to
          // be printed instead of the expected 1, and this is fine
          // to avoid the performance impact.
          if (factoryFirstUse) {
              factoryFirstUse = false;
  
              if (opentracingTracerFactory == null) {
                  Tr.error(tc, "OPENTRACING_NO_TRACERFACTORY");
              }
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
              Tr.exit(tc, methodName, OpentracingUtils.getTracerText(tracer));
          }
          return tracer;
      }
docs: <p>Answer a tracer instance for a named application.</p>
  
  <p>Invoked from {@link com.ibm.ws.opentracing.OpentracingTracerManager#createTracer(String)}.</p>
  
  @param appName The name of the application for which to create the tracer instance.
  
  @return The new tracer.