in pkg/api/api.go [51:83]
func NewAPIHandler(
uuid fmt.Stringer,
clusterUUID string,
meterProvider metric.MeterProvider,
expire time.Time,
delay time.Duration,
percentDuplicate,
percentTooMany,
percentNonIndex,
percentTooLarge,
historyCap uint,
) *APIHandler {
h := &APIHandler{UUID: uuid, Expire: expire, ClusterUUID: clusterUUID, Delay: delay}
if meterProvider == nil {
meterProvider = otel.GetMeterProvider()
}
metrics, err := newMetrics(meterProvider)
if err != nil {
panic(fmt.Errorf("failed to create metrics"))
}
h.metrics = metrics
h.history = make([]*RequestRecord, historyCap)
err = h.UpdateOdds(percentDuplicate, percentTooMany, percentNonIndex, percentTooLarge)
if err != nil {
panic(err)
}
return h
}