Go app framework

This commit is contained in:
2025-01-04 12:24:42 -05:00
parent 41036b3c3a
commit d0a430505c
16 changed files with 1199 additions and 1 deletions

38
pkg/otel/settings.go Normal file
View File

@@ -0,0 +1,38 @@
package otel
import "time"
type settings struct {
EnableStdoutExporter bool
EnablePrometheusExporter bool
MetricExportInterval time.Duration
}
type Option interface {
apply(*settings)
}
type enableStdoutExporter struct {
Option
}
func (setting enableStdoutExporter) apply(o *settings) {
o.EnableStdoutExporter = true
}
type enablePrometheusExporter struct {
Option
}
func (setting enablePrometheusExporter) apply(o *settings) {
o.EnablePrometheusExporter = true
}
type exportInterval struct {
Option
interval time.Duration
}
func (setting exportInterval) apply(o *settings) {
o.MetricExportInterval = setting.interval
}