feat: notify config, refactor config load.
This commit is contained in:
45
tracer.go
45
tracer.go
@@ -1,29 +1,22 @@
|
||||
package bootstrap
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
|
||||
"go.opentelemetry.io/otel/exporters/jaeger"
|
||||
"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc"
|
||||
"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp"
|
||||
"go.opentelemetry.io/otel/exporters/zipkin"
|
||||
|
||||
"github.com/tx7do/kratos-bootstrap/gen/api/go/conf/v1"
|
||||
"go.opentelemetry.io/otel"
|
||||
"go.opentelemetry.io/otel/attribute"
|
||||
"go.opentelemetry.io/otel/sdk/resource"
|
||||
traceSdk "go.opentelemetry.io/otel/sdk/trace"
|
||||
semConv "go.opentelemetry.io/otel/semconv/v1.4.0"
|
||||
|
||||
"github.com/tx7do/kratos-bootstrap/gen/api/go/conf/v1"
|
||||
)
|
||||
|
||||
// NewJaegerExporter 创建一个jaeger导出器
|
||||
func NewJaegerExporter(endpoint string) (traceSdk.SpanExporter, error) {
|
||||
return jaeger.New(jaeger.WithCollectorEndpoint(jaeger.WithEndpoint(endpoint)))
|
||||
}
|
||||
|
||||
// NewZipkinExporter 创建一个zipkin导出器
|
||||
func NewZipkinExporter(endpoint string) (traceSdk.SpanExporter, error) {
|
||||
return zipkin.New(endpoint)
|
||||
}
|
||||
|
||||
// NewTracerExporter 创建一个导出器,支持:jaeger和zipkin
|
||||
func NewTracerExporter(exporterName, endpoint string) (traceSdk.SpanExporter, error) {
|
||||
if exporterName == "" {
|
||||
@@ -31,10 +24,14 @@ func NewTracerExporter(exporterName, endpoint string) (traceSdk.SpanExporter, er
|
||||
}
|
||||
|
||||
switch exporterName {
|
||||
case "jaeger":
|
||||
return NewJaegerExporter(endpoint)
|
||||
case "zipkin":
|
||||
return NewZipkinExporter(endpoint)
|
||||
case "jaeger":
|
||||
fallthrough
|
||||
case "otlptracehttp":
|
||||
return NewOtlpHttpExporter(endpoint)
|
||||
case "otlptracegrpc":
|
||||
return NewOtlpGrpcExporter(endpoint)
|
||||
default:
|
||||
return nil, errors.New("exporter type not support")
|
||||
}
|
||||
@@ -82,3 +79,23 @@ func NewTracerProvider(cfg *conf.Tracer, serviceInfo *ServiceInfo) error {
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// NewZipkinExporter 创建一个zipkin导出器
|
||||
func NewZipkinExporter(endpoint string) (traceSdk.SpanExporter, error) {
|
||||
return zipkin.New(endpoint)
|
||||
}
|
||||
|
||||
//// NewJaegerExporter 创建一个jaeger导出器
|
||||
//func NewJaegerExporter(endpoint string) (traceSdk.SpanExporter, error) {
|
||||
// return jaeger.New(jaeger.WithCollectorEndpoint(jaeger.WithEndpoint(endpoint)))
|
||||
//}
|
||||
|
||||
// NewOtlpHttpExporter 创建一个OTLP HTTP导出器
|
||||
func NewOtlpHttpExporter(endpoint string) (traceSdk.SpanExporter, error) {
|
||||
return otlptracehttp.New(context.Background(), otlptracehttp.WithEndpoint(endpoint))
|
||||
}
|
||||
|
||||
// NewOtlpGrpcExporter 创建一个OTLP GRPC导出器
|
||||
func NewOtlpGrpcExporter(endpoint string) (traceSdk.SpanExporter, error) {
|
||||
return otlptracegrpc.New(context.Background(), otlptracegrpc.WithEndpoint(endpoint))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user