30 lines
697 B
Go
30 lines
697 B
Go
|
package grpc
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
|
||
|
"go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc"
|
||
|
"go.opentelemetry.io/otel/metric"
|
||
|
"go.opentelemetry.io/otel/trace"
|
||
|
sdktrace "go.opentelemetry.io/otel/sdk/trace"
|
||
|
"google.golang.org/grpc"
|
||
|
|
||
|
"gitea.libretechconsulting.com/rmcguire/go-app/pkg/srv/grpc/opts"
|
||
|
)
|
||
|
|
||
|
type AppGRPCServer struct {
|
||
|
ctx context.Context
|
||
|
tracer trace.Tracer
|
||
|
meter metric.Meter
|
||
|
}
|
||
|
|
||
|
func InitGRPCServer(ctx context.Context, opts *opts.GRPCOpts) {
|
||
|
server := grpc.NewServer()
|
||
|
|
||
|
stats := otelgrpc.NewServerHandler(otelgrpc.WithTracerProvider(sdktrace.T))
|
||
|
|
||
|
for _, service := range opts.Services {
|
||
|
server.RegisterService(service.Type, service.Service)
|
||
|
}
|
||
|
}
|