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:
Ignacio Cano 2019-09-11 13:16:31 -07:00 committed by Knative Prow Robot
parent b6f14473ea
commit 62d3aa64b5
10 changed files with 85 additions and 85 deletions

View File

@ -35,14 +35,14 @@ const (
testConfiguration = "test-configuration"
testRevision = "test-revision"
testBroker = "test-broker"
testEventType = "test-eventtype"
testEventSource = "test-eventsource"
testTrigger = "test-trigger"
testFilterType = "test-filtertype"
testFilterSource = "test-filtersource"
testImporter = "test-importer"
testImporterResourceGroup = "test-importer-rg"
testBroker = "test-broker"
testEventType = "test-eventtype"
testEventSource = "test-eventsource"
testTrigger = "test-trigger"
testFilterType = "test-filtertype"
testFilterSource = "test-filtersource"
testSource = "test-source"
testSourceResourceGroup = "test-source-rg"
)
var (
@ -59,20 +59,20 @@ var (
routeKey = tag.Tag{Key: mustNewTagKey(metricskey.LabelRouteName), Value: testRoute}
revisionKey = tag.Tag{Key: mustNewTagKey(metricskey.LabelRevisionName), Value: testRevision}
brokerKey = tag.Tag{Key: mustNewTagKey(metricskey.LabelBrokerName), Value: testBroker}
triggerKey = tag.Tag{Key: mustNewTagKey(metricskey.LabelTriggerName), Value: testTrigger}
filterTypeKey = tag.Tag{Key: mustNewTagKey(metricskey.LabelFilterType), Value: testFilterType}
filterSourceKey = tag.Tag{Key: mustNewTagKey(metricskey.LabelFilterSource), Value: testFilterSource}
importerKey = tag.Tag{Key: mustNewTagKey(metricskey.LabelImporterName), Value: testImporter}
importerResourceGroupKey = tag.Tag{Key: mustNewTagKey(metricskey.LabelImporterResourceGroup), Value: testImporterResourceGroup}
eventTypeKey = tag.Tag{Key: mustNewTagKey(metricskey.LabelEventType), Value: testEventType}
eventSourceKey = tag.Tag{Key: mustNewTagKey(metricskey.LabelEventSource), Value: testEventSource}
brokerKey = tag.Tag{Key: mustNewTagKey(metricskey.LabelBrokerName), Value: testBroker}
triggerKey = tag.Tag{Key: mustNewTagKey(metricskey.LabelTriggerName), Value: testTrigger}
filterTypeKey = tag.Tag{Key: mustNewTagKey(metricskey.LabelFilterType), Value: testFilterType}
filterSourceKey = tag.Tag{Key: mustNewTagKey(metricskey.LabelFilterSource), Value: testFilterSource}
sourceKey = tag.Tag{Key: mustNewTagKey(metricskey.LabelSourceName), Value: testSource}
sourceResourceGroupKey = tag.Tag{Key: mustNewTagKey(metricskey.LabelSourceResourceGroup), Value: testSourceResourceGroup}
eventTypeKey = tag.Tag{Key: mustNewTagKey(metricskey.LabelEventType), Value: testEventType}
eventSourceKey = tag.Tag{Key: mustNewTagKey(metricskey.LabelEventSource), Value: testEventSource}
revisionTestTags = []tag.Tag{nsKey, serviceKey, routeKey, revisionKey}
brokerTestTags = []tag.Tag{nsKey, brokerKey, eventTypeKey, eventSourceKey}
triggerTestTags = []tag.Tag{nsKey, triggerKey, brokerKey, filterTypeKey, filterSourceKey}
importerTestTags = []tag.Tag{nsKey, importerKey, importerResourceGroupKey, eventTypeKey, eventSourceKey}
brokerTestTags = []tag.Tag{nsKey, brokerKey, eventTypeKey, eventSourceKey}
triggerTestTags = []tag.Tag{nsKey, triggerKey, brokerKey, filterTypeKey, filterSourceKey}
sourceTestTags = []tag.Tag{nsKey, sourceKey, sourceResourceGroupKey, eventTypeKey, eventSourceKey}
)
func mustNewTagKey(s string) tag.Key {

View File

@ -27,8 +27,8 @@ const (
// ResourceTypeKnativeBroker is the Stackdriver resource type for Knative Brokers.
ResourceTypeKnativeBroker = "knative_broker"
// ResourceTypeKnativeImporter is the Stackdriver resource type for Knative Importers.
ResourceTypeKnativeImporter = "knative_importer"
// ResourceTypeKnativeSource is the Stackdriver resource type for Knative Sources.
ResourceTypeKnativeSource = "knative_source"
// LabelTriggerName is the label for the name of the Trigger.
LabelTriggerName = "trigger_name"
@ -48,11 +48,11 @@ const (
// LabelFilterSource is the label for the Trigger filter attribute "source".
LabelFilterSource = "filter_source"
// LabelImporterName is the label for the name of the Importer.
LabelImporterName = "importer_name"
// LabelSourceName is the label for the name of the Source.
LabelSourceName = "source_name"
// LabelImporterResourceGroup is the name of the Importer CRD.
LabelImporterResourceGroup = "importer_resource_group"
// LabelSourceResourceGroup is the name of the Source CRD.
LabelSourceResourceGroup = "source_resource_group"
)
var (
@ -89,19 +89,19 @@ var (
"knative.dev/eventing/broker/event_count",
)
// KnativeImporterLabels stores the set of resource labels for resource type knative_importer.
KnativeImporterLabels = sets.NewString(
// KnativeSourceLabels stores the set of resource labels for resource type knative_source.
KnativeSourceLabels = sets.NewString(
LabelProject,
LabelLocation,
LabelClusterName,
LabelNamespaceName,
LabelImporterName,
LabelImporterResourceGroup,
LabelSourceName,
LabelSourceResourceGroup,
)
// KnativeImporterMetrics stores a set of metric types which are supported
// by resource type knative_importer.
KnativeImporterMetrics = sets.NewString(
"knative.dev/eventing/importer/event_count",
// KnativeSourceMetrics stores a set of metric types which are supported
// by resource type knative_source.
KnativeSourceMetrics = sets.NewString(
"knative.dev/eventing/source/event_count",
)
)

View File

@ -44,13 +44,13 @@ type KnativeBroker struct {
BrokerName string
}
type KnativeImporter struct {
Project string
Location string
ClusterName string
NamespaceName string
ImporterName string
ImporterResourceGroup string
type KnativeSource struct {
Project string
Location string
ClusterName string
NamespaceName string
SourceName string
SourceResourceGroup 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
}
func (ki *KnativeImporter) MonitoredResource() (resType string, labels map[string]string) {
func (ki *KnativeSource) MonitoredResource() (resType string, labels map[string]string) {
labels = map[string]string{
metricskey.LabelProject: ki.Project,
metricskey.LabelLocation: ki.Location,
metricskey.LabelClusterName: ki.ClusterName,
metricskey.LabelNamespaceName: ki.NamespaceName,
metricskey.LabelImporterName: ki.ImporterName,
metricskey.LabelImporterResourceGroup: ki.ImporterResourceGroup,
metricskey.LabelProject: ki.Project,
metricskey.LabelLocation: ki.Location,
metricskey.LabelClusterName: ki.ClusterName,
metricskey.LabelNamespaceName: ki.NamespaceName,
metricskey.LabelSourceName: ki.SourceName,
metricskey.LabelSourceResourceGroup: ki.SourceResourceGroup,
}
return metricskey.ResourceTypeKnativeImporter, labels
return metricskey.ResourceTypeKnativeSource, labels
}
func GetKnativeBrokerMonitoredResource(
@ -137,24 +137,24 @@ func GetKnativeTriggerMonitoredResource(
return newTags, kt
}
func GetKnativeImporterMonitoredResource(
func GetKnativeSourceMonitoredResource(
v *view.View, tags []tag.Tag, gm *gcpMetadata) ([]tag.Tag, monitoredresource.Interface) {
tagsMap := getTagsMap(tags)
ki := &KnativeImporter{
ki := &KnativeSource{
// The first three resource labels are from metadata.
Project: gm.project,
Location: gm.location,
ClusterName: gm.cluster,
// The rest resource labels are from metrics labels.
NamespaceName: valueOrUnknown(metricskey.LabelNamespaceName, tagsMap),
ImporterName: valueOrUnknown(metricskey.LabelImporterName, tagsMap),
ImporterResourceGroup: valueOrUnknown(metricskey.LabelImporterResourceGroup, tagsMap),
NamespaceName: valueOrUnknown(metricskey.LabelNamespaceName, tagsMap),
SourceName: valueOrUnknown(metricskey.LabelSourceName, tagsMap),
SourceResourceGroup: valueOrUnknown(metricskey.LabelSourceResourceGroup, tagsMap),
}
var newTags []tag.Tag
for _, t := range tags {
// 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)
}
}

View File

@ -36,7 +36,7 @@ import (
// 2) The backend is not Stackdriver.
// 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",
// "knative_trigger", "knative_importer".
// "knative_trigger", "knative_source".
func Record(ctx context.Context, ms stats.Measurement) {
mc := getCurMetricsConfig()
@ -57,7 +57,7 @@ func Record(ctx context.Context, ms stats.Measurement) {
isServingBuiltIn := metricskey.KnativeRevisionMetrics.Has(metricType)
isEventingBuiltIn := metricskey.KnativeTriggerMetrics.Has(metricType) ||
metricskey.KnativeBrokerMetrics.Has(metricType) ||
metricskey.KnativeImporterMetrics.Has(metricType)
metricskey.KnativeSourceMetrics.Has(metricType)
if isServingBuiltIn || isEventingBuiltIn {
stats.Record(ctx, ms)

View File

@ -85,13 +85,13 @@ func NewStatsReporter() (StatsReporter, error) {
}
r.eventTypeTagKey = eventTypeTag
nameTag, err := tag.NewKey(metricskey.LabelImporterName)
nameTag, err := tag.NewKey(metricskey.LabelSourceName)
if err != nil {
return nil, err
}
r.sourceNameTagKey = nameTag
resourceGroupTag, err := tag.NewKey(metricskey.LabelImporterResourceGroup)
resourceGroupTag, err := tag.NewKey(metricskey.LabelSourceResourceGroup)
if err != nil {
return nil, err
}

View File

@ -39,7 +39,7 @@ func TestStatsReporter(t *testing.T) {
Namespace: "testns",
EventType: "dev.knative.event",
EventSource: "unit-test",
Name: "testimporter",
Name: "testsource",
ResourceGroup: "testresourcegroup",
}
@ -52,13 +52,13 @@ func TestStatsReporter(t *testing.T) {
defer unregister()
wantTags := map[string]string{
metricskey.LabelNamespaceName: "testns",
metricskey.LabelEventType: "dev.knative.event",
metricskey.LabelEventSource: "unit-test",
metricskey.LabelImporterName: "testimporter",
metricskey.LabelImporterResourceGroup: "testresourcegroup",
metricskey.LabelResponseCode: "202",
metricskey.LabelResponseCodeClass: "2xx",
metricskey.LabelNamespaceName: "testns",
metricskey.LabelEventType: "dev.knative.event",
metricskey.LabelEventSource: "unit-test",
metricskey.LabelSourceName: "testsource",
metricskey.LabelSourceResourceGroup: "testresourcegroup",
metricskey.LabelResponseCode: "202",
metricskey.LabelResponseCodeClass: "2xx",
}
// test ReportEventCount

View File

@ -87,10 +87,10 @@ func getMonitoredResourceFunc(metricTypePrefix string, gm *gcpMetadata) func(v *
return GetKnativeBrokerMonitoredResource(view, tags, gm)
} else if metricskey.KnativeTriggerMetrics.Has(metricType) {
return GetKnativeTriggerMonitoredResource(view, tags, gm)
} else if metricskey.KnativeImporterMetrics.Has(metricType) {
return GetKnativeImporterMonitoredResource(view, tags, gm)
} else if metricskey.KnativeSourceMetrics.Has(metricType) {
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)
}
}
@ -105,7 +105,7 @@ func getMetricTypeFunc(metricTypePrefix, customMetricTypePrefix string) func(vie
inServing := metricskey.KnativeRevisionMetrics.Has(metricType)
inEventing := metricskey.KnativeBrokerMetrics.Has(metricType) ||
metricskey.KnativeTriggerMetrics.Has(metricType) ||
metricskey.KnativeImporterMetrics.Has(metricType)
metricskey.KnativeSourceMetrics.Has(metricType)
if inServing || inEventing {
return metricType
}

View File

@ -89,15 +89,15 @@ var (
metricName: "event_dispatch_latencies",
}}
supportedEventingImporterMetricsTestCases = []struct {
supportedEventingSourceMetricsTestCases = []struct {
name string
domain string
component string
metricName string
}{{
name: "importer metric",
name: "source metric",
domain: eventingDomain,
component: "importer",
component: "source",
metricName: "event_count",
}}
@ -248,8 +248,8 @@ func TestGetMonitoredResourceFunc_UseKnativeTrigger(t *testing.T) {
}
}
func TestGetMonitoredResourceFunc_UseKnativeImporter(t *testing.T) {
for _, testCase := range supportedEventingImporterMetricsTestCases {
func TestGetMonitoredResourceFunc_UseKnativeSource(t *testing.T) {
for _, testCase := range supportedEventingSourceMetricsTestCases {
testView = &view.View{
Description: "Test View",
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)
newTags, monitoredResource := mrf(testView, importerTestTags)
newTags, monitoredResource := mrf(testView, sourceTestTags)
gotResType, labels := monitoredResource.MonitoredResource()
wantedResType := "knative_importer"
wantedResType := "knative_source"
if gotResType != wantedResType {
t.Fatalf("MonitoredResource=%v, want %v", gotResType, wantedResType)
}
@ -276,13 +276,13 @@ func TestGetMonitoredResourceFunc_UseKnativeImporter(t *testing.T) {
if !ok || got != testNS {
t.Errorf("expected label %v with value %v, got: %v", metricskey.LabelNamespaceName, testNS, got)
}
got, ok = labels[metricskey.LabelImporterName]
if !ok || got != testImporter {
t.Errorf("expected label %v with value %v, got: %v", metricskey.LabelImporterName, testImporter, got)
got, ok = labels[metricskey.LabelSourceName]
if !ok || got != testSource {
t.Errorf("expected label %v with value %v, got: %v", metricskey.LabelSourceName, testSource, got)
}
got, ok = labels[metricskey.LabelImporterResourceGroup]
if !ok || got != testImporterResourceGroup {
t.Errorf("expected label %v with value %v, got: %v", metricskey.LabelImporterResourceGroup, testImporterResourceGroup, got)
got, ok = labels[metricskey.LabelSourceResourceGroup]
if !ok || got != testSourceResourceGroup {
t.Errorf("expected label %v with value %v, got: %v", metricskey.LabelSourceResourceGroup, testSourceResourceGroup, got)
}
}
}

View File

@ -57,7 +57,7 @@ func (c *CoveragePercentages) GetAndRemoveResourceValue(resource string) float64
// IsFailedBuild utility method to indicate if CoveragePercentages indicate
// values of a failed build.
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

View File

@ -26,7 +26,7 @@ import (
// GetCoveragePercentageXMLDisplay is a helper method to write resource coverage
// percentage values to junit xml file format.
func GetCoveragePercentageXMLDisplay(
percentageCoverages *coveragecalculator.CoveragePercentages) (string, error) {
percentageCoverages *coveragecalculator.CoveragePercentages) (string, error) {
tmpl, err := template.New("JunitResult").Parse(JunitResultTmpl)
if err != nil {
return "", err