-
Notifications
You must be signed in to change notification settings - Fork 50
/
mpr_settings.go
55 lines (43 loc) · 1.98 KB
/
mpr_settings.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package stream
import (
"time"
"github.com/justtrackio/gosoline/pkg/cfg"
)
const (
configKey = "stream.metrics.messages_per_runner"
)
type MessagesPerRunnerEcsSettings struct {
Cluster string `cfg:"cluster" default:"{app_project}-{env}-{app_family}"`
Service string `cfg:"service" default:"{app_group}-{app_name}"`
}
type MessagesPerRunnerDdbServiceNamingSettings struct {
Naming MessagesPerRunnerDdbNamingSettings `cfg:"naming"`
}
type MessagesPerRunnerDdbNamingSettings struct {
Pattern string `cfg:"pattern,nodecode" default:"{project}-{env}-{family}-{modelId}"`
}
type MessagesPerRunnerCwServiceNamingSettings struct {
Naming MessagesPerRunnerCwNamingSettings `cfg:"naming"`
}
type MessagesPerRunnerCwNamingSettings struct {
Pattern string `cfg:"pattern,nodecode" default:"{project}/{env}/{family}/{group}-{app}"`
}
type MessagesPerRunnerMetricSettings struct {
Enabled bool `cfg:"enabled"`
Ecs MessagesPerRunnerEcsSettings `cfg:"ecs"`
LeaderElection string `cfg:"leader_election" default:"streamMprMetrics"`
MaxIncreasePercent float64 `cfg:"max_increase_percent" default:"200"`
MaxIncreasePeriod time.Duration `cfg:"max_increase_period" default:"5m"`
DynamoDb MessagesPerRunnerDdbServiceNamingSettings `cfg:"dynamodb"`
Cloudwatch MessagesPerRunnerCwServiceNamingSettings `cfg:"cloudwatch"`
Period time.Duration `cfg:"period" default:"1m"`
TargetValue float64 `cfg:"target_value" default:"0"`
}
func readMessagesPerRunnerMetricSettings(config cfg.Config) *MessagesPerRunnerMetricSettings {
mprSettings := &MessagesPerRunnerMetricSettings{}
config.UnmarshalKey(configKey, mprSettings)
return mprSettings
}
func messagesPerRunnerIsEnabled(config cfg.Config) bool {
return config.GetBool(configKey+".enabled", false)
}