feat: add grpc export (#2379)

Co-authored-by: Gene Wu <gene.wu@cabital.com>
This commit is contained in:
genewoo
2022-09-14 22:54:52 +08:00
committed by GitHub
parent f2a0f78288
commit 05c2f313c7
5 changed files with 40 additions and 2 deletions

View File

@@ -3,12 +3,14 @@ package trace
import (
"context"
"fmt"
"google.golang.org/grpc"
"sync"
"github.com/zeromicro/go-zero/core/lang"
"github.com/zeromicro/go-zero/core/logx"
"go.opentelemetry.io/otel"
"go.opentelemetry.io/otel/exporters/jaeger"
"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc"
"go.opentelemetry.io/otel/exporters/zipkin"
"go.opentelemetry.io/otel/sdk/resource"
sdktrace "go.opentelemetry.io/otel/sdk/trace"
@@ -18,6 +20,7 @@ import (
const (
kindJaeger = "jaeger"
kindZipkin = "zipkin"
kindGrpc = "grpc"
)
var (
@@ -56,6 +59,8 @@ func createExporter(c Config) (sdktrace.SpanExporter, error) {
return jaeger.New(jaeger.WithCollectorEndpoint(jaeger.WithEndpoint(c.Endpoint)))
case kindZipkin:
return zipkin.New(c.Endpoint)
case kindGrpc:
return otlptracegrpc.NewUnstarted(otlptracegrpc.WithInsecure(), otlptracegrpc.WithEndpoint(c.Endpoint), otlptracegrpc.WithDialOption(grpc.WithBlock())), nil
default:
return nil, fmt.Errorf("unknown exporter: %s", c.Batcher)
}

View File

@@ -33,18 +33,24 @@ func TestStartAgent(t *testing.T) {
Endpoint: endpoint3,
Batcher: "otlp",
}
c5 := Config{
Name: "grpc",
Endpoint: endpoint3,
Batcher: "grpc",
}
StartAgent(c1)
StartAgent(c1)
StartAgent(c2)
StartAgent(c3)
StartAgent(c4)
StartAgent(c5)
lock.Lock()
defer lock.Unlock()
// because remotehost cannot be resolved
assert.Equal(t, 2, len(agents))
assert.Equal(t, 3, len(agents))
_, ok := agents[""]
assert.True(t, ok)
_, ok = agents[endpoint1]

View File

@@ -8,5 +8,5 @@ type Config struct {
Name string `json:",optional"`
Endpoint string `json:",optional"`
Sampler float64 `json:",default=1.0"`
Batcher string `json:",default=jaeger,options=jaeger|zipkin"`
Batcher string `json:",default=jaeger,options=jaeger|zipkin|grpc"`
}