noop.go 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712
  1. package source
  2. import (
  3. "time"
  4. )
  5. //--------------------------------------------------------------------------
  6. // No-Op MetricsQuerier (empty query results)
  7. //--------------------------------------------------------------------------
  8. // NoOpMetricsQuerier is a no-op implementation of the MetricsQuerier interface
  9. // that returns empty results for all queries.
  10. type NoOpMetricsQuerier struct{}
  11. // NewNoOpMetricsQuerier creates a new mock metrics querier
  12. func NewNoOpMetricsQuerier() *NoOpMetricsQuerier {
  13. return &NoOpMetricsQuerier{}
  14. }
  15. // Local Cluster Disks
  16. func (m *NoOpMetricsQuerier) QueryLocalStorageActiveMinutes(start, end time.Time) *Future[LocalStorageActiveMinutesResult] {
  17. return newEmptyResult(DecodeLocalStorageActiveMinutesResult)
  18. }
  19. func (m *NoOpMetricsQuerier) QueryLocalStorageUsedAvg(start, end time.Time) *Future[LocalStorageUsedAvgResult] {
  20. return newEmptyResult(DecodeLocalStorageUsedAvgResult)
  21. }
  22. func (m *NoOpMetricsQuerier) QueryLocalStorageUsedMax(start, end time.Time) *Future[LocalStorageUsedMaxResult] {
  23. return newEmptyResult(DecodeLocalStorageUsedMaxResult)
  24. }
  25. func (m *NoOpMetricsQuerier) QueryLocalStorageBytes(start, end time.Time) *Future[LocalStorageBytesResult] {
  26. return newEmptyResult(DecodeLocalStorageBytesResult)
  27. }
  28. func (m *NoOpMetricsQuerier) QueryKMLocalStorageUsedAvg(start, end time.Time) *Future[NodeUIDValueResult] {
  29. return newEmptyResult(DecodeNodeUIDValueResult)
  30. }
  31. func (m *NoOpMetricsQuerier) QueryKMLocalStorageUsedMax(start, end time.Time) *Future[NodeUIDValueResult] {
  32. return newEmptyResult(DecodeNodeUIDValueResult)
  33. }
  34. func (m *NoOpMetricsQuerier) QueryKMLocalStorageBytes(start, end time.Time) *Future[UIDValueResult] {
  35. return newEmptyResult(DecodeUIDValueResult)
  36. }
  37. // Nodes
  38. func (m *NoOpMetricsQuerier) QueryNodeInfo(start, end time.Time) *Future[NodeInfoResult] {
  39. return newEmptyResult(DecodeNodeInfoResult)
  40. }
  41. func (m *NoOpMetricsQuerier) QueryNodeUptime(start, end time.Time) *Future[UptimeResult] {
  42. return newEmptyResult(DecodeUptimeResult)
  43. }
  44. func (m *NoOpMetricsQuerier) QueryNodeActiveMinutes(start, end time.Time) *Future[NodeActiveMinutesResult] {
  45. return newEmptyResult(DecodeNodeActiveMinutesResult)
  46. }
  47. func (m *NoOpMetricsQuerier) QueryNodeCPUCoresCapacity(start, end time.Time) *Future[NodeCPUCoresCapacityResult] {
  48. return newEmptyResult(DecodeNodeCPUCoresCapacityResult)
  49. }
  50. func (m *NoOpMetricsQuerier) QueryNodeCPUCoresAllocatable(start, end time.Time) *Future[NodeCPUCoresAllocatableResult] {
  51. return newEmptyResult(DecodeNodeCPUCoresAllocatableResult)
  52. }
  53. func (m *NoOpMetricsQuerier) QueryNodeRAMBytesCapacity(start, end time.Time) *Future[NodeRAMBytesCapacityResult] {
  54. return newEmptyResult(DecodeNodeRAMBytesCapacityResult)
  55. }
  56. func (m *NoOpMetricsQuerier) QueryNodeRAMBytesAllocatable(start, end time.Time) *Future[NodeRAMBytesAllocatableResult] {
  57. return newEmptyResult(DecodeNodeRAMBytesAllocatableResult)
  58. }
  59. func (m *NoOpMetricsQuerier) QueryNodeGPUCount(start, end time.Time) *Future[NodeGPUCountResult] {
  60. return newEmptyResult(DecodeNodeGPUCountResult)
  61. }
  62. func (m *NoOpMetricsQuerier) QueryNodeCPUModeTotal(start, end time.Time) *Future[NodeCPUModeTotalResult] {
  63. return newEmptyResult(DecodeNodeCPUModeTotalResult)
  64. }
  65. func (m *NoOpMetricsQuerier) QueryNodeIsSpot(start, end time.Time) *Future[NodeIsSpotResult] {
  66. return newEmptyResult(DecodeNodeIsSpotResult)
  67. }
  68. func (m *NoOpMetricsQuerier) QueryNodeRAMSystemPercent(start, end time.Time) *Future[NodeRAMSystemPercentResult] {
  69. return newEmptyResult(DecodeNodeRAMSystemPercentResult)
  70. }
  71. func (m *NoOpMetricsQuerier) QueryNodeRAMUserPercent(start, end time.Time) *Future[NodeRAMUserPercentResult] {
  72. return newEmptyResult(DecodeNodeRAMUserPercentResult)
  73. }
  74. func (m *NoOpMetricsQuerier) QueryNodeResourceCapacities(start, end time.Time) *Future[ResourceResult] {
  75. return newEmptyResult(DecodeResourceResult)
  76. }
  77. func (m *NoOpMetricsQuerier) QueryNodeResourcesAllocatable(start, end time.Time) *Future[ResourceResult] {
  78. return newEmptyResult(DecodeResourceResult)
  79. }
  80. // Load Balancers
  81. func (m *NoOpMetricsQuerier) QueryLBActiveMinutes(start, end time.Time) *Future[LBActiveMinutesResult] {
  82. return newEmptyResult(DecodeLBActiveMinutesResult)
  83. }
  84. func (m *NoOpMetricsQuerier) QueryLBPricePerHr(start, end time.Time) *Future[LBPricePerHrResult] {
  85. return newEmptyResult(DecodeLBPricePerHrResult)
  86. }
  87. // Cluster Management
  88. func (m *NoOpMetricsQuerier) QueryClusterInfo(start, end time.Time) *Future[ClusterInfoResult] {
  89. return newEmptyResult(DecodeClusterInfoResult)
  90. }
  91. func (m *NoOpMetricsQuerier) QueryClusterUptime(start, end time.Time) *Future[UptimeResult] {
  92. return newEmptyResult(DecodeUptimeResult)
  93. }
  94. func (m *NoOpMetricsQuerier) QueryClusterManagementDuration(start, end time.Time) *Future[ClusterManagementDurationResult] {
  95. return newEmptyResult(DecodeClusterManagementDurationResult)
  96. }
  97. func (m *NoOpMetricsQuerier) QueryClusterManagementPricePerHr(start, end time.Time) *Future[ClusterManagementPricePerHrResult] {
  98. return newEmptyResult(DecodeClusterManagementPricePerHrResult)
  99. }
  100. // Pods
  101. func (m *NoOpMetricsQuerier) QueryPods(start, end time.Time) *Future[PodsResult] {
  102. return newEmptyResult(DecodePodsResult)
  103. }
  104. func (m *NoOpMetricsQuerier) QueryPodsUID(start, end time.Time) *Future[PodsResult] {
  105. return newEmptyResult(DecodePodsResult)
  106. }
  107. func (m *NoOpMetricsQuerier) QueryPodInfo(start, end time.Time) *Future[PodInfoResult] {
  108. return newEmptyResult(DecodePodInfoResult)
  109. }
  110. func (m *NoOpMetricsQuerier) QueryPodUptime(start, end time.Time) *Future[UptimeResult] {
  111. return newEmptyResult(DecodeUptimeResult)
  112. }
  113. func (m *NoOpMetricsQuerier) QueryPodOwners(start, end time.Time) *Future[OwnerResult] {
  114. return newEmptyResult(DecodeOwnerResult)
  115. }
  116. func (m *NoOpMetricsQuerier) QueryPodPVCVolumes(start, end time.Time) *Future[PodPVCVolumeResult] {
  117. return newEmptyResult(DecodePodPVCVolumeResult)
  118. }
  119. func (m *NoOpMetricsQuerier) QueryPodNetworkEgressBytes(start, end time.Time) *Future[PodNetworkBytesResult] {
  120. return newEmptyResult(DecodePodNetworkBytesResult)
  121. }
  122. func (m *NoOpMetricsQuerier) QueryPodNetworkIngressBytes(start, end time.Time) *Future[PodNetworkBytesResult] {
  123. return newEmptyResult(DecodePodNetworkBytesResult)
  124. }
  125. // Container
  126. func (m *NoOpMetricsQuerier) QueryContainerUptime(start, end time.Time) *Future[ContainerUptimeResult] {
  127. return newEmptyResult(DecodeContainerUptimeResult)
  128. }
  129. func (m *NoOpMetricsQuerier) QueryContainerResourceRequests(start, end time.Time) *Future[ContainerResourceResult] {
  130. return newEmptyResult(DecodeContainerResourceResult)
  131. }
  132. func (m *NoOpMetricsQuerier) QueryContainerResourceLimits(start, end time.Time) *Future[ContainerResourceResult] {
  133. return newEmptyResult(DecodeContainerResourceResult)
  134. }
  135. // RAM
  136. func (m *NoOpMetricsQuerier) QueryRAMBytesAllocated(start, end time.Time) *Future[RAMBytesAllocatedResult] {
  137. return newEmptyResult(DecodeRAMBytesAllocatedResult)
  138. }
  139. func (m *NoOpMetricsQuerier) QueryRAMRequests(start, end time.Time) *Future[RAMRequestsResult] {
  140. return newEmptyResult(DecodeRAMRequestsResult)
  141. }
  142. func (m *NoOpMetricsQuerier) QueryRAMLimits(start, end time.Time) *Future[RAMLimitsResult] {
  143. return newEmptyResult(DecodeRAMLimitsResult)
  144. }
  145. func (m *NoOpMetricsQuerier) QueryRAMUsageAvg(start, end time.Time) *Future[RAMUsageAvgResult] {
  146. return newEmptyResult(DecodeRAMUsageAvgResult)
  147. }
  148. func (m *NoOpMetricsQuerier) QueryRAMUsageMax(start, end time.Time) *Future[RAMUsageMaxResult] {
  149. return newEmptyResult(DecodeRAMUsageMaxResult)
  150. }
  151. func (m *NoOpMetricsQuerier) QueryNodeRAMPricePerGiBHr(start, end time.Time) *Future[NodeRAMPricePerGiBHrResult] {
  152. return newEmptyResult(DecodeNodeRAMPricePerGiBHrResult)
  153. }
  154. // CPU
  155. func (m *NoOpMetricsQuerier) QueryCPUCoresAllocated(start, end time.Time) *Future[CPUCoresAllocatedResult] {
  156. return newEmptyResult(DecodeCPUCoresAllocatedResult)
  157. }
  158. func (m *NoOpMetricsQuerier) QueryCPURequests(start, end time.Time) *Future[CPURequestsResult] {
  159. return newEmptyResult(DecodeCPURequestsResult)
  160. }
  161. func (m *NoOpMetricsQuerier) QueryCPULimits(start, end time.Time) *Future[CPULimitsResult] {
  162. return newEmptyResult(DecodeCPULimitsResult)
  163. }
  164. func (m *NoOpMetricsQuerier) QueryCPUUsageAvg(start, end time.Time) *Future[CPUUsageAvgResult] {
  165. return newEmptyResult(DecodeCPUUsageAvgResult)
  166. }
  167. func (m *NoOpMetricsQuerier) QueryCPUUsageMax(start, end time.Time) *Future[CPUUsageMaxResult] {
  168. return newEmptyResult(DecodeCPUUsageMaxResult)
  169. }
  170. func (m *NoOpMetricsQuerier) QueryNodeCPUPricePerHr(start, end time.Time) *Future[NodeCPUPricePerHrResult] {
  171. return newEmptyResult(DecodeNodeCPUPricePerHrResult)
  172. }
  173. // GPU
  174. func (m *NoOpMetricsQuerier) QueryGPUsAllocated(start, end time.Time) *Future[GPUsAllocatedResult] {
  175. return newEmptyResult(DecodeGPUsAllocatedResult)
  176. }
  177. func (m *NoOpMetricsQuerier) QueryGPUsRequested(start, end time.Time) *Future[GPUsRequestedResult] {
  178. return newEmptyResult(DecodeGPUsRequestedResult)
  179. }
  180. func (m *NoOpMetricsQuerier) QueryGPUsUsageAvg(start, end time.Time) *Future[GPUsUsageAvgResult] {
  181. return newEmptyResult(DecodeGPUsUsageAvgResult)
  182. }
  183. func (m *NoOpMetricsQuerier) QueryGPUsUsageMax(start, end time.Time) *Future[GPUsUsageMaxResult] {
  184. return newEmptyResult(DecodeGPUsUsageMaxResult)
  185. }
  186. func (m *NoOpMetricsQuerier) QueryNodeGPUPricePerHr(start, end time.Time) *Future[NodeGPUPricePerHrResult] {
  187. return newEmptyResult(DecodeNodeGPUPricePerHrResult)
  188. }
  189. func (m *NoOpMetricsQuerier) QueryGPUInfo(start, end time.Time) *Future[GPUInfoResult] {
  190. return newEmptyResult(DecodeGPUInfoResult)
  191. }
  192. func (m *NoOpMetricsQuerier) QueryIsGPUShared(start, end time.Time) *Future[IsGPUSharedResult] {
  193. return newEmptyResult(DecodeIsGPUSharedResult)
  194. }
  195. // Device
  196. func (m *NoOpMetricsQuerier) QueryDCGMDeviceInfo(start, end time.Time) *Future[DCGMDeviceInfoResult] {
  197. return newEmptyResult(DecodeDCGMDeviceInfoResult)
  198. }
  199. func (m *NoOpMetricsQuerier) QueryDCGMDeviceUptime(start, end time.Time) *Future[DCGMDeviceUptimeResult] {
  200. return newEmptyResult(DecodeDCGMDeviceUptimeResult)
  201. }
  202. func (m *NoOpMetricsQuerier) QueryDCGMContainerUsageAvg(start, end time.Time) *Future[DCGMDeviceContainerUsageResult] {
  203. return newEmptyResult(DecodeDCGMDeviceContainerUsageResult)
  204. }
  205. func (m *NoOpMetricsQuerier) QueryDCGMContainerUsageMax(start, end time.Time) *Future[DCGMDeviceContainerUsageResult] {
  206. return newEmptyResult(DecodeDCGMDeviceContainerUsageResult)
  207. }
  208. // PVC
  209. func (m *NoOpMetricsQuerier) QueryPodPVCAllocation(start, end time.Time) *Future[PodPVCAllocationResult] {
  210. return newEmptyResult(DecodePodPVCAllocationResult)
  211. }
  212. func (m *NoOpMetricsQuerier) QueryPVCBytesRequested(start, end time.Time) *Future[PVCBytesRequestedResult] {
  213. return newEmptyResult(DecodePVCBytesRequestedResult)
  214. }
  215. func (m *NoOpMetricsQuerier) QueryPVCInfo(start, end time.Time) *Future[PVCInfoResult] {
  216. return newEmptyResult(DecodePVCInfoResult)
  217. }
  218. func (m *NoOpMetricsQuerier) QueryKMPVCInfo(start, end time.Time) *Future[PVCInfoResult] {
  219. return newEmptyResult(DecodePVCInfoResult)
  220. }
  221. func (m *NoOpMetricsQuerier) QueryPVCUptime(start, end time.Time) *Future[UptimeResult] {
  222. return newEmptyResult(DecodeUptimeResult)
  223. }
  224. func (m *NoOpMetricsQuerier) QueryPVCBytesUsedAverage(start, end time.Time) *Future[PVCUIDValueResult] {
  225. return newEmptyResult(DecodePVCUIDValueResult)
  226. }
  227. func (m *NoOpMetricsQuerier) QueryPVCBytesUsedMax(start, end time.Time) *Future[PVCUIDValueResult] {
  228. return newEmptyResult(DecodePVCUIDValueResult)
  229. }
  230. // PV
  231. func (m *NoOpMetricsQuerier) QueryPVBytes(start, end time.Time) *Future[PVBytesResult] {
  232. return newEmptyResult(DecodePVBytesResult)
  233. }
  234. func (m *NoOpMetricsQuerier) QueryPVPricePerGiBHour(start, end time.Time) *Future[PVPricePerGiBHourResult] {
  235. return newEmptyResult(DecodePVPricePerGiBHourResult)
  236. }
  237. func (m *NoOpMetricsQuerier) QueryPVInfo(start, end time.Time) *Future[PVInfoResult] {
  238. return newEmptyResult(DecodePVInfoResult)
  239. }
  240. func (m *NoOpMetricsQuerier) QueryPVActiveMinutes(start, end time.Time) *Future[PVActiveMinutesResult] {
  241. return newEmptyResult(DecodePVActiveMinutesResult)
  242. }
  243. func (m *NoOpMetricsQuerier) QueryPVUsedAverage(start, end time.Time) *Future[PVUsedAvgResult] {
  244. return newEmptyResult(DecodePVUsedAvgResult)
  245. }
  246. func (m *NoOpMetricsQuerier) QueryPVUsedMax(start, end time.Time) *Future[PVUsedMaxResult] {
  247. return newEmptyResult(DecodePVUsedMaxResult)
  248. }
  249. func (m *NoOpMetricsQuerier) QueryKMPVInfo(start, end time.Time) *Future[PVInfoResult] {
  250. return newEmptyResult(DecodePVInfoResult)
  251. }
  252. func (m *NoOpMetricsQuerier) QueryPVUptime(start, end time.Time) *Future[UptimeResult] {
  253. return newEmptyResult(DecodeUptimeResult)
  254. }
  255. // Deployment
  256. func (m *NoOpMetricsQuerier) QueryDeploymentInfo(start, end time.Time) *Future[DeploymentInfoResult] {
  257. return newEmptyResult(DecodeDeploymentInfoResult)
  258. }
  259. func (m *NoOpMetricsQuerier) QueryDeploymentUptime(start, end time.Time) *Future[UptimeResult] {
  260. return newEmptyResult(DecodeUptimeResult)
  261. }
  262. func (m *NoOpMetricsQuerier) QueryDeploymentLabels(start, end time.Time) *Future[LabelsResult] {
  263. return newEmptyResult(DecodeLabelsResult)
  264. }
  265. func (m *NoOpMetricsQuerier) QueryDeploymentAnnotations(start, end time.Time) *Future[AnnotationsResult] {
  266. return newEmptyResult(DecodeAnnotationsResult)
  267. }
  268. func (m *NoOpMetricsQuerier) QueryDeploymentMatchLabels(start, end time.Time) *Future[DeploymentLabelsResult] {
  269. return newEmptyResult(DecodeDeploymentLabelsResult)
  270. }
  271. // StatefulSet
  272. func (m *NoOpMetricsQuerier) QueryStatefulSetInfo(start, end time.Time) *Future[StatefulSetInfoResult] {
  273. return newEmptyResult(DecodeStatefulSetInfoResult)
  274. }
  275. func (m *NoOpMetricsQuerier) QueryStatefulSetUptime(start, end time.Time) *Future[UptimeResult] {
  276. return newEmptyResult(DecodeUptimeResult)
  277. }
  278. func (m *NoOpMetricsQuerier) QueryStatefulSetLabels(start, end time.Time) *Future[LabelsResult] {
  279. return newEmptyResult(DecodeLabelsResult)
  280. }
  281. func (m *NoOpMetricsQuerier) QueryStatefulSetAnnotations(start, end time.Time) *Future[AnnotationsResult] {
  282. return newEmptyResult(DecodeAnnotationsResult)
  283. }
  284. func (m *NoOpMetricsQuerier) QueryStatefulSetMatchLabels(start, end time.Time) *Future[StatefulSetLabelsResult] {
  285. return newEmptyResult(DecodeStatefulSetLabelsResult)
  286. }
  287. // DaemonSet
  288. func (m *NoOpMetricsQuerier) QueryDaemonSetInfo(start, end time.Time) *Future[DaemonSetInfoResult] {
  289. return newEmptyResult(DecodeDaemonSetInfoResult)
  290. }
  291. func (m *NoOpMetricsQuerier) QueryDaemonSetUptime(start, end time.Time) *Future[UptimeResult] {
  292. return newEmptyResult(DecodeUptimeResult)
  293. }
  294. func (m *NoOpMetricsQuerier) QueryDaemonSetLabels(start, end time.Time) *Future[LabelsResult] {
  295. return newEmptyResult(DecodeLabelsResult)
  296. }
  297. func (m *NoOpMetricsQuerier) QueryDaemonSetAnnotations(start, end time.Time) *Future[AnnotationsResult] {
  298. return newEmptyResult(DecodeAnnotationsResult)
  299. }
  300. // Job
  301. func (m *NoOpMetricsQuerier) QueryJobInfo(start, end time.Time) *Future[JobInfoResult] {
  302. return newEmptyResult(DecodeJobInfoResult)
  303. }
  304. func (m *NoOpMetricsQuerier) QueryJobUptime(start, end time.Time) *Future[UptimeResult] {
  305. return newEmptyResult(DecodeUptimeResult)
  306. }
  307. func (m *NoOpMetricsQuerier) QueryJobLabels(start, end time.Time) *Future[LabelsResult] {
  308. return newEmptyResult(DecodeLabelsResult)
  309. }
  310. func (m *NoOpMetricsQuerier) QueryJobAnnotations(start, end time.Time) *Future[AnnotationsResult] {
  311. return newEmptyResult(DecodeAnnotationsResult)
  312. }
  313. // CronJob
  314. func (m *NoOpMetricsQuerier) QueryCronJobInfo(start, end time.Time) *Future[CronJobInfoResult] {
  315. return newEmptyResult(DecodeCronJobInfoResult)
  316. }
  317. func (m *NoOpMetricsQuerier) QueryCronJobUptime(start, end time.Time) *Future[UptimeResult] {
  318. return newEmptyResult(DecodeUptimeResult)
  319. }
  320. func (m *NoOpMetricsQuerier) QueryCronJobLabels(start, end time.Time) *Future[LabelsResult] {
  321. return newEmptyResult(DecodeLabelsResult)
  322. }
  323. func (m *NoOpMetricsQuerier) QueryCronJobAnnotations(start, end time.Time) *Future[AnnotationsResult] {
  324. return newEmptyResult(DecodeAnnotationsResult)
  325. }
  326. // ReplicaSet
  327. func (m *NoOpMetricsQuerier) QueryReplicaSetInfo(start, end time.Time) *Future[ReplicaSetInfoResult] {
  328. return newEmptyResult(DecodeReplicaSetInfoResult)
  329. }
  330. func (m *NoOpMetricsQuerier) QueryReplicaSetUptime(start, end time.Time) *Future[UptimeResult] {
  331. return newEmptyResult(DecodeUptimeResult)
  332. }
  333. func (m *NoOpMetricsQuerier) QueryReplicaSetLabels(start, end time.Time) *Future[LabelsResult] {
  334. return newEmptyResult(DecodeLabelsResult)
  335. }
  336. func (m *NoOpMetricsQuerier) QueryReplicaSetAnnotations(start, end time.Time) *Future[AnnotationsResult] {
  337. return newEmptyResult(DecodeAnnotationsResult)
  338. }
  339. func (m *NoOpMetricsQuerier) QueryReplicaSetOwners(start, end time.Time) *Future[OwnerResult] {
  340. return newEmptyResult(DecodeOwnerResult)
  341. }
  342. // Namespace
  343. func (m *NoOpMetricsQuerier) QueryNamespaceInfo(start, end time.Time) *Future[NamespaceInfoResult] {
  344. return newEmptyResult(DecodeNamespaceInfoResult)
  345. }
  346. func (m *NoOpMetricsQuerier) QueryNamespaceUptime(start, end time.Time) *Future[UptimeResult] {
  347. return newEmptyResult(DecodeUptimeResult)
  348. }
  349. // Service
  350. func (m *NoOpMetricsQuerier) QueryServiceInfo(start, end time.Time) *Future[ServiceInfoResult] {
  351. return newEmptyResult(DecodeServiceInfoResult)
  352. }
  353. func (m *NoOpMetricsQuerier) QueryServiceUptime(start, end time.Time) *Future[UptimeResult] {
  354. return newEmptyResult(DecodeUptimeResult)
  355. }
  356. func (m *NoOpMetricsQuerier) QueryServiceSelectorLabels(start, end time.Time) *Future[ServiceLabelsResult] {
  357. return newEmptyResult(DecodeServiceLabelsResult)
  358. }
  359. // Network Egress
  360. func (m *NoOpMetricsQuerier) QueryNetZoneGiB(start, end time.Time) *Future[NetZoneGiBResult] {
  361. return newEmptyResult(DecodeNetZoneGiBResult)
  362. }
  363. func (m *NoOpMetricsQuerier) QueryNetZonePricePerGiB(start, end time.Time) *Future[NetZonePricePerGiBResult] {
  364. return newEmptyResult(DecodeNetZonePricePerGiBResult)
  365. }
  366. func (m *NoOpMetricsQuerier) QueryNetRegionGiB(start, end time.Time) *Future[NetRegionGiBResult] {
  367. return newEmptyResult(DecodeNetRegionGiBResult)
  368. }
  369. func (m *NoOpMetricsQuerier) QueryNetRegionPricePerGiB(start, end time.Time) *Future[NetRegionPricePerGiBResult] {
  370. return newEmptyResult(DecodeNetRegionPricePerGiBResult)
  371. }
  372. func (m *NoOpMetricsQuerier) QueryNetInternetGiB(start, end time.Time) *Future[NetInternetGiBResult] {
  373. return newEmptyResult(DecodeNetInternetGiBResult)
  374. }
  375. func (m *NoOpMetricsQuerier) QueryNetInternetPricePerGiB(start, end time.Time) *Future[NetInternetPricePerGiBResult] {
  376. return newEmptyResult(DecodeNetInternetPricePerGiBResult)
  377. }
  378. func (m *NoOpMetricsQuerier) QueryNetInternetServiceGiB(start, end time.Time) *Future[NetInternetServiceGiBResult] {
  379. return newEmptyResult(DecodeNetInternetServiceGiBResult)
  380. }
  381. func (m *NoOpMetricsQuerier) QueryNetNatGatewayPricePerGiB(start, end time.Time) *Future[NetNatGatewayPricePerGiBResult] {
  382. return newEmptyResult(DecodeNetNatGatewayPricePerGiBResult)
  383. }
  384. func (m *NoOpMetricsQuerier) QueryNetNatGatewayGiB(start, end time.Time) *Future[NetNatGatewayGiBResult] {
  385. return newEmptyResult(DecodeNetNatGatewayGiBResult)
  386. }
  387. func (m *NoOpMetricsQuerier) QueryNetTransferBytes(start, end time.Time) *Future[NetTransferBytesResult] {
  388. return newEmptyResult(DecodeNetTransferBytesResult)
  389. }
  390. // Network Ingress
  391. func (m *NoOpMetricsQuerier) QueryNetZoneIngressGiB(start, end time.Time) *Future[NetZoneIngressGiBResult] {
  392. return newEmptyResult(DecodeNetZoneIngressGiBResult)
  393. }
  394. func (m *NoOpMetricsQuerier) QueryNetRegionIngressGiB(start, end time.Time) *Future[NetRegionIngressGiBResult] {
  395. return newEmptyResult(DecodeNetRegionIngressGiBResult)
  396. }
  397. func (m *NoOpMetricsQuerier) QueryNetInternetIngressGiB(start, end time.Time) *Future[NetInternetIngressGiBResult] {
  398. return newEmptyResult(DecodeNetInternetIngressGiBResult)
  399. }
  400. func (m *NoOpMetricsQuerier) QueryNetInternetServiceIngressGiB(start, end time.Time) *Future[NetInternetServiceIngressGiBResult] {
  401. return newEmptyResult(DecodeNetInternetServiceIngressGiBResult)
  402. }
  403. func (m *NoOpMetricsQuerier) QueryNetNatGatewayIngressPricePerGiB(start, end time.Time) *Future[NetNatGatewayPricePerGiBResult] {
  404. return newEmptyResult(DecodeNetNatGatewayPricePerGiBResult)
  405. }
  406. func (m *NoOpMetricsQuerier) QueryNetNatGatewayIngressGiB(start, end time.Time) *Future[NetNatGatewayIngressGiBResult] {
  407. return newEmptyResult(DecodeNetNatGatewayIngressGiBResult)
  408. }
  409. func (m *NoOpMetricsQuerier) QueryNetReceiveBytes(start, end time.Time) *Future[NetReceiveBytesResult] {
  410. return newEmptyResult(DecodeNetReceiveBytesResult)
  411. }
  412. // Annotations
  413. func (m *NoOpMetricsQuerier) QueryNamespaceAnnotations(start, end time.Time) *Future[NamespaceAnnotationsResult] {
  414. return newEmptyResult(DecodeNamespaceAnnotationsResult)
  415. }
  416. func (m *NoOpMetricsQuerier) QueryPodAnnotations(start, end time.Time) *Future[PodAnnotationsResult] {
  417. return newEmptyResult(DecodePodAnnotationsResult)
  418. }
  419. // Labels
  420. func (m *NoOpMetricsQuerier) QueryNodeLabels(start, end time.Time) *Future[NodeLabelsResult] {
  421. return newEmptyResult(DecodeNodeLabelsResult)
  422. }
  423. func (m *NoOpMetricsQuerier) QueryNamespaceLabels(start, end time.Time) *Future[NamespaceLabelsResult] {
  424. return newEmptyResult(DecodeNamespaceLabelsResult)
  425. }
  426. func (m *NoOpMetricsQuerier) QueryPodLabels(start, end time.Time) *Future[PodLabelsResult] {
  427. return newEmptyResult(DecodePodLabelsResult)
  428. }
  429. func (m *NoOpMetricsQuerier) QueryPodsWithDaemonSetOwner(start, end time.Time) *Future[PodsWithDaemonSetOwnerResult] {
  430. return newEmptyResult(DecodePodsWithDaemonSetOwnerResult)
  431. }
  432. func (m *NoOpMetricsQuerier) QueryPodsWithJobOwner(start, end time.Time) *Future[PodsWithJobOwnerResult] {
  433. return newEmptyResult(DecodePodsWithJobOwnerResult)
  434. }
  435. // ReplicaSet -> Controller mapping
  436. func (m *NoOpMetricsQuerier) QueryPodsWithReplicaSetOwner(start, end time.Time) *Future[PodsWithReplicaSetOwnerResult] {
  437. return newEmptyResult(DecodePodsWithReplicaSetOwnerResult)
  438. }
  439. func (m *NoOpMetricsQuerier) QueryReplicaSetsWithoutOwners(start, end time.Time) *Future[ReplicaSetsWithoutOwnersResult] {
  440. return newEmptyResult(DecodeReplicaSetsWithoutOwnersResult)
  441. }
  442. func (m *NoOpMetricsQuerier) QueryReplicaSetsWithRollout(start, end time.Time) *Future[ReplicaSetsWithRolloutResult] {
  443. return newEmptyResult(DecodeReplicaSetsWithRolloutResult)
  444. }
  445. // ResourceQuotas
  446. func (m *NoOpMetricsQuerier) QueryResourceQuotaInfo(start, end time.Time) *Future[ResourceQuotaInfoResult] {
  447. return newEmptyResult(DecodeResourceQuotaInfoResult)
  448. }
  449. func (m *NoOpMetricsQuerier) QueryResourceQuotaUptime(start, end time.Time) *Future[UptimeResult] {
  450. return newEmptyResult(DecodeUptimeResult)
  451. }
  452. func (m *NoOpMetricsQuerier) QueryResourceQuotaSpecCPURequestAverage(start, end time.Time) *Future[ResourceResult] {
  453. return newEmptyResult(DecodeResourceResult)
  454. }
  455. func (m *NoOpMetricsQuerier) QueryResourceQuotaSpecCPURequestMax(start, end time.Time) *Future[ResourceResult] {
  456. return newEmptyResult(DecodeResourceResult)
  457. }
  458. func (m *NoOpMetricsQuerier) QueryResourceQuotaSpecRAMRequestAverage(start, end time.Time) *Future[ResourceResult] {
  459. return newEmptyResult(DecodeResourceResult)
  460. }
  461. func (m *NoOpMetricsQuerier) QueryResourceQuotaSpecRAMRequestMax(start, end time.Time) *Future[ResourceResult] {
  462. return newEmptyResult(DecodeResourceResult)
  463. }
  464. func (m *NoOpMetricsQuerier) QueryResourceQuotaSpecCPULimitAverage(start, end time.Time) *Future[ResourceResult] {
  465. return newEmptyResult(DecodeResourceResult)
  466. }
  467. func (m *NoOpMetricsQuerier) QueryResourceQuotaSpecCPULimitMax(start, end time.Time) *Future[ResourceResult] {
  468. return newEmptyResult(DecodeResourceResult)
  469. }
  470. func (m *NoOpMetricsQuerier) QueryResourceQuotaSpecRAMLimitAverage(start, end time.Time) *Future[ResourceResult] {
  471. return newEmptyResult(DecodeResourceResult)
  472. }
  473. func (m *NoOpMetricsQuerier) QueryResourceQuotaSpecRAMLimitMax(start, end time.Time) *Future[ResourceResult] {
  474. return newEmptyResult(DecodeResourceResult)
  475. }
  476. func (m *NoOpMetricsQuerier) QueryResourceQuotaStatusUsedCPURequestAverage(start, end time.Time) *Future[ResourceResult] {
  477. return newEmptyResult(DecodeResourceResult)
  478. }
  479. func (m *NoOpMetricsQuerier) QueryResourceQuotaStatusUsedCPURequestMax(start, end time.Time) *Future[ResourceResult] {
  480. return newEmptyResult(DecodeResourceResult)
  481. }
  482. func (m *NoOpMetricsQuerier) QueryResourceQuotaStatusUsedRAMRequestAverage(start, end time.Time) *Future[ResourceResult] {
  483. return newEmptyResult(DecodeResourceResult)
  484. }
  485. func (m *NoOpMetricsQuerier) QueryResourceQuotaStatusUsedRAMRequestMax(start, end time.Time) *Future[ResourceResult] {
  486. return newEmptyResult(DecodeResourceResult)
  487. }
  488. func (m *NoOpMetricsQuerier) QueryResourceQuotaStatusUsedCPULimitAverage(start, end time.Time) *Future[ResourceResult] {
  489. return newEmptyResult(DecodeResourceResult)
  490. }
  491. func (m *NoOpMetricsQuerier) QueryResourceQuotaStatusUsedCPULimitMax(start, end time.Time) *Future[ResourceResult] {
  492. return newEmptyResult(DecodeResourceResult)
  493. }
  494. func (m *NoOpMetricsQuerier) QueryResourceQuotaStatusUsedRAMLimitAverage(start, end time.Time) *Future[ResourceResult] {
  495. return newEmptyResult(DecodeResourceResult)
  496. }
  497. func (m *NoOpMetricsQuerier) QueryResourceQuotaStatusUsedRAMLimitMax(start, end time.Time) *Future[ResourceResult] {
  498. return newEmptyResult(DecodeResourceResult)
  499. }
  500. // Data Coverage Query
  501. func (m *NoOpMetricsQuerier) QueryDataCoverage(_ int) (time.Time, time.Time, error) {
  502. return time.Time{}, time.Time{}, nil
  503. }
  504. // Extra methods not in MetricsQuerier interface
  505. func (m *NoOpMetricsQuerier) QueryLocalStorageCost(start, end time.Time) *Future[LocalStorageCostResult] {
  506. return newEmptyResult(DecodeLocalStorageCostResult)
  507. }
  508. func (m *NoOpMetricsQuerier) QueryLocalStorageUsedCost(start, end time.Time) *Future[LocalStorageUsedCostResult] {
  509. return newEmptyResult(DecodeLocalStorageUsedCostResult)
  510. }
  511. func (m *NoOpMetricsQuerier) QueryServiceLabels(start, end time.Time) *Future[ServiceLabelsResult] {
  512. return newEmptyResult(DecodeServiceLabelsResult)
  513. }
  514. func newEmptyResult[T any](decoder ResultDecoder[T]) *Future[T] {
  515. ch := make(QueryResultsChan)
  516. go func() {
  517. results := NewQueryResults("")
  518. ch <- results
  519. }()
  520. return NewFuture(decoder, ch)
  521. }