Skip to content
This repository was archived by the owner on Oct 3, 2023. It is now read-only.

Commit cb914a5

Browse files
authored
Default mapping for knative_broker and knative_trigger. (#278)
1 parent 0fc2674 commit cb914a5

2 files changed

Lines changed: 130 additions & 0 deletions

File tree

resource.go

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,11 @@ const (
4141
knativeConfigurationName = "configuration_name"
4242
knativeNamespaceName = "namespace_name"
4343

44+
knativeBrokerType = "knative_broker"
45+
knativeBrokerName = "broker_name"
46+
knativeTriggerType = "knative_trigger"
47+
knativeTriggerName = "trigger_name"
48+
4449
appEngineInstanceType = "gae_instance"
4550

4651
appEngineService = "appengine.service.id"
@@ -133,6 +138,23 @@ var knativeRevisionResourceMap = map[string]string{
133138
knativeNamespaceName: knativeNamespaceName,
134139
}
135140

141+
var knativeBrokerResourceMap = map[string]string{
142+
"project_id": stackdriverProjectID,
143+
"location": resourcekeys.CloudKeyZone,
144+
"cluster_name": resourcekeys.K8SKeyClusterName,
145+
knativeNamespaceName: knativeNamespaceName,
146+
knativeBrokerName: knativeBrokerName,
147+
}
148+
149+
var knativeTriggerResourceMap = map[string]string{
150+
"project_id": stackdriverProjectID,
151+
"location": resourcekeys.CloudKeyZone,
152+
"cluster_name": resourcekeys.K8SKeyClusterName,
153+
knativeNamespaceName: knativeNamespaceName,
154+
knativeBrokerName: knativeBrokerName,
155+
knativeTriggerName: knativeTriggerName,
156+
}
157+
136158
// getAutodetectedLabels returns all the labels from the Monitored Resource detected
137159
// from the environment by calling monitoredresource.Autodetect. If a "zone" label is detected,
138160
// a "location" label is added with the same value to account for differences between
@@ -213,6 +235,12 @@ func DefaultMapResource(res *resource.Resource) *monitoredrespb.MonitoredResourc
213235
case res.Type == knativeResType:
214236
result.Type = res.Type
215237
match = knativeRevisionResourceMap
238+
case res.Type == knativeBrokerType:
239+
result.Type = knativeBrokerType
240+
match = knativeBrokerResourceMap
241+
case res.Type == knativeTriggerType:
242+
result.Type = knativeTriggerType
243+
match = knativeTriggerResourceMap
216244
}
217245

218246
var missing bool

resource_test.go

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -360,6 +360,108 @@ func TestDefaultMapResource(t *testing.T) {
360360
},
361361
},
362362
},
363+
// Mapping for knative_broker with autodetected GCP metadata labels.
364+
{
365+
input: &resource.Resource{
366+
Type: "knative_broker",
367+
Labels: map[string]string{
368+
knativeNamespaceName: "namespace1",
369+
knativeBrokerName: "default",
370+
},
371+
},
372+
autoRes: &monitoredresource.GKEContainer{
373+
ProjectID: "proj1",
374+
Zone: "zone1",
375+
ClusterName: "cluster1",
376+
},
377+
want: &monitoredrespb.MonitoredResource{
378+
Type: "knative_broker",
379+
Labels: map[string]string{
380+
"project_id": "proj1",
381+
"location": "zone1",
382+
"cluster_name": "cluster1",
383+
"namespace_name": "namespace1",
384+
"broker_name": "default",
385+
},
386+
},
387+
},
388+
// Mapping for knative_broker with explicit GCP metadata labels.
389+
{
390+
input: &resource.Resource{
391+
Type: "knative_broker",
392+
Labels: map[string]string{
393+
stackdriverProjectID: "proj1",
394+
resourcekeys.CloudKeyZone: "zone1",
395+
resourcekeys.K8SKeyClusterName: "cluster1",
396+
knativeNamespaceName: "namespace1",
397+
knativeBrokerName: "default",
398+
},
399+
},
400+
autoRes: &monitoredresource.GKEContainer{},
401+
want: &monitoredrespb.MonitoredResource{
402+
Type: "knative_broker",
403+
Labels: map[string]string{
404+
"project_id": "proj1",
405+
"location": "zone1",
406+
"cluster_name": "cluster1",
407+
"namespace_name": "namespace1",
408+
"broker_name": "default",
409+
},
410+
},
411+
},
412+
// Mapping for knative_trigger with autodetected GCP metadata labels.
413+
{
414+
input: &resource.Resource{
415+
Type: "knative_trigger",
416+
Labels: map[string]string{
417+
knativeNamespaceName: "namespace1",
418+
knativeBrokerName: "default",
419+
knativeTriggerName: "trigger-storage",
420+
},
421+
},
422+
autoRes: &monitoredresource.GKEContainer{
423+
ProjectID: "proj1",
424+
Zone: "zone1",
425+
ClusterName: "cluster1",
426+
},
427+
want: &monitoredrespb.MonitoredResource{
428+
Type: "knative_trigger",
429+
Labels: map[string]string{
430+
"project_id": "proj1",
431+
"location": "zone1",
432+
"cluster_name": "cluster1",
433+
"namespace_name": "namespace1",
434+
"broker_name": "default",
435+
"trigger_name": "trigger-storage",
436+
},
437+
},
438+
},
439+
// Mapping for knative_trigger with explicit GCP metadata labels.
440+
{
441+
input: &resource.Resource{
442+
Type: "knative_trigger",
443+
Labels: map[string]string{
444+
stackdriverProjectID: "proj1",
445+
resourcekeys.CloudKeyZone: "zone1",
446+
resourcekeys.K8SKeyClusterName: "cluster1",
447+
knativeNamespaceName: "namespace1",
448+
knativeBrokerName: "default",
449+
knativeTriggerName: "trigger-storage",
450+
},
451+
},
452+
autoRes: &monitoredresource.GKEContainer{},
453+
want: &monitoredrespb.MonitoredResource{
454+
Type: "knative_trigger",
455+
Labels: map[string]string{
456+
"project_id": "proj1",
457+
"location": "zone1",
458+
"cluster_name": "cluster1",
459+
"namespace_name": "namespace1",
460+
"broker_name": "default",
461+
"trigger_name": "trigger-storage",
462+
},
463+
},
464+
},
363465
}
364466
for i, c := range cases {
365467
t.Run(fmt.Sprintf("case-%d", i), func(t *testing.T) {

0 commit comments

Comments
 (0)