mirror of https://github.com/knative/caching.git
upgrade to latest dependencies (#351)
Signed-off-by: Matt Moore (via Sockpuppet) <mattmoor@vmware.com>
This commit is contained in:
parent
8d3017d088
commit
ba8d14f493
4
go.mod
4
go.mod
|
@ -16,8 +16,8 @@ require (
|
||||||
k8s.io/client-go v11.0.1-0.20190805182717-6502b5e7b1b5+incompatible
|
k8s.io/client-go v11.0.1-0.20190805182717-6502b5e7b1b5+incompatible
|
||||||
k8s.io/code-generator v0.18.8
|
k8s.io/code-generator v0.18.8
|
||||||
k8s.io/kube-openapi v0.0.0-20200410145947-bcb3869e6f29
|
k8s.io/kube-openapi v0.0.0-20200410145947-bcb3869e6f29
|
||||||
knative.dev/pkg v0.0.0-20201003175733-ea7374e81105
|
knative.dev/pkg v0.0.0-20201005175134-21cb070a8b05
|
||||||
knative.dev/test-infra v0.0.0-20201002164834-8c07ff018549
|
knative.dev/test-infra v0.0.0-20201005191434-b298834c10f1
|
||||||
)
|
)
|
||||||
|
|
||||||
replace (
|
replace (
|
||||||
|
|
8
go.sum
8
go.sum
|
@ -1894,17 +1894,17 @@ knative.dev/pkg v0.0.0-20200505191044-3da93ebb24c2/go.mod h1:Q6sL35DdGs8hIQZKdaC
|
||||||
knative.dev/pkg v0.0.0-20200515002500-16d7b963416f/go.mod h1:tMOHGbxtRz8zYFGEGpV/bpoTEM1o89MwYFC4YJXl3GY=
|
knative.dev/pkg v0.0.0-20200515002500-16d7b963416f/go.mod h1:tMOHGbxtRz8zYFGEGpV/bpoTEM1o89MwYFC4YJXl3GY=
|
||||||
knative.dev/pkg v0.0.0-20200528142800-1c6815d7e4c9/go.mod h1:QgNZTxnwpB/oSpNcfnLVlw+WpEwwyKAvJlvR3hgeltA=
|
knative.dev/pkg v0.0.0-20200528142800-1c6815d7e4c9/go.mod h1:QgNZTxnwpB/oSpNcfnLVlw+WpEwwyKAvJlvR3hgeltA=
|
||||||
knative.dev/pkg v0.0.0-20200711004937-22502028e31a/go.mod h1:AqAJV6rYi8IGikDjJ/9ZQd9qKdkXVlesVnVjwx62YB8=
|
knative.dev/pkg v0.0.0-20200711004937-22502028e31a/go.mod h1:AqAJV6rYi8IGikDjJ/9ZQd9qKdkXVlesVnVjwx62YB8=
|
||||||
knative.dev/pkg v0.0.0-20201003175733-ea7374e81105 h1:dx4o9pDAyyYAqpDiCQiIVbcBMjVYGAV+lzgJbVijZtg=
|
knative.dev/pkg v0.0.0-20201005175134-21cb070a8b05 h1:EKh6IFZisRV8qaT2KqUYsX8VovGJfO6978z3xuQvUuE=
|
||||||
knative.dev/pkg v0.0.0-20201003175733-ea7374e81105/go.mod h1:o9w/M7OnPc0ou07PIUORHUBSZgszeZebAYZkxQ8GdFw=
|
knative.dev/pkg v0.0.0-20201005175134-21cb070a8b05/go.mod h1:xpPYLHYXh306wQISWkRC/5t3+CD76nOcEHrCQ+5pxBM=
|
||||||
knative.dev/test-infra v0.0.0-20200407185800-1b88cb3b45a5/go.mod h1:xcdUkMJrLlBswIZqL5zCuBFOC22WIPMQoVX1L35i0vQ=
|
knative.dev/test-infra v0.0.0-20200407185800-1b88cb3b45a5/go.mod h1:xcdUkMJrLlBswIZqL5zCuBFOC22WIPMQoVX1L35i0vQ=
|
||||||
knative.dev/test-infra v0.0.0-20200505052144-5ea2f705bb55/go.mod h1:WqF1Azka+FxPZ20keR2zCNtiQA1MP9ZB4BH4HuI+SIU=
|
knative.dev/test-infra v0.0.0-20200505052144-5ea2f705bb55/go.mod h1:WqF1Azka+FxPZ20keR2zCNtiQA1MP9ZB4BH4HuI+SIU=
|
||||||
knative.dev/test-infra v0.0.0-20200513011557-d03429a76034/go.mod h1:aMif0KXL4g19YCYwsy4Ocjjz5xgPlseYV+B95Oo4JGE=
|
knative.dev/test-infra v0.0.0-20200513011557-d03429a76034/go.mod h1:aMif0KXL4g19YCYwsy4Ocjjz5xgPlseYV+B95Oo4JGE=
|
||||||
knative.dev/test-infra v0.0.0-20200519015156-82551620b0a9/go.mod h1:A5b2OAXTOeHT3hHhVQm3dmtbuWvIDP7qzgtqxA3/2pE=
|
knative.dev/test-infra v0.0.0-20200519015156-82551620b0a9/go.mod h1:A5b2OAXTOeHT3hHhVQm3dmtbuWvIDP7qzgtqxA3/2pE=
|
||||||
knative.dev/test-infra v0.0.0-20200707183444-aed09e56ddc7/go.mod h1:RjYAhXnZqeHw9+B0zsbqSPlae0lCvjekO/nw5ZMpLCs=
|
knative.dev/test-infra v0.0.0-20200707183444-aed09e56ddc7/go.mod h1:RjYAhXnZqeHw9+B0zsbqSPlae0lCvjekO/nw5ZMpLCs=
|
||||||
knative.dev/test-infra v0.0.0-20201001200229-a6988e3b3b38 h1:g2LdlRp7jB6QHz3D69fnvn2OfX5C6bydIzubyLpFNl0=
|
|
||||||
knative.dev/test-infra v0.0.0-20201001200229-a6988e3b3b38/go.mod h1:Pmg2c7Z7q7BGFUV/GOpU5BlrD3ePJft4MPqx8AYBplc=
|
|
||||||
knative.dev/test-infra v0.0.0-20201002164834-8c07ff018549 h1:8UObRJ0lnWvU9FuD8ubmkwJo14+aZtboq1ncBWbs2uI=
|
knative.dev/test-infra v0.0.0-20201002164834-8c07ff018549 h1:8UObRJ0lnWvU9FuD8ubmkwJo14+aZtboq1ncBWbs2uI=
|
||||||
knative.dev/test-infra v0.0.0-20201002164834-8c07ff018549/go.mod h1:Pmg2c7Z7q7BGFUV/GOpU5BlrD3ePJft4MPqx8AYBplc=
|
knative.dev/test-infra v0.0.0-20201002164834-8c07ff018549/go.mod h1:Pmg2c7Z7q7BGFUV/GOpU5BlrD3ePJft4MPqx8AYBplc=
|
||||||
|
knative.dev/test-infra v0.0.0-20201005191434-b298834c10f1 h1:BCeUtO6TsMQyvH1GpxRViTOY+KANqnfk+n5DdTo4nio=
|
||||||
|
knative.dev/test-infra v0.0.0-20201005191434-b298834c10f1/go.mod h1:Pmg2c7Z7q7BGFUV/GOpU5BlrD3ePJft4MPqx8AYBplc=
|
||||||
mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed/go.mod h1:Xkxe497xwlCKkIaQYRfC7CSLworTXY9RMqwhhCm+8Nc=
|
mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed/go.mod h1:Xkxe497xwlCKkIaQYRfC7CSLworTXY9RMqwhhCm+8Nc=
|
||||||
mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b/go.mod h1:2odslEg/xrtNQqCYg2/jCoyKnw3vv5biOc3JnIcYfL4=
|
mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b/go.mod h1:2odslEg/xrtNQqCYg2/jCoyKnw3vv5biOc3JnIcYfL4=
|
||||||
mvdan.cc/unparam v0.0.0-20190720180237-d51796306d8f/go.mod h1:4G1h5nDURzA3bwVMZIVpwbkw+04kSxk3rAtzlimaUJw=
|
mvdan.cc/unparam v0.0.0-20190720180237-d51796306d8f/go.mod h1:4G1h5nDURzA3bwVMZIVpwbkw+04kSxk3rAtzlimaUJw=
|
||||||
|
|
|
@ -29,6 +29,7 @@ import (
|
||||||
"go.opencensus.io/stats"
|
"go.opencensus.io/stats"
|
||||||
"go.opencensus.io/stats/view"
|
"go.opencensus.io/stats/view"
|
||||||
"go.opencensus.io/tag"
|
"go.opencensus.io/tag"
|
||||||
|
"k8s.io/apimachinery/pkg/util/clock"
|
||||||
)
|
)
|
||||||
|
|
||||||
type storedViews struct {
|
type storedViews struct {
|
||||||
|
@ -40,6 +41,7 @@ type meterExporter struct {
|
||||||
m view.Meter // NOTE: DO NOT RETURN THIS DIRECTLY; the view.Meter will not work for the empty Resource
|
m view.Meter // NOTE: DO NOT RETURN THIS DIRECTLY; the view.Meter will not work for the empty Resource
|
||||||
o stats.Options // Cache the option to reduce allocations
|
o stats.Options // Cache the option to reduce allocations
|
||||||
e view.Exporter
|
e view.Exporter
|
||||||
|
t time.Time // Time when last access occurred
|
||||||
}
|
}
|
||||||
|
|
||||||
// ResourceExporterFactory provides a hook for producing separate view.Exporters
|
// ResourceExporterFactory provides a hook for producing separate view.Exporters
|
||||||
|
@ -51,14 +53,67 @@ type meters struct {
|
||||||
meters map[string]*meterExporter
|
meters map[string]*meterExporter
|
||||||
factory ResourceExporterFactory
|
factory ResourceExporterFactory
|
||||||
lock sync.Mutex
|
lock sync.Mutex
|
||||||
|
clock clock.Clock
|
||||||
|
ticker clock.Ticker
|
||||||
|
tickerStopChan chan struct{}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Lock regime: lock allMeters before resourceViews. The critical path is in
|
// Lock regime: lock allMeters before resourceViews. The critical path is in
|
||||||
// optionForResource, which must lock allMeters, but only needs to lock
|
// optionForResource, which must lock allMeters, but only needs to lock
|
||||||
// resourceViews if a new meter needs to be created.
|
// resourceViews if a new meter needs to be created.
|
||||||
var resourceViews = storedViews{}
|
var (
|
||||||
var allMeters = meters{
|
resourceViews = storedViews{}
|
||||||
|
allMeters = meters{
|
||||||
meters: map[string]*meterExporter{"": &defaultMeter},
|
meters: map[string]*meterExporter{"": &defaultMeter},
|
||||||
|
clock: clock.Clock(clock.RealClock{}),
|
||||||
|
}
|
||||||
|
|
||||||
|
cleanupOnce = new(sync.Once)
|
||||||
|
meterExporterScanFrequency = 1 * time.Minute
|
||||||
|
maxMeterExporterAge = 10 * time.Minute
|
||||||
|
)
|
||||||
|
|
||||||
|
// cleanup looks through allMeter's meterExporter and prunes any that were last visited
|
||||||
|
// more than maxMeterExporterAge ago. This will clean up any exporters for resources
|
||||||
|
// that no longer exist on the system (a replaced revision, e.g.). All meterExporter
|
||||||
|
// lookups (and creations) run meterExporterForResource, which updates the timestamp
|
||||||
|
// on each access.
|
||||||
|
func cleanup() {
|
||||||
|
expiryCutoff := allMeters.clock.Now().Add(-1 * maxMeterExporterAge)
|
||||||
|
allMeters.lock.Lock()
|
||||||
|
defer allMeters.lock.Unlock()
|
||||||
|
for key, meter := range allMeters.meters {
|
||||||
|
if key != "" && meter.t.Before(expiryCutoff) {
|
||||||
|
flushGivenExporter(meter.e)
|
||||||
|
delete(allMeters.meters, key)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// startCleanup is configured to only run once in production. For testing,
|
||||||
|
// calling startCleanup again will terminate old cleanup threads,
|
||||||
|
// and restart anew.
|
||||||
|
func startCleanup() {
|
||||||
|
if allMeters.tickerStopChan != nil {
|
||||||
|
close(allMeters.tickerStopChan)
|
||||||
|
}
|
||||||
|
|
||||||
|
curClock := allMeters.clock
|
||||||
|
newTicker := curClock.NewTicker(meterExporterScanFrequency)
|
||||||
|
newStopChan := make(chan struct{})
|
||||||
|
allMeters.tickerStopChan = newStopChan
|
||||||
|
allMeters.ticker = newTicker
|
||||||
|
go func() {
|
||||||
|
defer newTicker.Stop()
|
||||||
|
for {
|
||||||
|
select {
|
||||||
|
case <-newTicker.C():
|
||||||
|
cleanup()
|
||||||
|
case <-newStopChan:
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}()
|
||||||
}
|
}
|
||||||
|
|
||||||
// RegisterResourceView is similar to view.Register(), except that it will
|
// RegisterResourceView is similar to view.Register(), except that it will
|
||||||
|
@ -174,7 +229,9 @@ func flushResourceExporters() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// ClearMetersForTest clears the internal set of metrics being exported,
|
// ClearMetersForTest clears the internal set of metrics being exported,
|
||||||
// including cleaning up background threads.
|
// including cleaning up background threads, and restarts cleanup thread.
|
||||||
|
//
|
||||||
|
// If a replacement clock is desired, it should be in allMeters.clock before calling.
|
||||||
func ClearMetersForTest() {
|
func ClearMetersForTest() {
|
||||||
allMeters.lock.Lock()
|
allMeters.lock.Lock()
|
||||||
defer allMeters.lock.Unlock()
|
defer allMeters.lock.Unlock()
|
||||||
|
@ -186,6 +243,7 @@ func ClearMetersForTest() {
|
||||||
meter.m.Stop()
|
meter.m.Stop()
|
||||||
delete(allMeters.meters, k)
|
delete(allMeters.meters, k)
|
||||||
}
|
}
|
||||||
|
startCleanup()
|
||||||
}
|
}
|
||||||
|
|
||||||
func meterExporterForResource(r *resource.Resource) *meterExporter {
|
func meterExporterForResource(r *resource.Resource) *meterExporter {
|
||||||
|
@ -195,6 +253,7 @@ func meterExporterForResource(r *resource.Resource) *meterExporter {
|
||||||
mE = &meterExporter{}
|
mE = &meterExporter{}
|
||||||
allMeters.meters[key] = mE
|
allMeters.meters[key] = mE
|
||||||
}
|
}
|
||||||
|
mE.t = allMeters.clock.Now()
|
||||||
if mE.o != nil {
|
if mE.o != nil {
|
||||||
return mE
|
return mE
|
||||||
}
|
}
|
||||||
|
@ -219,6 +278,9 @@ func meterExporterForResource(r *resource.Resource) *meterExporter {
|
||||||
// optionForResource finds or creates a stats exporter for the resource, and
|
// optionForResource finds or creates a stats exporter for the resource, and
|
||||||
// returns a stats.Option indicating which meter to record to.
|
// returns a stats.Option indicating which meter to record to.
|
||||||
func optionForResource(r *resource.Resource) (stats.Options, error) {
|
func optionForResource(r *resource.Resource) (stats.Options, error) {
|
||||||
|
// Start the allMeters cleanup thread, if not already started
|
||||||
|
cleanupOnce.Do(startCleanup)
|
||||||
|
|
||||||
allMeters.lock.Lock()
|
allMeters.lock.Lock()
|
||||||
defer allMeters.lock.Unlock()
|
defer allMeters.lock.Unlock()
|
||||||
|
|
||||||
|
@ -313,6 +375,7 @@ var _ view.Meter = (*defaultMeterImpl)(nil)
|
||||||
var defaultMeter = meterExporter{
|
var defaultMeter = meterExporter{
|
||||||
m: &defaultMeterImpl{},
|
m: &defaultMeterImpl{},
|
||||||
o: stats.WithRecorder(nil),
|
o: stats.WithRecorder(nil),
|
||||||
|
t: time.Now(), // time.Now() here is ok - defaultMeter never expires, so this won't be checked
|
||||||
}
|
}
|
||||||
|
|
||||||
func (*defaultMeterImpl) Record(*tag.Map, interface{}, map[string]interface{}) {
|
func (*defaultMeterImpl) Record(*tag.Map, interface{}, map[string]interface{}) {
|
||||||
|
|
|
@ -725,7 +725,7 @@ k8s.io/kube-openapi/pkg/util/sets
|
||||||
k8s.io/utils/buffer
|
k8s.io/utils/buffer
|
||||||
k8s.io/utils/integer
|
k8s.io/utils/integer
|
||||||
k8s.io/utils/trace
|
k8s.io/utils/trace
|
||||||
# knative.dev/pkg v0.0.0-20201003175733-ea7374e81105
|
# knative.dev/pkg v0.0.0-20201005175134-21cb070a8b05
|
||||||
## explicit
|
## explicit
|
||||||
knative.dev/pkg/apis
|
knative.dev/pkg/apis
|
||||||
knative.dev/pkg/apis/duck/ducktypes
|
knative.dev/pkg/apis/duck/ducktypes
|
||||||
|
@ -749,7 +749,7 @@ knative.dev/pkg/metrics/metricskey
|
||||||
knative.dev/pkg/network
|
knative.dev/pkg/network
|
||||||
knative.dev/pkg/reconciler
|
knative.dev/pkg/reconciler
|
||||||
knative.dev/pkg/system
|
knative.dev/pkg/system
|
||||||
# knative.dev/test-infra v0.0.0-20201002164834-8c07ff018549
|
# knative.dev/test-infra v0.0.0-20201005191434-b298834c10f1
|
||||||
## explicit
|
## explicit
|
||||||
knative.dev/test-infra/scripts
|
knative.dev/test-infra/scripts
|
||||||
knative.dev/test-infra/tools/dep-collector
|
knative.dev/test-infra/tools/dep-collector
|
||||||
|
|
Loading…
Reference in New Issue