@@ -37,15 +37,15 @@ type (
37
37
Server mserv.Server `group:"web_server"`
38
38
}
39
39
40
- pprofParams struct {
40
+ profileParams struct {
41
41
dig.In
42
42
43
- Handler http.Handler `name:"profile_handler"`
43
+ Handler http.Handler `name:"profile_handler" optional:"true" `
44
44
Viper * viper.Viper
45
45
Logger logger.StdLogger
46
46
}
47
47
48
- pprofResult struct {
48
+ profileResult struct {
49
49
dig.Out
50
50
51
51
Handler http.Handler `name:"profile_handler"`
54
54
metricParams struct {
55
55
dig.In
56
56
57
- Handler http.Handler `name:"metric_handler"`
57
+ Handler http.Handler `name:"metric_handler" optional:"true" `
58
58
Viper * viper.Viper
59
59
Logger logger.StdLogger
60
60
}
@@ -67,11 +67,19 @@ type (
67
67
)
68
68
69
69
var (
70
+ // ProfileHandlerModule that provides default profile handler
71
+ ProfileHandlerModule = module.Module {
72
+ {Constructor : newProfileHandler },
73
+ }
74
+
75
+ // MetricHandlerModule that provides default metric handler
76
+ MetricHandlerModule = module.Module {
77
+ {Constructor : newMetricHandler },
78
+ }
79
+
70
80
// ServersModule of web base structs
71
81
ServersModule = module.Module {
72
- {Constructor : newProfileHandler },
73
82
{Constructor : newProfileServer },
74
- {Constructor : newMetricHandler },
75
83
{Constructor : newMetricServer },
76
84
{Constructor : NewAPIServer },
77
85
{Constructor : NewMultiServer },
@@ -84,17 +92,17 @@ func NewMultiServer(params MultiServerParams) mserv.Server {
84
92
return mserv .New (params .Servers ... )
85
93
}
86
94
87
- func newProfileHandler () pprofResult {
95
+ func newProfileHandler () profileResult {
88
96
mux := http .NewServeMux ()
89
97
mux .HandleFunc ("/debug/pprof/" , pprof .Index )
90
98
mux .HandleFunc ("/debug/pprof/cmdline" , pprof .Cmdline )
91
99
mux .HandleFunc ("/debug/pprof/profile" , pprof .Profile )
92
100
mux .HandleFunc ("/debug/pprof/symbol" , pprof .Symbol )
93
101
mux .HandleFunc ("/debug/pprof/trace" , pprof .Trace )
94
- return pprofResult {Handler : mux }
102
+ return profileResult {Handler : mux }
95
103
}
96
104
97
- func newProfileServer (p pprofParams ) ServerResult {
105
+ func newProfileServer (p profileParams ) ServerResult {
98
106
return newHTTPServer (p .Viper , "pprof" , p .Handler , p .Logger )
99
107
}
100
108
@@ -112,14 +120,14 @@ func NewAPIServer(v *viper.Viper, l logger.StdLogger, h http.Handler) ServerResu
112
120
}
113
121
114
122
func newHTTPServer (v * viper.Viper , key string , h http.Handler , l logger.StdLogger ) ServerResult {
115
- if ! v .IsSet (key + ".address" ) {
116
- l .Printf ("Empty bind address for %s server, skip" , key )
117
- return ServerResult {}
118
- }
119
123
if h == nil {
120
124
l .Printf ("Empty handler for %s server, skip" , key )
121
125
return ServerResult {}
126
+ } else if ! v .IsSet (key + ".address" ) {
127
+ l .Printf ("Empty bind address for %s server, skip" , key )
128
+ return ServerResult {}
122
129
}
130
+
123
131
l .Printf ("Create %s http server, bind address: %s" , key , v .GetString (key + ".address" ))
124
132
return ServerResult {
125
133
Server : mserv .NewHTTPServer (
0 commit comments