Slide 34
Slide 34 text
import(
...
otel "github.com/open-feature/go-sdk-contrib/hooks/open-telemetry/pkg"
of "github.com/open-feature/go-sdk/openfeature"
...
)
func Init(name string, ofp FeatureProvider, logger log.Logger) error {
client.logger = logger
client.ofc = of.NewClient(name)
metricsHook, err := otel.NewMetricsHook()
if err != nil {
return cerror.Wrap(err, "init OpenTelemetry metrics for OpenFeature hook")
}
client.ofc.AddHooks(
metricsHook,
otel.NewTracesHook(),
)
if err := of.SetNamedProvider(name, ofp); err != nil {
return cerror.Wrap(err, "init openfeature")
}
Add Hooks
• MetricsHook
メトリクスデータを収集
feature_
fl
ag.evaluation_requests_total
feature_
fl
ag.evaluation_success_total
feature_
fl
ag.evaluation_error_total
feature_
fl
ag.evaluation_active_count
• TraceHook
trace の Events に追加
after と error stage で hook