Explorar el Código

Add test for record

Signed-off-by: Sean Holcomb <seanholcomb@gmail.com>
Sean Holcomb hace 5 días
padre
commit
b57d1a5477
Se han modificado 2 ficheros con 331 adiciones y 0 borrados
  1. 2 0
      core/pkg/source/record.go
  2. 329 0
      core/pkg/source/record_test.go

+ 2 - 0
core/pkg/source/record.go

@@ -4,6 +4,8 @@ import (
 	"time"
 )
 
+var _ MetricsQuerier = (*RecordMetricsQuerier)(nil)
+
 // RecordMetricsQuerier is a wrapper implementation of MetricsQuerier which counts the number of times each function is
 // called
 type RecordMetricsQuerier struct {

+ 329 - 0
core/pkg/source/record_test.go

@@ -0,0 +1,329 @@
+package source
+
+import (
+	"testing"
+	"time"
+
+	"github.com/stretchr/testify/require"
+)
+
+func TestRecordMetricsQuerier_Counts(t *testing.T) {
+	start := time.Now().UTC().Truncate(time.Hour)
+	end := start.Add(time.Hour)
+
+	r := NewRecordMetricsQuerier(NewNoOpMetricsQuerier())
+
+	r.QueryLocalStorageActiveMinutes(start, end)
+	r.QueryLocalStorageUsedAvg(start, end)
+	r.QueryLocalStorageUsedMax(start, end)
+	r.QueryLocalStorageBytes(start, end)
+	r.QueryKMLocalStorageUsedAvg(start, end)
+	r.QueryKMLocalStorageUsedMax(start, end)
+	r.QueryKMLocalStorageBytes(start, end)
+	r.QueryNodeInfo(start, end)
+	r.QueryNodeUptime(start, end)
+	r.QueryNodeActiveMinutes(start, end)
+	r.QueryNodeCPUCoresCapacity(start, end)
+	r.QueryNodeCPUCoresAllocatable(start, end)
+	r.QueryNodeRAMBytesCapacity(start, end)
+	r.QueryNodeRAMBytesAllocatable(start, end)
+	r.QueryNodeGPUCount(start, end)
+	r.QueryNodeCPUModeTotal(start, end)
+	r.QueryNodeIsSpot(start, end)
+	r.QueryNodeRAMSystemPercent(start, end)
+	r.QueryNodeRAMUserPercent(start, end)
+	r.QueryNodeResourceCapacities(start, end)
+	r.QueryNodeResourcesAllocatable(start, end)
+	r.QueryLBActiveMinutes(start, end)
+	r.QueryLBPricePerHr(start, end)
+	r.QueryClusterInfo(start, end)
+	r.QueryClusterUptime(start, end)
+	r.QueryClusterManagementDuration(start, end)
+	r.QueryClusterManagementPricePerHr(start, end)
+	r.QueryPods(start, end)
+	r.QueryPodsUID(start, end)
+	r.QueryPodInfo(start, end)
+	r.QueryPodUptime(start, end)
+	r.QueryPodOwners(start, end)
+	r.QueryPodPVCVolumes(start, end)
+	r.QueryPodNetworkEgressBytes(start, end)
+	r.QueryPodNetworkIngressBytes(start, end)
+	r.QueryContainerUptime(start, end)
+	r.QueryContainerResourceRequests(start, end)
+	r.QueryContainerResourceLimits(start, end)
+	r.QueryRAMBytesAllocated(start, end)
+	r.QueryRAMRequests(start, end)
+	r.QueryRAMLimits(start, end)
+	r.QueryRAMUsageAvg(start, end)
+	r.QueryRAMUsageMax(start, end)
+	r.QueryNodeRAMPricePerGiBHr(start, end)
+	r.QueryCPUCoresAllocated(start, end)
+	r.QueryCPURequests(start, end)
+	r.QueryCPULimits(start, end)
+	r.QueryCPUUsageAvg(start, end)
+	r.QueryCPUUsageMax(start, end)
+	r.QueryNodeCPUPricePerHr(start, end)
+	r.QueryGPUsAllocated(start, end)
+	r.QueryGPUsRequested(start, end)
+	r.QueryGPUsUsageAvg(start, end)
+	r.QueryGPUsUsageMax(start, end)
+	r.QueryNodeGPUPricePerHr(start, end)
+	r.QueryGPUInfo(start, end)
+	r.QueryIsGPUShared(start, end)
+	r.QueryDCGMDeviceInfo(start, end)
+	r.QueryDCGMDeviceUptime(start, end)
+	r.QueryDCGMContainerUsageAvg(start, end)
+	r.QueryDCGMContainerUsageMax(start, end)
+	r.QueryPodPVCAllocation(start, end)
+	r.QueryPVCBytesRequested(start, end)
+	r.QueryPVCInfo(start, end)
+	r.QueryKMPVCInfo(start, end)
+	r.QueryPVCUptime(start, end)
+	r.QueryPVCBytesUsedAverage(start, end)
+	r.QueryPVCBytesUsedMax(start, end)
+	r.QueryPVBytes(start, end)
+	r.QueryPVPricePerGiBHour(start, end)
+	r.QueryPVInfo(start, end)
+	r.QueryPVActiveMinutes(start, end)
+	r.QueryPVUsedAverage(start, end)
+	r.QueryPVUsedMax(start, end)
+	r.QueryKMPVInfo(start, end)
+	r.QueryPVUptime(start, end)
+	r.QueryDeploymentInfo(start, end)
+	r.QueryDeploymentUptime(start, end)
+	r.QueryDeploymentLabels(start, end)
+	r.QueryDeploymentAnnotations(start, end)
+	r.QueryDeploymentMatchLabels(start, end)
+	r.QueryStatefulSetInfo(start, end)
+	r.QueryStatefulSetUptime(start, end)
+	r.QueryStatefulSetLabels(start, end)
+	r.QueryStatefulSetAnnotations(start, end)
+	r.QueryStatefulSetMatchLabels(start, end)
+	r.QueryDaemonSetInfo(start, end)
+	r.QueryDaemonSetUptime(start, end)
+	r.QueryDaemonSetLabels(start, end)
+	r.QueryDaemonSetAnnotations(start, end)
+	r.QueryJobInfo(start, end)
+	r.QueryJobUptime(start, end)
+	r.QueryJobLabels(start, end)
+	r.QueryJobAnnotations(start, end)
+	r.QueryCronJobInfo(start, end)
+	r.QueryCronJobUptime(start, end)
+	r.QueryCronJobLabels(start, end)
+	r.QueryCronJobAnnotations(start, end)
+	r.QueryReplicaSetInfo(start, end)
+	r.QueryReplicaSetUptime(start, end)
+	r.QueryReplicaSetLabels(start, end)
+	r.QueryReplicaSetAnnotations(start, end)
+	r.QueryReplicaSetOwners(start, end)
+	r.QueryNamespaceInfo(start, end)
+	r.QueryNamespaceUptime(start, end)
+	r.QueryServiceInfo(start, end)
+	r.QueryServiceUptime(start, end)
+	r.QueryServiceSelectorLabels(start, end)
+	r.QueryNetZoneGiB(start, end)
+	r.QueryNetZonePricePerGiB(start, end)
+	r.QueryNetRegionGiB(start, end)
+	r.QueryNetRegionPricePerGiB(start, end)
+	r.QueryNetInternetGiB(start, end)
+	r.QueryNetInternetPricePerGiB(start, end)
+	r.QueryNetInternetServiceGiB(start, end)
+	r.QueryNetNatGatewayPricePerGiB(start, end)
+	r.QueryNetNatGatewayGiB(start, end)
+	r.QueryNetTransferBytes(start, end)
+	r.QueryNetZoneIngressGiB(start, end)
+	r.QueryNetRegionIngressGiB(start, end)
+	r.QueryNetInternetIngressGiB(start, end)
+	r.QueryNetInternetServiceIngressGiB(start, end)
+	r.QueryNetNatGatewayIngressPricePerGiB(start, end)
+	r.QueryNetNatGatewayIngressGiB(start, end)
+	r.QueryNetReceiveBytes(start, end)
+	r.QueryNamespaceAnnotations(start, end)
+	r.QueryPodAnnotations(start, end)
+	r.QueryNodeLabels(start, end)
+	r.QueryNamespaceLabels(start, end)
+	r.QueryPodLabels(start, end)
+	r.QueryPodsWithDaemonSetOwner(start, end)
+	r.QueryPodsWithJobOwner(start, end)
+	r.QueryPodsWithReplicaSetOwner(start, end)
+	r.QueryReplicaSetsWithoutOwners(start, end)
+	r.QueryReplicaSetsWithRollout(start, end)
+	r.QueryResourceQuotaInfo(start, end)
+	r.QueryResourceQuotaUptime(start, end)
+	r.QueryResourceQuotaSpecCPURequestAverage(start, end)
+	r.QueryResourceQuotaSpecCPURequestMax(start, end)
+	r.QueryResourceQuotaSpecRAMRequestAverage(start, end)
+	r.QueryResourceQuotaSpecRAMRequestMax(start, end)
+	r.QueryResourceQuotaSpecCPULimitAverage(start, end)
+	r.QueryResourceQuotaSpecCPULimitMax(start, end)
+	r.QueryResourceQuotaSpecRAMLimitAverage(start, end)
+	r.QueryResourceQuotaSpecRAMLimitMax(start, end)
+	r.QueryResourceQuotaStatusUsedCPURequestAverage(start, end)
+	r.QueryResourceQuotaStatusUsedCPURequestMax(start, end)
+	r.QueryResourceQuotaStatusUsedRAMRequestAverage(start, end)
+	r.QueryResourceQuotaStatusUsedRAMRequestMax(start, end)
+	r.QueryResourceQuotaStatusUsedCPULimitAverage(start, end)
+	r.QueryResourceQuotaStatusUsedCPULimitMax(start, end)
+	r.QueryResourceQuotaStatusUsedRAMLimitAverage(start, end)
+	r.QueryResourceQuotaStatusUsedRAMLimitMax(start, end)
+	r.QueryDataCoverage(30)
+
+	expected := map[string]int{
+		"QueryLocalStorageActiveMinutes":                   1,
+		"QueryLocalStorageUsedAvg":                         1,
+		"QueryLocalStorageUsedMax":                         1,
+		"QueryLocalStorageBytes":                           1,
+		"QueryKMLocalStorageUsedAvg":                       1,
+		"QueryKMLocalStorageUsedMax":                       1,
+		"QueryKMLocalStorageBytes":                         1,
+		"QueryNodeInfo":                                    1,
+		"QueryNodeUptime":                                  1,
+		"QueryNodeActiveMinutes":                           1,
+		"QueryNodeCPUCoresCapacity":                        1,
+		"QueryNodeCPUCoresAllocatable":                     1,
+		"QueryNodeRAMBytesCapacity":                        1,
+		"QueryNodeRAMBytesAllocatable":                     1,
+		"QueryNodeGPUCount":                                1,
+		"QueryNodeCPUModeTotal":                            1,
+		"QueryNodeIsSpot":                                  1,
+		"QueryNodeRAMSystemPercent":                        1,
+		"QueryNodeRAMUserPercent":                          1,
+		"QueryNodeResourceCapacities":                      1,
+		"QueryNodeResourcesAllocatable":                    1,
+		"QueryLBActiveMinutes":                             1,
+		"QueryLBPricePerHr":                                1,
+		"QueryClusterInfo":                                 1,
+		"QueryClusterUptime":                               1,
+		"QueryClusterManagementDuration":                   1,
+		"QueryClusterManagementPricePerHr":                 1,
+		"QueryPods":                                        1,
+		"QueryPodsUID":                                     1,
+		"QueryPodInfo":                                     1,
+		"QueryPodUptime":                                   1,
+		"QueryPodOwners":                                   1,
+		"QueryPodPVCVolumes":                               1,
+		"QueryPodNetworkEgressBytes":                       1,
+		"QueryPodNetworkIngressBytes":                      1,
+		"QueryContainerUptime":                             1,
+		"QueryContainerResourceRequests":                   1,
+		"QueryContainerResourceLimits":                     1,
+		"QueryRAMBytesAllocated":                           1,
+		"QueryRAMRequests":                                 1,
+		"QueryRAMLimits":                                   1,
+		"QueryRAMUsageAvg":                                 1,
+		"QueryRAMUsageMax":                                 1,
+		"QueryNodeRAMPricePerGiBHr":                        1,
+		"QueryCPUCoresAllocated":                           1,
+		"QueryCPURequests":                                 1,
+		"QueryCPULimits":                                   1,
+		"QueryCPUUsageAvg":                                 1,
+		"QueryCPUUsageMax":                                 1,
+		"QueryNodeCPUPricePerHr":                           1,
+		"QueryGPUsAllocated":                               1,
+		"QueryGPUsRequested":                               1,
+		"QueryGPUsUsageAvg":                                1,
+		"QueryGPUsUsageMax":                                1,
+		"QueryNodeGPUPricePerHr":                           1,
+		"QueryGPUInfo":                                     1,
+		"QueryIsGPUShared":                                 1,
+		"QueryDCGMDeviceInfo":                              1,
+		"QueryDCGMDeviceUptime":                            1,
+		"QueryDCGMContainerUsageAvg":                       1,
+		"QueryDCGMContainerUsageMax":                       1,
+		"QueryPodPVCAllocation":                            1,
+		"QueryPVCBytesRequested":                           1,
+		"QueryPVCInfo":                                     1,
+		"QueryKMPVCInfo":                                   1,
+		"QueryPVCUptime":                                   1,
+		"QueryPVCBytesUsedAverage":                         1,
+		"QueryPVCBytesUsedMax":                             1,
+		"QueryPVBytes":                                     1,
+		"QueryPVPricePerGiBHour":                           1,
+		"QueryPVInfo":                                      1,
+		"QueryPVActiveMinutes":                             1,
+		"QueryPVUsedAverage":                               1,
+		"QueryPVUsedMax":                                   1,
+		"QueryKMPVInfo":                                    1,
+		"QueryPVUptime":                                    1,
+		"QueryDeploymentInfo":                              1,
+		"QueryDeploymentUptime":                            1,
+		"QueryDeploymentLabels":                            1,
+		"QueryDeploymentAnnotations":                       1,
+		"QueryDeploymentMatchLabels":                       1,
+		"QueryStatefulSetInfo":                             1,
+		"QueryStatefulSetUptime":                           1,
+		"QueryStatefulSetLabels":                           1,
+		"QueryStatefulSetAnnotations":                      1,
+		"QueryStatefulSetMatchLabels":                      1,
+		"QueryDaemonSetInfo":                               1,
+		"QueryDaemonSetUptime":                             1,
+		"QueryDaemonSetLabels":                             1,
+		"QueryDaemonSetAnnotations":                        1,
+		"QueryJobInfo":                                     1,
+		"QueryJobUptime":                                   1,
+		"QueryJobLabels":                                   1,
+		"QueryJobAnnotations":                              1,
+		"QueryCronJobInfo":                                 1,
+		"QueryCronJobUptime":                               1,
+		"QueryCronJobLabels":                               1,
+		"QueryCronJobAnnotations":                          1,
+		"QueryReplicaSetInfo":                              1,
+		"QueryReplicaSetUptime":                            1,
+		"QueryReplicaSetLabels":                            1,
+		"QueryReplicaSetAnnotations":                       1,
+		"QueryReplicaSetOwners":                            1,
+		"QueryNamespaceInfo":                               1,
+		"QueryNamespaceUptime":                             1,
+		"QueryServiceInfo":                                 1,
+		"QueryServiceUptime":                               1,
+		"QueryServiceSelectorLabels":                       1,
+		"QueryNetZoneGiB":                                  1,
+		"QueryNetZonePricePerGiB":                          1,
+		"QueryNetRegionGiB":                                1,
+		"QueryNetRegionPricePerGiB":                        1,
+		"QueryNetInternetGiB":                              1,
+		"QueryNetInternetPricePerGiB":                      1,
+		"QueryNetInternetServiceGiB":                       1,
+		"QueryNetNatGatewayPricePerGiB":                    1,
+		"QueryNetNatGatewayGiB":                            1,
+		"QueryNetTransferBytes":                            1,
+		"QueryNetZoneIngressGiB":                           1,
+		"QueryNetRegionIngressGiB":                         1,
+		"QueryNetInternetIngressGiB":                       1,
+		"QueryNetInternetServiceIngressGiB":                1,
+		"QueryNetNatGatewayIngressPricePerGiB":             1,
+		"QueryNetNatGatewayIngressGiB":                     1,
+		"QueryNetReceiveBytes":                             1,
+		"QueryNamespaceAnnotations":                        1,
+		"QueryPodAnnotations":                              1,
+		"QueryNodeLabels":                                  1,
+		"QueryNamespaceLabels":                             1,
+		"QueryPodLabels":                                   1,
+		"QueryPodsWithDaemonSetOwner":                      1,
+		"QueryPodsWithJobOwner":                            1,
+		"QueryPodsWithReplicaSetOwner":                     1,
+		"QueryReplicaSetsWithoutOwners":                    1,
+		"QueryReplicaSetsWithRollout":                      1,
+		"QueryResourceQuotaInfo":                           1,
+		"QueryResourceQuotaUptime":                         1,
+		"QueryResourceQuotaSpecCPURequestAverage":          1,
+		"QueryResourceQuotaSpecCPURequestMax":              1,
+		"QueryResourceQuotaSpecRAMRequestAverage":          1,
+		"QueryResourceQuotaSpecRAMRequestMax":              1,
+		"QueryResourceQuotaSpecCPULimitAverage":            1,
+		"QueryResourceQuotaSpecCPULimitMax":                1,
+		"QueryResourceQuotaSpecRAMLimitAverage":            1,
+		"QueryResourceQuotaSpecRAMLimitMax":                1,
+		"QueryResourceQuotaStatusUsedCPURequestAverage":    1,
+		"QueryResourceQuotaStatusUsedCPURequestMax":        1,
+		"QueryResourceQuotaStatusUsedRAMRequestAverage":    1,
+		"QueryResourceQuotaStatusUsedRAMRequestMax":        1,
+		"QueryResourceQuotaStatusUsedCPULimitAverage":      1,
+		"QueryResourceQuotaStatusUsedCPULimitMax":          1,
+		"QueryResourceQuotaStatusUsedRAMLimitAverage":      1,
+		"QueryResourceQuotaStatusUsedRAMLimitMax":          1,
+		"QueryDataCoverage":                                1,
+	}
+
+	require.Equal(t, expected, r.Calls)
+}