mirror of https://github.com/knative/pkg.git
Renaming Importer to Source (#662)
* source stats reporter... should be used by well-behaved sources * public fields * moving serialization/deserialization of metrics and logging maps to pkg * nits * adding UT * same order * updates * sock-puppet * unregistration problem? * removing base64 encoding * removing TODO * removing config changes... done in another PR * to properly address the comment * changing importer to source
This commit is contained in:
parent
b6f14473ea
commit
62d3aa64b5
|
@ -41,8 +41,8 @@ const (
|
||||||
testTrigger = "test-trigger"
|
testTrigger = "test-trigger"
|
||||||
testFilterType = "test-filtertype"
|
testFilterType = "test-filtertype"
|
||||||
testFilterSource = "test-filtersource"
|
testFilterSource = "test-filtersource"
|
||||||
testImporter = "test-importer"
|
testSource = "test-source"
|
||||||
testImporterResourceGroup = "test-importer-rg"
|
testSourceResourceGroup = "test-source-rg"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -63,8 +63,8 @@ var (
|
||||||
triggerKey = tag.Tag{Key: mustNewTagKey(metricskey.LabelTriggerName), Value: testTrigger}
|
triggerKey = tag.Tag{Key: mustNewTagKey(metricskey.LabelTriggerName), Value: testTrigger}
|
||||||
filterTypeKey = tag.Tag{Key: mustNewTagKey(metricskey.LabelFilterType), Value: testFilterType}
|
filterTypeKey = tag.Tag{Key: mustNewTagKey(metricskey.LabelFilterType), Value: testFilterType}
|
||||||
filterSourceKey = tag.Tag{Key: mustNewTagKey(metricskey.LabelFilterSource), Value: testFilterSource}
|
filterSourceKey = tag.Tag{Key: mustNewTagKey(metricskey.LabelFilterSource), Value: testFilterSource}
|
||||||
importerKey = tag.Tag{Key: mustNewTagKey(metricskey.LabelImporterName), Value: testImporter}
|
sourceKey = tag.Tag{Key: mustNewTagKey(metricskey.LabelSourceName), Value: testSource}
|
||||||
importerResourceGroupKey = tag.Tag{Key: mustNewTagKey(metricskey.LabelImporterResourceGroup), Value: testImporterResourceGroup}
|
sourceResourceGroupKey = tag.Tag{Key: mustNewTagKey(metricskey.LabelSourceResourceGroup), Value: testSourceResourceGroup}
|
||||||
eventTypeKey = tag.Tag{Key: mustNewTagKey(metricskey.LabelEventType), Value: testEventType}
|
eventTypeKey = tag.Tag{Key: mustNewTagKey(metricskey.LabelEventType), Value: testEventType}
|
||||||
eventSourceKey = tag.Tag{Key: mustNewTagKey(metricskey.LabelEventSource), Value: testEventSource}
|
eventSourceKey = tag.Tag{Key: mustNewTagKey(metricskey.LabelEventSource), Value: testEventSource}
|
||||||
|
|
||||||
|
@ -72,7 +72,7 @@ var (
|
||||||
|
|
||||||
brokerTestTags = []tag.Tag{nsKey, brokerKey, eventTypeKey, eventSourceKey}
|
brokerTestTags = []tag.Tag{nsKey, brokerKey, eventTypeKey, eventSourceKey}
|
||||||
triggerTestTags = []tag.Tag{nsKey, triggerKey, brokerKey, filterTypeKey, filterSourceKey}
|
triggerTestTags = []tag.Tag{nsKey, triggerKey, brokerKey, filterTypeKey, filterSourceKey}
|
||||||
importerTestTags = []tag.Tag{nsKey, importerKey, importerResourceGroupKey, eventTypeKey, eventSourceKey}
|
sourceTestTags = []tag.Tag{nsKey, sourceKey, sourceResourceGroupKey, eventTypeKey, eventSourceKey}
|
||||||
)
|
)
|
||||||
|
|
||||||
func mustNewTagKey(s string) tag.Key {
|
func mustNewTagKey(s string) tag.Key {
|
||||||
|
|
|
@ -27,8 +27,8 @@ const (
|
||||||
// ResourceTypeKnativeBroker is the Stackdriver resource type for Knative Brokers.
|
// ResourceTypeKnativeBroker is the Stackdriver resource type for Knative Brokers.
|
||||||
ResourceTypeKnativeBroker = "knative_broker"
|
ResourceTypeKnativeBroker = "knative_broker"
|
||||||
|
|
||||||
// ResourceTypeKnativeImporter is the Stackdriver resource type for Knative Importers.
|
// ResourceTypeKnativeSource is the Stackdriver resource type for Knative Sources.
|
||||||
ResourceTypeKnativeImporter = "knative_importer"
|
ResourceTypeKnativeSource = "knative_source"
|
||||||
|
|
||||||
// LabelTriggerName is the label for the name of the Trigger.
|
// LabelTriggerName is the label for the name of the Trigger.
|
||||||
LabelTriggerName = "trigger_name"
|
LabelTriggerName = "trigger_name"
|
||||||
|
@ -48,11 +48,11 @@ const (
|
||||||
// LabelFilterSource is the label for the Trigger filter attribute "source".
|
// LabelFilterSource is the label for the Trigger filter attribute "source".
|
||||||
LabelFilterSource = "filter_source"
|
LabelFilterSource = "filter_source"
|
||||||
|
|
||||||
// LabelImporterName is the label for the name of the Importer.
|
// LabelSourceName is the label for the name of the Source.
|
||||||
LabelImporterName = "importer_name"
|
LabelSourceName = "source_name"
|
||||||
|
|
||||||
// LabelImporterResourceGroup is the name of the Importer CRD.
|
// LabelSourceResourceGroup is the name of the Source CRD.
|
||||||
LabelImporterResourceGroup = "importer_resource_group"
|
LabelSourceResourceGroup = "source_resource_group"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -89,19 +89,19 @@ var (
|
||||||
"knative.dev/eventing/broker/event_count",
|
"knative.dev/eventing/broker/event_count",
|
||||||
)
|
)
|
||||||
|
|
||||||
// KnativeImporterLabels stores the set of resource labels for resource type knative_importer.
|
// KnativeSourceLabels stores the set of resource labels for resource type knative_source.
|
||||||
KnativeImporterLabels = sets.NewString(
|
KnativeSourceLabels = sets.NewString(
|
||||||
LabelProject,
|
LabelProject,
|
||||||
LabelLocation,
|
LabelLocation,
|
||||||
LabelClusterName,
|
LabelClusterName,
|
||||||
LabelNamespaceName,
|
LabelNamespaceName,
|
||||||
LabelImporterName,
|
LabelSourceName,
|
||||||
LabelImporterResourceGroup,
|
LabelSourceResourceGroup,
|
||||||
)
|
)
|
||||||
|
|
||||||
// KnativeImporterMetrics stores a set of metric types which are supported
|
// KnativeSourceMetrics stores a set of metric types which are supported
|
||||||
// by resource type knative_importer.
|
// by resource type knative_source.
|
||||||
KnativeImporterMetrics = sets.NewString(
|
KnativeSourceMetrics = sets.NewString(
|
||||||
"knative.dev/eventing/importer/event_count",
|
"knative.dev/eventing/source/event_count",
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
|
@ -44,13 +44,13 @@ type KnativeBroker struct {
|
||||||
BrokerName string
|
BrokerName string
|
||||||
}
|
}
|
||||||
|
|
||||||
type KnativeImporter struct {
|
type KnativeSource struct {
|
||||||
Project string
|
Project string
|
||||||
Location string
|
Location string
|
||||||
ClusterName string
|
ClusterName string
|
||||||
NamespaceName string
|
NamespaceName string
|
||||||
ImporterName string
|
SourceName string
|
||||||
ImporterResourceGroup string
|
SourceResourceGroup string
|
||||||
}
|
}
|
||||||
|
|
||||||
func (kt *KnativeTrigger) MonitoredResource() (resType string, labels map[string]string) {
|
func (kt *KnativeTrigger) MonitoredResource() (resType string, labels map[string]string) {
|
||||||
|
@ -76,16 +76,16 @@ func (kb *KnativeBroker) MonitoredResource() (resType string, labels map[string]
|
||||||
return metricskey.ResourceTypeKnativeBroker, labels
|
return metricskey.ResourceTypeKnativeBroker, labels
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ki *KnativeImporter) MonitoredResource() (resType string, labels map[string]string) {
|
func (ki *KnativeSource) MonitoredResource() (resType string, labels map[string]string) {
|
||||||
labels = map[string]string{
|
labels = map[string]string{
|
||||||
metricskey.LabelProject: ki.Project,
|
metricskey.LabelProject: ki.Project,
|
||||||
metricskey.LabelLocation: ki.Location,
|
metricskey.LabelLocation: ki.Location,
|
||||||
metricskey.LabelClusterName: ki.ClusterName,
|
metricskey.LabelClusterName: ki.ClusterName,
|
||||||
metricskey.LabelNamespaceName: ki.NamespaceName,
|
metricskey.LabelNamespaceName: ki.NamespaceName,
|
||||||
metricskey.LabelImporterName: ki.ImporterName,
|
metricskey.LabelSourceName: ki.SourceName,
|
||||||
metricskey.LabelImporterResourceGroup: ki.ImporterResourceGroup,
|
metricskey.LabelSourceResourceGroup: ki.SourceResourceGroup,
|
||||||
}
|
}
|
||||||
return metricskey.ResourceTypeKnativeImporter, labels
|
return metricskey.ResourceTypeKnativeSource, labels
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetKnativeBrokerMonitoredResource(
|
func GetKnativeBrokerMonitoredResource(
|
||||||
|
@ -137,24 +137,24 @@ func GetKnativeTriggerMonitoredResource(
|
||||||
return newTags, kt
|
return newTags, kt
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetKnativeImporterMonitoredResource(
|
func GetKnativeSourceMonitoredResource(
|
||||||
v *view.View, tags []tag.Tag, gm *gcpMetadata) ([]tag.Tag, monitoredresource.Interface) {
|
v *view.View, tags []tag.Tag, gm *gcpMetadata) ([]tag.Tag, monitoredresource.Interface) {
|
||||||
tagsMap := getTagsMap(tags)
|
tagsMap := getTagsMap(tags)
|
||||||
ki := &KnativeImporter{
|
ki := &KnativeSource{
|
||||||
// The first three resource labels are from metadata.
|
// The first three resource labels are from metadata.
|
||||||
Project: gm.project,
|
Project: gm.project,
|
||||||
Location: gm.location,
|
Location: gm.location,
|
||||||
ClusterName: gm.cluster,
|
ClusterName: gm.cluster,
|
||||||
// The rest resource labels are from metrics labels.
|
// The rest resource labels are from metrics labels.
|
||||||
NamespaceName: valueOrUnknown(metricskey.LabelNamespaceName, tagsMap),
|
NamespaceName: valueOrUnknown(metricskey.LabelNamespaceName, tagsMap),
|
||||||
ImporterName: valueOrUnknown(metricskey.LabelImporterName, tagsMap),
|
SourceName: valueOrUnknown(metricskey.LabelSourceName, tagsMap),
|
||||||
ImporterResourceGroup: valueOrUnknown(metricskey.LabelImporterResourceGroup, tagsMap),
|
SourceResourceGroup: valueOrUnknown(metricskey.LabelSourceResourceGroup, tagsMap),
|
||||||
}
|
}
|
||||||
|
|
||||||
var newTags []tag.Tag
|
var newTags []tag.Tag
|
||||||
for _, t := range tags {
|
for _, t := range tags {
|
||||||
// Keep the metrics labels that are not resource labels
|
// Keep the metrics labels that are not resource labels
|
||||||
if !metricskey.KnativeImporterLabels.Has(t.Key.Name()) {
|
if !metricskey.KnativeSourceLabels.Has(t.Key.Name()) {
|
||||||
newTags = append(newTags, t)
|
newTags = append(newTags, t)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,7 +36,7 @@ import (
|
||||||
// 2) The backend is not Stackdriver.
|
// 2) The backend is not Stackdriver.
|
||||||
// 3) The backend is Stackdriver and it is allowed to use custom metrics.
|
// 3) The backend is Stackdriver and it is allowed to use custom metrics.
|
||||||
// 4) The backend is Stackdriver and the metric is one of the built-in metrics: "knative_revision", "knative_broker",
|
// 4) The backend is Stackdriver and the metric is one of the built-in metrics: "knative_revision", "knative_broker",
|
||||||
// "knative_trigger", "knative_importer".
|
// "knative_trigger", "knative_source".
|
||||||
func Record(ctx context.Context, ms stats.Measurement) {
|
func Record(ctx context.Context, ms stats.Measurement) {
|
||||||
mc := getCurMetricsConfig()
|
mc := getCurMetricsConfig()
|
||||||
|
|
||||||
|
@ -57,7 +57,7 @@ func Record(ctx context.Context, ms stats.Measurement) {
|
||||||
isServingBuiltIn := metricskey.KnativeRevisionMetrics.Has(metricType)
|
isServingBuiltIn := metricskey.KnativeRevisionMetrics.Has(metricType)
|
||||||
isEventingBuiltIn := metricskey.KnativeTriggerMetrics.Has(metricType) ||
|
isEventingBuiltIn := metricskey.KnativeTriggerMetrics.Has(metricType) ||
|
||||||
metricskey.KnativeBrokerMetrics.Has(metricType) ||
|
metricskey.KnativeBrokerMetrics.Has(metricType) ||
|
||||||
metricskey.KnativeImporterMetrics.Has(metricType)
|
metricskey.KnativeSourceMetrics.Has(metricType)
|
||||||
|
|
||||||
if isServingBuiltIn || isEventingBuiltIn {
|
if isServingBuiltIn || isEventingBuiltIn {
|
||||||
stats.Record(ctx, ms)
|
stats.Record(ctx, ms)
|
||||||
|
|
|
@ -85,13 +85,13 @@ func NewStatsReporter() (StatsReporter, error) {
|
||||||
}
|
}
|
||||||
r.eventTypeTagKey = eventTypeTag
|
r.eventTypeTagKey = eventTypeTag
|
||||||
|
|
||||||
nameTag, err := tag.NewKey(metricskey.LabelImporterName)
|
nameTag, err := tag.NewKey(metricskey.LabelSourceName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
r.sourceNameTagKey = nameTag
|
r.sourceNameTagKey = nameTag
|
||||||
|
|
||||||
resourceGroupTag, err := tag.NewKey(metricskey.LabelImporterResourceGroup)
|
resourceGroupTag, err := tag.NewKey(metricskey.LabelSourceResourceGroup)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,7 +39,7 @@ func TestStatsReporter(t *testing.T) {
|
||||||
Namespace: "testns",
|
Namespace: "testns",
|
||||||
EventType: "dev.knative.event",
|
EventType: "dev.knative.event",
|
||||||
EventSource: "unit-test",
|
EventSource: "unit-test",
|
||||||
Name: "testimporter",
|
Name: "testsource",
|
||||||
ResourceGroup: "testresourcegroup",
|
ResourceGroup: "testresourcegroup",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -55,8 +55,8 @@ func TestStatsReporter(t *testing.T) {
|
||||||
metricskey.LabelNamespaceName: "testns",
|
metricskey.LabelNamespaceName: "testns",
|
||||||
metricskey.LabelEventType: "dev.knative.event",
|
metricskey.LabelEventType: "dev.knative.event",
|
||||||
metricskey.LabelEventSource: "unit-test",
|
metricskey.LabelEventSource: "unit-test",
|
||||||
metricskey.LabelImporterName: "testimporter",
|
metricskey.LabelSourceName: "testsource",
|
||||||
metricskey.LabelImporterResourceGroup: "testresourcegroup",
|
metricskey.LabelSourceResourceGroup: "testresourcegroup",
|
||||||
metricskey.LabelResponseCode: "202",
|
metricskey.LabelResponseCode: "202",
|
||||||
metricskey.LabelResponseCodeClass: "2xx",
|
metricskey.LabelResponseCodeClass: "2xx",
|
||||||
}
|
}
|
||||||
|
|
|
@ -87,10 +87,10 @@ func getMonitoredResourceFunc(metricTypePrefix string, gm *gcpMetadata) func(v *
|
||||||
return GetKnativeBrokerMonitoredResource(view, tags, gm)
|
return GetKnativeBrokerMonitoredResource(view, tags, gm)
|
||||||
} else if metricskey.KnativeTriggerMetrics.Has(metricType) {
|
} else if metricskey.KnativeTriggerMetrics.Has(metricType) {
|
||||||
return GetKnativeTriggerMonitoredResource(view, tags, gm)
|
return GetKnativeTriggerMonitoredResource(view, tags, gm)
|
||||||
} else if metricskey.KnativeImporterMetrics.Has(metricType) {
|
} else if metricskey.KnativeSourceMetrics.Has(metricType) {
|
||||||
return GetKnativeImporterMonitoredResource(view, tags, gm)
|
return GetKnativeSourceMonitoredResource(view, tags, gm)
|
||||||
}
|
}
|
||||||
// Unsupported metric by knative_revision, knative_broker, knative_trigger, and knative_importer, use "global" resource type.
|
// Unsupported metric by knative_revision, knative_broker, knative_trigger, and knative_source, use "global" resource type.
|
||||||
return getGlobalMonitoredResource(view, tags)
|
return getGlobalMonitoredResource(view, tags)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -105,7 +105,7 @@ func getMetricTypeFunc(metricTypePrefix, customMetricTypePrefix string) func(vie
|
||||||
inServing := metricskey.KnativeRevisionMetrics.Has(metricType)
|
inServing := metricskey.KnativeRevisionMetrics.Has(metricType)
|
||||||
inEventing := metricskey.KnativeBrokerMetrics.Has(metricType) ||
|
inEventing := metricskey.KnativeBrokerMetrics.Has(metricType) ||
|
||||||
metricskey.KnativeTriggerMetrics.Has(metricType) ||
|
metricskey.KnativeTriggerMetrics.Has(metricType) ||
|
||||||
metricskey.KnativeImporterMetrics.Has(metricType)
|
metricskey.KnativeSourceMetrics.Has(metricType)
|
||||||
if inServing || inEventing {
|
if inServing || inEventing {
|
||||||
return metricType
|
return metricType
|
||||||
}
|
}
|
||||||
|
|
|
@ -89,15 +89,15 @@ var (
|
||||||
metricName: "event_dispatch_latencies",
|
metricName: "event_dispatch_latencies",
|
||||||
}}
|
}}
|
||||||
|
|
||||||
supportedEventingImporterMetricsTestCases = []struct {
|
supportedEventingSourceMetricsTestCases = []struct {
|
||||||
name string
|
name string
|
||||||
domain string
|
domain string
|
||||||
component string
|
component string
|
||||||
metricName string
|
metricName string
|
||||||
}{{
|
}{{
|
||||||
name: "importer metric",
|
name: "source metric",
|
||||||
domain: eventingDomain,
|
domain: eventingDomain,
|
||||||
component: "importer",
|
component: "source",
|
||||||
metricName: "event_count",
|
metricName: "event_count",
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
@ -248,8 +248,8 @@ func TestGetMonitoredResourceFunc_UseKnativeTrigger(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestGetMonitoredResourceFunc_UseKnativeImporter(t *testing.T) {
|
func TestGetMonitoredResourceFunc_UseKnativeSource(t *testing.T) {
|
||||||
for _, testCase := range supportedEventingImporterMetricsTestCases {
|
for _, testCase := range supportedEventingSourceMetricsTestCases {
|
||||||
testView = &view.View{
|
testView = &view.View{
|
||||||
Description: "Test View",
|
Description: "Test View",
|
||||||
Measure: stats.Int64(testCase.metricName, "Test Measure", stats.UnitDimensionless),
|
Measure: stats.Int64(testCase.metricName, "Test Measure", stats.UnitDimensionless),
|
||||||
|
@ -258,9 +258,9 @@ func TestGetMonitoredResourceFunc_UseKnativeImporter(t *testing.T) {
|
||||||
}
|
}
|
||||||
mrf := getMonitoredResourceFunc(path.Join(testCase.domain, testCase.component), &testGcpMetadata)
|
mrf := getMonitoredResourceFunc(path.Join(testCase.domain, testCase.component), &testGcpMetadata)
|
||||||
|
|
||||||
newTags, monitoredResource := mrf(testView, importerTestTags)
|
newTags, monitoredResource := mrf(testView, sourceTestTags)
|
||||||
gotResType, labels := monitoredResource.MonitoredResource()
|
gotResType, labels := monitoredResource.MonitoredResource()
|
||||||
wantedResType := "knative_importer"
|
wantedResType := "knative_source"
|
||||||
if gotResType != wantedResType {
|
if gotResType != wantedResType {
|
||||||
t.Fatalf("MonitoredResource=%v, want %v", gotResType, wantedResType)
|
t.Fatalf("MonitoredResource=%v, want %v", gotResType, wantedResType)
|
||||||
}
|
}
|
||||||
|
@ -276,13 +276,13 @@ func TestGetMonitoredResourceFunc_UseKnativeImporter(t *testing.T) {
|
||||||
if !ok || got != testNS {
|
if !ok || got != testNS {
|
||||||
t.Errorf("expected label %v with value %v, got: %v", metricskey.LabelNamespaceName, testNS, got)
|
t.Errorf("expected label %v with value %v, got: %v", metricskey.LabelNamespaceName, testNS, got)
|
||||||
}
|
}
|
||||||
got, ok = labels[metricskey.LabelImporterName]
|
got, ok = labels[metricskey.LabelSourceName]
|
||||||
if !ok || got != testImporter {
|
if !ok || got != testSource {
|
||||||
t.Errorf("expected label %v with value %v, got: %v", metricskey.LabelImporterName, testImporter, got)
|
t.Errorf("expected label %v with value %v, got: %v", metricskey.LabelSourceName, testSource, got)
|
||||||
}
|
}
|
||||||
got, ok = labels[metricskey.LabelImporterResourceGroup]
|
got, ok = labels[metricskey.LabelSourceResourceGroup]
|
||||||
if !ok || got != testImporterResourceGroup {
|
if !ok || got != testSourceResourceGroup {
|
||||||
t.Errorf("expected label %v with value %v, got: %v", metricskey.LabelImporterResourceGroup, testImporterResourceGroup, got)
|
t.Errorf("expected label %v with value %v, got: %v", metricskey.LabelSourceResourceGroup, testSourceResourceGroup, got)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -57,7 +57,7 @@ func (c *CoveragePercentages) GetAndRemoveResourceValue(resource string) float64
|
||||||
// IsFailedBuild utility method to indicate if CoveragePercentages indicate
|
// IsFailedBuild utility method to indicate if CoveragePercentages indicate
|
||||||
// values of a failed build.
|
// values of a failed build.
|
||||||
func (c *CoveragePercentages) IsFailedBuild() bool {
|
func (c *CoveragePercentages) IsFailedBuild() bool {
|
||||||
return math.Abs(c.ResourceCoverages["Overall"] - 0) == 0
|
return math.Abs(c.ResourceCoverages["Overall"]-0) == 0
|
||||||
}
|
}
|
||||||
|
|
||||||
// CalculateTypeCoverage calculates aggregate coverage values based on provided []TypeCoverage
|
// CalculateTypeCoverage calculates aggregate coverage values based on provided []TypeCoverage
|
||||||
|
|
Loading…
Reference in New Issue