Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions enterprise/server/cmd/cache_proxy/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ go_library(
"//enterprise/server/routing/routing_content_addressable_storage_client",
"//enterprise/server/routing/routing_service",
"//enterprise/server/util/proxy_util",
"//enterprise/server/util/trafficstats",
"//proto:cache_service_go_proto",
"//proto:oci_fetcher_go_proto",
"//proto:remote_asset_go_proto",
Expand Down Expand Up @@ -57,6 +58,7 @@ go_library(
"@org_golang_google_genproto_googleapis_bytestream//:bytestream",
"@org_golang_google_grpc//:grpc",
"@org_golang_google_grpc//channelz/service",
"@org_golang_google_grpc//stats",
],
)

Expand Down
7 changes: 7 additions & 0 deletions enterprise/server/cmd/cache_proxy/cache_proxy.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ import (
"github.com/buildbuddy-io/buildbuddy/enterprise/server/routing/routing_content_addressable_storage_client"
"github.com/buildbuddy-io/buildbuddy/enterprise/server/routing/routing_service"
"github.com/buildbuddy-io/buildbuddy/enterprise/server/util/proxy_util"
"github.com/buildbuddy-io/buildbuddy/enterprise/server/util/trafficstats"
"github.com/buildbuddy-io/buildbuddy/server/cache_server"
"github.com/buildbuddy-io/buildbuddy/server/config"
"github.com/buildbuddy-io/buildbuddy/server/real_environment"
Expand Down Expand Up @@ -57,6 +58,7 @@ import (
http_interceptors "github.com/buildbuddy-io/buildbuddy/server/http/interceptors"
bspb "google.golang.org/genproto/googleapis/bytestream"
channelzservice "google.golang.org/grpc/channelz/service"
"google.golang.org/grpc/stats"
)

var (
Expand Down Expand Up @@ -202,6 +204,10 @@ func main() {
}

func startGRPCServers(env *real_environment.RealEnv) error {
trafficStatsHandler, err := trafficstats.NewServerHandler()
if err != nil {
return status.WrapError(err, "failed to create traffic stats handler")
}
// Add the API-Key, JWT, client-identity, etc... propagating interceptor.
grpcServerConfig := grpc_server.GRPCServerConfig{
ExtraChainedUnaryInterceptors: []grpc.UnaryServerInterceptor{
Expand All @@ -210,6 +216,7 @@ func startGRPCServers(env *real_environment.RealEnv) error {
ExtraChainedStreamInterceptors: []grpc.StreamServerInterceptor{
interceptors.PropagateMetadataStreamInterceptor(proxy_util.HeadersToPropagate...),
},
ExtraStatsHandlers: []stats.Handler{trafficStatsHandler},
}

// Start and register internal servers first because the external proxy
Expand Down
3 changes: 3 additions & 0 deletions enterprise/server/cmd/server/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ go_library(
"//enterprise/server/usage_service",
"//enterprise/server/util/dsingleflight",
"//enterprise/server/util/redisutil",
"//enterprise/server/util/trafficstats",
"//enterprise/server/webhooks/bitbucket",
"//enterprise/server/webhooks/github",
"//enterprise/server/workflow/service",
Expand All @@ -85,10 +86,12 @@ go_library(
"//server/remote_cache/capabilities_server",
"//server/telemetry",
"//server/util/clickhouse",
"//server/util/grpc_server",
"//server/util/healthcheck",
"//server/util/log",
"//server/util/tracing",
"//server/version",
"@org_golang_google_grpc//stats",
],
)

Expand Down
13 changes: 12 additions & 1 deletion enterprise/server/cmd/server/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ import (
"github.com/buildbuddy-io/buildbuddy/enterprise/server/usage_service"
"github.com/buildbuddy-io/buildbuddy/enterprise/server/util/dsingleflight"
"github.com/buildbuddy-io/buildbuddy/enterprise/server/util/redisutil"
"github.com/buildbuddy-io/buildbuddy/enterprise/server/util/trafficstats"
"github.com/buildbuddy-io/buildbuddy/enterprise/server/webhooks/bitbucket"
"github.com/buildbuddy-io/buildbuddy/enterprise/server/webhooks/github"
"github.com/buildbuddy-io/buildbuddy/enterprise/server/workspace"
Expand All @@ -68,12 +69,16 @@ import (
"github.com/buildbuddy-io/buildbuddy/server/real_environment"
"github.com/buildbuddy-io/buildbuddy/server/remote_cache/capabilities_server"
"github.com/buildbuddy-io/buildbuddy/server/telemetry"
"github.com/buildbuddy-io/buildbuddy/server/util/grpc_server"

"github.com/buildbuddy-io/buildbuddy/server/util/clickhouse"
"github.com/buildbuddy-io/buildbuddy/server/util/healthcheck"
"github.com/buildbuddy-io/buildbuddy/server/util/log"
"github.com/buildbuddy-io/buildbuddy/server/util/tracing"
"github.com/buildbuddy-io/buildbuddy/server/version"

"google.golang.org/grpc/stats"

enterprise_app_bundle "github.com/buildbuddy-io/buildbuddy/enterprise/app"
remote_execution_redis_client "github.com/buildbuddy-io/buildbuddy/enterprise/server/remote_execution/redis_client"
telserver "github.com/buildbuddy-io/buildbuddy/enterprise/server/telemetry"
Expand Down Expand Up @@ -338,5 +343,11 @@ func main() {
log.Fatalf("%v", err)
}

libmain.StartAndRunServices(realEnv) // Returns after graceful shutdown
trafficStatsHandler, err := trafficstats.NewServerHandler()
if err != nil {
log.Fatalf("Error creating traffic stats handler: %v", err)
}
libmain.StartAndRunServices(realEnv, grpc_server.GRPCServerConfig{
ExtraStatsHandlers: []stats.Handler{trafficStatsHandler},
}) // Returns after graceful shutdown
}
1 change: 1 addition & 0 deletions server/cmd/buildbuddy/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ go_library(
"//server/libmain",
"//server/remote_cache/capabilities_server",
"//server/telemetry",
"//server/util/grpc_server",
"//server/util/healthcheck",
"//server/util/log",
"//server/version",
Expand Down
4 changes: 3 additions & 1 deletion server/cmd/buildbuddy/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ package main
import (
"flag"

"github.com/buildbuddy-io/buildbuddy/server/util/grpc_server"

"github.com/buildbuddy-io/buildbuddy/server/config"
"github.com/buildbuddy-io/buildbuddy/server/janitor"
"github.com/buildbuddy-io/buildbuddy/server/libmain"
Expand Down Expand Up @@ -54,5 +56,5 @@ func main() {
if err := capabilities_server.Register(env); err != nil {
log.Fatalf("%v", err)
}
libmain.StartAndRunServices(env) // Does not return
libmain.StartAndRunServices(env, grpc_server.GRPCServerConfig{}) // Does not return
}
11 changes: 6 additions & 5 deletions server/libmain/libmain.go
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ import (

"google.golang.org/grpc"


apipb "github.com/buildbuddy-io/buildbuddy/proto/api/v1"
authpb "github.com/buildbuddy-io/buildbuddy/proto/auth"
bbspb "github.com/buildbuddy-io/buildbuddy/proto/buildbuddy_service"
Expand Down Expand Up @@ -247,8 +248,8 @@ func registerInternalServices(env *real_environment.RealEnv, grpcServer *grpc.Se
channelzservice.RegisterChannelzServiceToServer(grpcServer)
}

func startGRPCServers(env *real_environment.RealEnv) error {
b, err := grpc_server.New(env, grpc_server.GRPCPort(), false /*=ssl*/, grpc_server.GRPCServerConfig{})
func startGRPCServers(env *real_environment.RealEnv, config grpc_server.GRPCServerConfig) error {
b, err := grpc_server.New(env, grpc_server.GRPCPort(), false /*=ssl*/, config)
if err != nil {
return err
}
Expand All @@ -260,7 +261,7 @@ func startGRPCServers(env *real_environment.RealEnv) error {
grpc_server.EnableGRPCOverHTTP(env, b.GetServer())

if env.GetSSLService().IsEnabled() {
sb, err := grpc_server.New(env, grpc_server.GRPCSPort(), true /*=ssl*/, grpc_server.GRPCServerConfig{})
sb, err := grpc_server.New(env, grpc_server.GRPCSPort(), true /*=ssl*/, config)
if err != nil {
return err
}
Expand Down Expand Up @@ -399,7 +400,7 @@ func RegisterLocalServersAndClients(env *real_environment.RealEnv) {
}
}

func StartAndRunServices(env *real_environment.RealEnv) {
func StartAndRunServices(env *real_environment.RealEnv, grpcConfig grpc_server.GRPCServerConfig) {
if *maxThreads > 0 {
debug.SetMaxThreads(*maxThreads)
}
Expand Down Expand Up @@ -427,7 +428,7 @@ func StartAndRunServices(env *real_environment.RealEnv) {
log.Fatalf("%v", err)
}

if err := startGRPCServers(env); err != nil {
if err := startGRPCServers(env, grpcConfig); err != nil {
log.Fatalf("%v", err)
}

Expand Down
Loading