Skip to content

Commit 4ca690b

Browse files
authored
add config version to metadata (#259)
1 parent e065b24 commit 4ca690b

File tree

3 files changed

+22
-5
lines changed

3 files changed

+22
-5
lines changed

evaluator.go

+5-1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ type evalResult struct {
2828
DerivedDeviceMetadata *DerivedDeviceMetadata `json:"derived_device_metadata,omitempty"`
2929
ForwardAllExposures bool `json:"forward_all_exposures,omitempty"`
3030
SamplingRate *int `json:"sampling_rate,omitempty"`
31+
ConfigVersion *int `json:"config_version,omitempty"`
3132
}
3233

3334
type DerivedDeviceMetadata struct {
@@ -401,6 +402,7 @@ func (e *evaluator) eval(user User, spec configSpec, depth int, context *evalCon
401402
EvaluationDetails: evalDetails,
402403
DerivedDeviceMetadata: deviceMetadata,
403404
SamplingRate: rule.SamplingRate,
405+
ConfigVersion: spec.ConfigVersion,
404406
}
405407
if rule.IsExperimentGroup != nil {
406408
result.IsExperimentGroup = rule.IsExperimentGroup
@@ -415,6 +417,7 @@ func (e *evaluator) eval(user User, spec configSpec, depth int, context *evalCon
415417
EvaluationDetails: evalDetails,
416418
DerivedDeviceMetadata: deviceMetadata,
417419
SamplingRate: rule.SamplingRate,
420+
ConfigVersion: spec.ConfigVersion,
418421
}
419422
}
420423
}
@@ -432,9 +435,10 @@ func (e *evaluator) eval(user User, spec configSpec, depth int, context *evalCon
432435
UndelegatedSecondaryExposures: exposures,
433436
EvaluationDetails: evalDetails,
434437
DerivedDeviceMetadata: deviceMetadata,
438+
ConfigVersion: spec.ConfigVersion,
435439
}
436440
}
437-
return &evalResult{Value: false, RuleID: defaultRuleID, SecondaryExposures: exposures, DerivedDeviceMetadata: deviceMetadata}
441+
return &evalResult{Value: false, RuleID: defaultRuleID, SecondaryExposures: exposures, DerivedDeviceMetadata: deviceMetadata, ConfigVersion: spec.ConfigVersion}
438442
}
439443

440444
func (e *evaluator) evalDelegate(user User, rule configRule, exposures []SecondaryExposure, depth int, context *evalContext) *evalResult {

logger.go

+16-4
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,10 @@ func (l *logger) logGateExposure(
138138
metadata["isManualExposure"] = "true"
139139
}
140140

141+
if res.ConfigVersion != nil {
142+
metadata["configVersion"] = strconv.Itoa(*res.ConfigVersion)
143+
}
144+
141145
evt := &ExposureEvent{
142146
User: user,
143147
EventName: GateExposureEventName,
@@ -158,10 +162,10 @@ func (l *logger) addEvaluationDetailsToExposureEvent(
158162
evalDetails *EvaluationDetails,
159163
) {
160164
if evalDetails != nil {
161-
evt.Metadata["reason"] = string(evalDetails.detailedReason())
162-
evt.Metadata["configSyncTime"] = fmt.Sprint(evalDetails.ConfigSyncTime)
163-
evt.Metadata["initTime"] = fmt.Sprint(evalDetails.InitTime)
164-
evt.Metadata["serverTime"] = fmt.Sprint(evalDetails.ServerTime)
165+
evt.Metadata["reason"] = evalDetails.detailedReason()
166+
evt.Metadata["configSyncTime"] = strconv.FormatInt(evalDetails.ConfigSyncTime, 10)
167+
evt.Metadata["initTime"] = strconv.FormatInt(evalDetails.InitTime, 10)
168+
evt.Metadata["serverTime"] = strconv.FormatInt(evalDetails.ServerTime, 10)
165169
}
166170
}
167171

@@ -215,6 +219,9 @@ func (l *logger) logConfigExposure(
215219
if context != nil && context.IsManualExposure {
216220
metadata["isManualExposure"] = "true"
217221
}
222+
if res.ConfigVersion != nil {
223+
metadata["configVersion"] = strconv.Itoa(*res.ConfigVersion)
224+
}
218225
evt := &ExposureEvent{
219226
User: user,
220227
EventName: ConfigExposureEventName,
@@ -257,6 +264,11 @@ func (l *logger) logLayerExposure(
257264
"parameterName": parameterName,
258265
"isExplicitParameter": strconv.FormatBool(isExplicit),
259266
}
267+
268+
if evalResult.ConfigVersion != nil {
269+
metadata["configVersion"] = strconv.Itoa(*evalResult.ConfigVersion)
270+
}
271+
260272
if context != nil && context.IsManualExposure {
261273
metadata["isManualExposure"] = "true"
262274
}

store.go

+1
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ type configSpec struct {
3838
HasSharedParams *bool `json:"hasSharedParams,omitempty"`
3939
TargetAppIDs []string `json:"targetAppIDs,omitempty"`
4040
ForwardAllExposures *bool `json:"forwardAllExposures,omitempty"`
41+
ConfigVersion *int `json:"version,omitempty"`
4142
}
4243

4344
func (c configSpec) hasTargetAppID(appId string) bool {

0 commit comments

Comments
 (0)