feat: notify config, refactor config load.

This commit is contained in:
tx7do
2023-10-26 16:46:14 +08:00
parent 6d18bc0ffe
commit e7883775ed
24 changed files with 1907 additions and 1177 deletions

View File

@@ -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))
}