func networkPolicyMetricFamilies()

in internal/store/networkpolicy.go [41:131]


func networkPolicyMetricFamilies(allowAnnotationsList, allowLabelsList []string) []generator.FamilyGenerator {
	return []generator.FamilyGenerator{
		*generator.NewFamilyGenerator(
			"kube_networkpolicy_created",
			"Unix creation timestamp of network policy",
			metric.Gauge,
			"",
			wrapNetworkPolicyFunc(func(n *networkingv1.NetworkPolicy) *metric.Family {
				return &metric.Family{
					Metrics: []*metric.Metric{
						{
							LabelKeys:   []string{},
							LabelValues: []string{},
							Value:       float64(n.CreationTimestamp.Unix()),
						},
					},
				}
			}),
		),
		*generator.NewFamilyGenerator(
			descNetworkPolicyAnnotationsName,
			descNetworkPolicyAnnotationsHelp,
			metric.Gauge,
			"",
			wrapNetworkPolicyFunc(func(n *networkingv1.NetworkPolicy) *metric.Family {
				annotationKeys, annotationValues := createPrometheusLabelKeysValues("annotation", n.Annotations, allowAnnotationsList)
				return &metric.Family{
					Metrics: []*metric.Metric{
						{
							LabelKeys:   annotationKeys,
							LabelValues: annotationValues,
							Value:       1,
						},
					},
				}
			}),
		),
		*generator.NewFamilyGenerator(
			descNetworkPolicyLabelsName,
			descNetworkPolicyLabelsHelp,
			metric.Gauge,
			"",
			wrapNetworkPolicyFunc(func(n *networkingv1.NetworkPolicy) *metric.Family {
				labelKeys, labelValues := createPrometheusLabelKeysValues("label", n.Labels, allowLabelsList)
				return &metric.Family{
					Metrics: []*metric.Metric{
						{
							LabelKeys:   labelKeys,
							LabelValues: labelValues,
							Value:       1,
						},
					},
				}
			}),
		),
		*generator.NewFamilyGenerator(
			"kube_networkpolicy_spec_ingress_rules",
			"Number of ingress rules on the networkpolicy",
			metric.Gauge,
			"",
			wrapNetworkPolicyFunc(func(n *networkingv1.NetworkPolicy) *metric.Family {
				return &metric.Family{
					Metrics: []*metric.Metric{
						{
							LabelKeys:   []string{},
							LabelValues: []string{},
							Value:       float64(len(n.Spec.Ingress)),
						},
					},
				}
			}),
		),
		*generator.NewFamilyGenerator(
			"kube_networkpolicy_spec_egress_rules",
			"Number of egress rules on the networkpolicy",
			metric.Gauge,
			"",
			wrapNetworkPolicyFunc(func(n *networkingv1.NetworkPolicy) *metric.Family {
				return &metric.Family{
					Metrics: []*metric.Metric{
						{
							LabelKeys:   []string{},
							LabelValues: []string{},
							Value:       float64(len(n.Spec.Egress)),
						},
					},
				}
			}),
		),
	}
}