Skip to content
This repository was archived by the owner on Nov 7, 2022. It is now read-only.

Commit f53d802

Browse files
author
Steven Karis
authored
Refactor cmd/collector package (#337)
* Refactor collector cmd codebase The cmd codebase was getting cluttered, and this aims to simplify and restructure how collector startup occurred. Testing Done: no functionality changed, tested manually. * Add license to all new files
1 parent 935fc7c commit f53d802

13 files changed

Lines changed: 593 additions & 405 deletions

File tree

cmd/occollector/app/builder/builder.go

Lines changed: 36 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
package builder
1616

1717
import (
18+
"flag"
1819
"fmt"
1920
"strings"
2021

@@ -26,8 +27,37 @@ const (
2627
jaegerEntry = "jaeger"
2728
opencensusEntry = "opencensus"
2829
zipkinEntry = "zipkin"
30+
31+
// flags
32+
configCfg = "config"
33+
jaegerReceiverFlg = "receive-jaeger"
34+
ocReceiverFlg = "receive-oc-trace"
35+
zipkinReceiverFlg = "receive-zipkin"
36+
debugProcessorFlg = "debug-processor"
2937
)
3038

39+
// Flags adds flags related to basic building of the collector application to the given flagset.
40+
func Flags(flags *flag.FlagSet) {
41+
flags.String(configCfg, "", "Path to the config file")
42+
flags.Bool(jaegerReceiverFlg, false,
43+
fmt.Sprintf("Flag to run the Jaeger receiver (i.e.: Jaeger Collector), default settings: %+v", *NewDefaultJaegerReceiverCfg()))
44+
flags.Bool(ocReceiverFlg, true,
45+
fmt.Sprintf("Flag to run the OpenCensus trace receiver, default settings: %+v", *NewDefaultOpenCensusReceiverCfg()))
46+
flags.Bool(zipkinReceiverFlg, false,
47+
fmt.Sprintf("Flag to run the Zipkin receiver, default settings: %+v", *NewDefaultZipkinReceiverCfg()))
48+
flags.Bool(debugProcessorFlg, false, "Flag to add a debug processor (combine with log level DEBUG to log incoming spans)")
49+
}
50+
51+
// GetConfigFile gets the config file from the config file flag.
52+
func GetConfigFile(v *viper.Viper) string {
53+
return v.GetString(configCfg)
54+
}
55+
56+
// DebugProcessorEnabled returns true if the debug processor is enabled, and false otherwise
57+
func DebugProcessorEnabled(v *viper.Viper) bool {
58+
return v.GetBool(debugProcessorFlg)
59+
}
60+
3161
// JaegerReceiverCfg holds configuration for Jaeger receivers.
3262
type JaegerReceiverCfg struct {
3363
// ThriftTChannelPort is the port that the relay receives on for jaeger thrift tchannel requests
@@ -38,8 +68,8 @@ type JaegerReceiverCfg struct {
3868

3969
// JaegerReceiverEnabled checks if the Jaeger receiver is enabled, via a command-line flag, environment
4070
// variable, or configuration file.
41-
func JaegerReceiverEnabled(v *viper.Viper, cmdFlag string) bool {
42-
return featureEnabled(v, cmdFlag, receiversRoot, jaegerEntry)
71+
func JaegerReceiverEnabled(v *viper.Viper) bool {
72+
return featureEnabled(v, jaegerReceiverFlg, receiversRoot, jaegerEntry)
4373
}
4474

4575
// NewDefaultJaegerReceiverCfg returns an instance of JaegerReceiverCfg with default values
@@ -64,8 +94,8 @@ type OpenCensusReceiverCfg struct {
6494

6595
// OpenCensusReceiverEnabled checks if the OpenCensus receiver is enabled, via a command-line flag, environment
6696
// variable, or configuration file.
67-
func OpenCensusReceiverEnabled(v *viper.Viper, cmdFlag string) bool {
68-
return featureEnabled(v, cmdFlag, receiversRoot, opencensusEntry)
97+
func OpenCensusReceiverEnabled(v *viper.Viper) bool {
98+
return featureEnabled(v, ocReceiverFlg, receiversRoot, opencensusEntry)
6999
}
70100

71101
// NewDefaultOpenCensusReceiverCfg returns an instance of OpenCensusReceiverCfg with default values
@@ -89,8 +119,8 @@ type ZipkinReceiverCfg struct {
89119

90120
// ZipkinReceiverEnabled checks if the Zipkin receiver is enabled, via a command-line flag, environment
91121
// variable, or configuration file.
92-
func ZipkinReceiverEnabled(v *viper.Viper, cmdFlag string) bool {
93-
return featureEnabled(v, cmdFlag, receiversRoot, zipkinEntry)
122+
func ZipkinReceiverEnabled(v *viper.Viper) bool {
123+
return featureEnabled(v, zipkinReceiverFlg, receiversRoot, zipkinEntry)
94124
}
95125

96126
// NewDefaultZipkinReceiverCfg returns an instance of ZipkinReceiverCfg with default values

cmd/occollector/app/builder/builder_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ func TestReceiversEnabledByPresenceWithDefaultSettings(t *testing.T) {
2828
t.Fatalf("Failed to load viper from test file: %v", err)
2929
}
3030

31-
jaegerEnabled, opencensusEnabled, zipkinEnabled := JaegerReceiverEnabled(v, "j"), OpenCensusReceiverEnabled(v, "oc"), ZipkinReceiverEnabled(v, "z")
31+
jaegerEnabled, opencensusEnabled, zipkinEnabled := JaegerReceiverEnabled(v), OpenCensusReceiverEnabled(v), ZipkinReceiverEnabled(v)
3232
if !jaegerEnabled || !opencensusEnabled || !zipkinEnabled {
3333
t.Fatalf("Some of the expected receivers were not enabled j:%v oc:%v z:%v", jaegerEnabled, opencensusEnabled, zipkinEnabled)
3434
}
@@ -64,7 +64,7 @@ func TestReceiversDisabledByPresenceWithDefaultSettings(t *testing.T) {
6464
t.Fatalf("Failed to load viper from test file: %v", err)
6565
}
6666

67-
jaegerEnabled, opencensusEnabled, zipkinEnabled := JaegerReceiverEnabled(v, "j"), OpenCensusReceiverEnabled(v, "oc"), ZipkinReceiverEnabled(v, "z")
67+
jaegerEnabled, opencensusEnabled, zipkinEnabled := JaegerReceiverEnabled(v), OpenCensusReceiverEnabled(v), ZipkinReceiverEnabled(v)
6868
if jaegerEnabled || opencensusEnabled || zipkinEnabled {
6969
t.Fatalf("Not all receivers were disabled j:%v oc:%v z:%v", jaegerEnabled, opencensusEnabled, zipkinEnabled)
7070
}

0 commit comments

Comments
 (0)