Compare commits

..

1 Commits

Author SHA1 Message Date
tx7do
670e33498a feat: tracer 2023-10-27 19:55:44 +08:00
2 changed files with 31 additions and 10 deletions

View File

@@ -1,3 +1,3 @@
git tag v0.2.8 git tag v0.2.9
git push origin --tags git push origin --tags

View File

@@ -3,6 +3,7 @@ package bootstrap
import ( import (
"context" "context"
"errors" "errors"
"strings"
"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc" "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc"
"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp" "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp"
@@ -23,15 +24,17 @@ func NewTracerExporter(exporterName, endpoint string) (traceSdk.SpanExporter, er
exporterName = "jaeger" exporterName = "jaeger"
} }
ctx := context.Background()
switch exporterName { switch exporterName {
case "zipkin": case "zipkin":
return NewZipkinExporter(endpoint) return NewZipkinExporter(ctx, endpoint)
case "jaeger": case "jaeger":
fallthrough fallthrough
case "otlptracehttp": case "otlptracehttp":
return NewOtlpHttpExporter(endpoint) return NewOtlpHttpExporter(ctx, endpoint)
case "otlptracegrpc": case "otlptracegrpc":
return NewOtlpGrpcExporter(endpoint) return NewOtlpGrpcExporter(ctx, endpoint)
default: default:
return nil, errors.New("exporter type not support") return nil, errors.New("exporter type not support")
} }
@@ -81,21 +84,39 @@ func NewTracerProvider(cfg *conf.Tracer, serviceInfo *ServiceInfo) error {
} }
// NewZipkinExporter 创建一个zipkin导出器 // NewZipkinExporter 创建一个zipkin导出器
func NewZipkinExporter(endpoint string) (traceSdk.SpanExporter, error) { func NewZipkinExporter(_ context.Context, endpoint string) (traceSdk.SpanExporter, error) {
return zipkin.New(endpoint) return zipkin.New(endpoint)
} }
//// NewJaegerExporter 创建一个jaeger导出器 //// NewJaegerExporter 创建一个jaeger导出器
//func NewJaegerExporter(endpoint string) (traceSdk.SpanExporter, error) { //func NewJaegerExporter(_ context.Context, endpoint string) (traceSdk.SpanExporter, error) {
// return jaeger.New(jaeger.WithCollectorEndpoint(jaeger.WithEndpoint(endpoint))) // return jaeger.New(jaeger.WithCollectorEndpoint(jaeger.WithEndpoint(endpoint)))
//} //}
// NewOtlpHttpExporter 创建一个OTLP HTTP导出器 // NewOtlpHttpExporter 创建一个OTLP HTTP导出器
func NewOtlpHttpExporter(endpoint string) (traceSdk.SpanExporter, error) { func NewOtlpHttpExporter(ctx context.Context, endpoint string, options ...otlptracehttp.Option) (traceSdk.SpanExporter, error) {
return otlptracehttp.New(context.Background(), otlptracehttp.WithEndpoint(endpoint)) var opts []otlptracehttp.Option
opts = append(opts, otlptracehttp.WithEndpoint(endpoint))
if strings.HasPrefix(endpoint, "http://") {
opts = append(opts, otlptracehttp.WithInsecure())
}
opts = append(opts, options...)
return otlptracehttp.New(ctx, opts...)
} }
// NewOtlpGrpcExporter 创建一个OTLP GRPC导出器 // NewOtlpGrpcExporter 创建一个OTLP GRPC导出器
func NewOtlpGrpcExporter(endpoint string) (traceSdk.SpanExporter, error) { func NewOtlpGrpcExporter(ctx context.Context, endpoint string, options ...otlptracegrpc.Option) (traceSdk.SpanExporter, error) {
return otlptracegrpc.New(context.Background(), otlptracegrpc.WithEndpoint(endpoint)) var opts []otlptracegrpc.Option
opts = append(opts, otlptracegrpc.WithEndpoint(endpoint))
if strings.HasPrefix(endpoint, "http://") {
opts = append(opts, otlptracegrpc.WithInsecure())
}
opts = append(opts, options...)
return otlptracegrpc.New(ctx, opts...)
} }