func DefaultTracer(reportingURL, serviceName string, tags map[string]string) (*zipkin.Tracer, reporter.Reporter, error) {
	endpoint, err := zipkin.NewEndpoint(serviceName, "")
	if err != nil {
		return nil, nil, err
	}
	reporter := zipkinHttpReporter.NewReporter(reportingURL)
	tracer, err := zipkin.NewTracer(reporter, zipkin.WithLocalEndpoint(endpoint), zipkin.WithTags(tags))
	if err != nil {
		return nil, nil, err
	}
	return tracer, reporter, nil
}
DefaultTracer returns zipkin tracer with defaults for testing
package zipkintracing
import (
	"encoding/json"
	"github.com/labstack/echo/v4"
	"github.com/labstack/echo/v4/middleware"
	"github.com/openzipkin/zipkin-go"
	zipkinhttp "github.com/openzipkin/zipkin-go/middleware/http"
	"github.com/openzipkin/zipkin-go/propagation/b3"
	"github.com/openzipkin/zipkin-go/reporter"
	"io/ioutil"
	"net/http"
	"net/http/httptest"
	"testing"
	"time"
	zipkinHttpReporter "github.com/openzipkin/zipkin-go/reporter/http"
	"github.com/stretchr/testify/assert"
)
type zipkinSpanRequest struct {
	ID            string
	TraceID       string
	Timestamp     uint64
	Name          string
	LocalEndpoint struct {
		ServiceName string
	}
	Tags map[string]string
}