Skip to content

Commit 2855860

Browse files
author
Matteo
authored
PVs, PVCs and Ingress metrics (#1846)
1 parent be8b367 commit 2855860

File tree

8 files changed

+167
-7
lines changed

8 files changed

+167
-7
lines changed

translator/tocwconfig/sampleConfig/emf_and_kubernetes_config.yaml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,7 @@ exporters:
232232
- - ClusterName
233233
metric_name_selectors:
234234
- namespace_number_of_running_pods
235+
- namespace_ingress_count
235236
- dimensions:
236237
- - ClusterName
237238
metric_name_selectors:
@@ -336,6 +337,22 @@ exporters:
336337
- node_diskio_ebs_ec2_instance_performance_exceeded_iops
337338
- node_diskio_ebs_ec2_instance_performance_exceeded_tp
338339
- node_diskio_ebs_volume_queue_length
340+
- dimensions:
341+
- - ClusterName
342+
- - ClusterName
343+
- Namespace
344+
- - ClusterName
345+
- Namespace
346+
- PersistentVolumeClaimName
347+
metric_name_selectors:
348+
- persistent_volume_claim_status_bound
349+
- persistent_volume_claim_status_lost
350+
- persistent_volume_claim_status_pending
351+
- persistent_volume_claim_count
352+
- dimensions:
353+
- - ClusterName
354+
metric_name_selectors:
355+
- persistent_volume_count
339356
metric_descriptors:
340357
- metric_name: apiserver_admission_controller_admission_duration_seconds
341358
overwrite: true

translator/tocwconfig/sampleConfig/emf_and_kubernetes_with_gpu_config.yaml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,7 @@ exporters:
259259
- - ClusterName
260260
metric_name_selectors:
261261
- namespace_number_of_running_pods
262+
- namespace_ingress_count
262263
- dimensions:
263264
- - ClusterName
264265
metric_name_selectors:
@@ -639,6 +640,22 @@ exporters:
639640
- node_diskio_ebs_ec2_instance_performance_exceeded_iops
640641
- node_diskio_ebs_ec2_instance_performance_exceeded_tp
641642
- node_diskio_ebs_volume_queue_length
643+
- dimensions:
644+
- - ClusterName
645+
- - ClusterName
646+
- Namespace
647+
- - ClusterName
648+
- Namespace
649+
- PersistentVolumeClaimName
650+
metric_name_selectors:
651+
- persistent_volume_claim_status_bound
652+
- persistent_volume_claim_status_lost
653+
- persistent_volume_claim_status_pending
654+
- persistent_volume_claim_count
655+
- dimensions:
656+
- - ClusterName
657+
metric_name_selectors:
658+
- persistent_volume_count
642659
metric_descriptors:
643660
- metric_name: apiserver_admission_controller_admission_duration_seconds
644661
overwrite: true

translator/tocwconfig/sampleConfig/emf_and_kubernetes_with_kueue_config.yaml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,7 @@ exporters:
232232
- - ClusterName
233233
metric_name_selectors:
234234
- namespace_number_of_running_pods
235+
- namespace_ingress_count
235236
- dimensions:
236237
- - ClusterName
237238
metric_name_selectors:
@@ -336,6 +337,22 @@ exporters:
336337
- node_diskio_ebs_ec2_instance_performance_exceeded_iops
337338
- node_diskio_ebs_ec2_instance_performance_exceeded_tp
338339
- node_diskio_ebs_volume_queue_length
340+
- dimensions:
341+
- - ClusterName
342+
- - ClusterName
343+
- Namespace
344+
- - ClusterName
345+
- Namespace
346+
- PersistentVolumeClaimName
347+
metric_name_selectors:
348+
- persistent_volume_claim_status_bound
349+
- persistent_volume_claim_status_lost
350+
- persistent_volume_claim_status_pending
351+
- persistent_volume_claim_count
352+
- dimensions:
353+
- - ClusterName
354+
metric_name_selectors:
355+
- persistent_volume_count
339356
metric_descriptors:
340357
- metric_name: apiserver_admission_controller_admission_duration_seconds
341358
overwrite: true

translator/tocwconfig/sampleConfig/kubernetes_on_prem_config.yaml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,7 @@ exporters:
194194
- - ClusterName
195195
metric_name_selectors:
196196
- namespace_number_of_running_pods
197+
- namespace_ingress_count
197198
- dimensions:
198199
- - ClusterName
199200
metric_name_selectors:
@@ -298,6 +299,22 @@ exporters:
298299
- node_diskio_ebs_ec2_instance_performance_exceeded_iops
299300
- node_diskio_ebs_ec2_instance_performance_exceeded_tp
300301
- node_diskio_ebs_volume_queue_length
302+
- dimensions:
303+
- - ClusterName
304+
- - ClusterName
305+
- Namespace
306+
- - ClusterName
307+
- Namespace
308+
- PersistentVolumeClaimName
309+
metric_name_selectors:
310+
- persistent_volume_claim_status_bound
311+
- persistent_volume_claim_status_lost
312+
- persistent_volume_claim_status_pending
313+
- persistent_volume_claim_count
314+
- dimensions:
315+
- - ClusterName
316+
metric_name_selectors:
317+
- persistent_volume_count
301318
metric_descriptors:
302319
- metric_name: apiserver_admission_controller_admission_duration_seconds
303320
overwrite: true

translator/tocwconfig/sampleConfig/logs_and_kubernetes_config.yaml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,7 @@ exporters:
230230
- - ClusterName
231231
metric_name_selectors:
232232
- namespace_number_of_running_pods
233+
- namespace_ingress_count
233234
- dimensions:
234235
- - ClusterName
235236
metric_name_selectors:
@@ -334,6 +335,22 @@ exporters:
334335
- node_diskio_ebs_ec2_instance_performance_exceeded_iops
335336
- node_diskio_ebs_ec2_instance_performance_exceeded_tp
336337
- node_diskio_ebs_volume_queue_length
338+
- dimensions:
339+
- - ClusterName
340+
- - ClusterName
341+
- Namespace
342+
- - ClusterName
343+
- Namespace
344+
- PersistentVolumeClaimName
345+
metric_name_selectors:
346+
- persistent_volume_claim_status_bound
347+
- persistent_volume_claim_status_lost
348+
- persistent_volume_claim_status_pending
349+
- persistent_volume_claim_count
350+
- dimensions:
351+
- - ClusterName
352+
metric_name_selectors:
353+
- persistent_volume_count
337354
metric_descriptors:
338355
- metric_name: apiserver_admission_controller_admission_duration_seconds
339356
overwrite: true

translator/tocwconfig/sampleConfig/prometheus_and_kubernetes_config.yaml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,7 @@ exporters:
194194
- - ClusterName
195195
metric_name_selectors:
196196
- namespace_number_of_running_pods
197+
- namespace_ingress_count
197198
- dimensions:
198199
- - ClusterName
199200
metric_name_selectors:
@@ -298,6 +299,22 @@ exporters:
298299
- node_diskio_ebs_ec2_instance_performance_exceeded_iops
299300
- node_diskio_ebs_ec2_instance_performance_exceeded_tp
300301
- node_diskio_ebs_volume_queue_length
302+
- dimensions:
303+
- - ClusterName
304+
- - ClusterName
305+
- Namespace
306+
- - ClusterName
307+
- Namespace
308+
- PersistentVolumeClaimName
309+
metric_name_selectors:
310+
- persistent_volume_claim_status_bound
311+
- persistent_volume_claim_status_lost
312+
- persistent_volume_claim_status_pending
313+
- persistent_volume_claim_count
314+
- dimensions:
315+
- - ClusterName
316+
metric_name_selectors:
317+
- persistent_volume_count
301318
metric_descriptors:
302319
- metric_name: apiserver_admission_controller_admission_duration_seconds
303320
overwrite: true

translator/translate/otel/exporter/awsemf/kubernetes.go

Lines changed: 43 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ func setKubernetesMetricDeclaration(conf *confmap.Conf, cfg *awsemfexporter.Conf
3838
kubernetesMetricDeclarations = append(kubernetesMetricDeclarations, getDaemonSetMetricDeclarations(conf)...)
3939

4040
// Setup namespace metrics
41-
kubernetesMetricDeclarations = append(kubernetesMetricDeclarations, getNamespaceMetricDeclarations()...)
41+
kubernetesMetricDeclarations = append(kubernetesMetricDeclarations, getNamespaceMetricDeclarations(conf)...)
4242

4343
// Setup cluster metrics
4444
kubernetesMetricDeclarations = append(kubernetesMetricDeclarations, getClusterMetricDeclarations(conf)...)
@@ -56,6 +56,8 @@ func setKubernetesMetricDeclaration(conf *confmap.Conf, cfg *awsemfexporter.Conf
5656

5757
kubernetesMetricDeclarations = append(kubernetesMetricDeclarations, getEBSMetricDeclarations(conf)...)
5858

59+
kubernetesMetricDeclarations = append(kubernetesMetricDeclarations, getVolumesMetricDeclarations(conf)...)
60+
5961
cfg.MetricDeclarations = kubernetesMetricDeclarations
6062
cfg.MetricDescriptors = getControlPlaneMetricDescriptors(conf)
6163

@@ -258,13 +260,18 @@ func getDaemonSetMetricDeclarations(conf *confmap.Conf) []*awsemfexporter.Metric
258260
return daemonSetMetricDeclarations
259261
}
260262

261-
func getNamespaceMetricDeclarations() []*awsemfexporter.MetricDeclaration {
263+
func getNamespaceMetricDeclarations(conf *confmap.Conf) []*awsemfexporter.MetricDeclaration {
264+
metricNameSelectors := []string{"namespace_number_of_running_pods"}
265+
266+
enhancedContainerInsightsEnabled := awscontainerinsight.EnhancedContainerInsightsEnabled(conf)
267+
if enhancedContainerInsightsEnabled {
268+
metricNameSelectors = append(metricNameSelectors, "namespace_ingress_count")
269+
}
270+
262271
return []*awsemfexporter.MetricDeclaration{
263272
{
264-
Dimensions: [][]string{{"Namespace", "ClusterName"}, {"ClusterName"}},
265-
MetricNameSelectors: []string{
266-
"namespace_number_of_running_pods",
267-
},
273+
Dimensions: [][]string{{"Namespace", "ClusterName"}, {"ClusterName"}},
274+
MetricNameSelectors: metricNameSelectors,
268275
},
269276
}
270277
}
@@ -685,3 +692,33 @@ func getEBSMetricDeclarations(conf *confmap.Conf) []*awsemfexporter.MetricDeclar
685692
}
686693
return metricDeclarations
687694
}
695+
696+
func getVolumesMetricDeclarations(conf *confmap.Conf) []*awsemfexporter.MetricDeclaration {
697+
var metricDeclarations []*awsemfexporter.MetricDeclaration
698+
if awscontainerinsight.EnhancedContainerInsightsEnabled(conf) {
699+
metricDeclarations = []*awsemfexporter.MetricDeclaration{
700+
{
701+
Dimensions: [][]string{
702+
{"ClusterName"},
703+
{"ClusterName", "Namespace"},
704+
{"ClusterName", "Namespace", "PersistentVolumeClaimName"},
705+
},
706+
MetricNameSelectors: []string{
707+
"persistent_volume_claim_status_bound",
708+
"persistent_volume_claim_status_lost",
709+
"persistent_volume_claim_status_pending",
710+
"persistent_volume_claim_count",
711+
},
712+
},
713+
{
714+
Dimensions: [][]string{
715+
{"ClusterName"},
716+
},
717+
MetricNameSelectors: []string{
718+
"persistent_volume_count",
719+
},
720+
},
721+
}
722+
}
723+
return metricDeclarations
724+
}

translator/translate/otel/exporter/awsemf/translator_test.go

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -360,7 +360,7 @@ func TestTranslator(t *testing.T) {
360360
},
361361
{
362362
Dimensions: [][]string{{"Namespace", "ClusterName"}, {"ClusterName"}},
363-
MetricNameSelectors: []string{"namespace_number_of_running_pods"},
363+
MetricNameSelectors: []string{"namespace_number_of_running_pods", "namespace_ingress_count"},
364364
},
365365
{
366366
Dimensions: [][]string{{"ClusterName"}},
@@ -516,6 +516,27 @@ func TestTranslator(t *testing.T) {
516516
"node_diskio_ebs_ec2_instance_performance_exceeded_iops", "node_diskio_ebs_ec2_instance_performance_exceeded_tp", "node_diskio_ebs_volume_queue_length",
517517
},
518518
},
519+
{
520+
Dimensions: [][]string{
521+
{"ClusterName"},
522+
{"ClusterName", "Namespace"},
523+
{"ClusterName", "Namespace", "PersistentVolumeClaimName"},
524+
},
525+
MetricNameSelectors: []string{
526+
"persistent_volume_claim_status_bound",
527+
"persistent_volume_claim_status_lost",
528+
"persistent_volume_claim_status_pending",
529+
"persistent_volume_claim_count",
530+
},
531+
},
532+
{
533+
Dimensions: [][]string{
534+
{"ClusterName"},
535+
},
536+
MetricNameSelectors: []string{
537+
"persistent_volume_count",
538+
},
539+
},
519540
},
520541
"metric_descriptors": []awsemfexporter.MetricDescriptor{
521542
{

0 commit comments

Comments
 (0)