opencost.go 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. package scrape
  2. import (
  3. "github.com/opencost/opencost/modules/collector-source/pkg/metric"
  4. "github.com/opencost/opencost/modules/collector-source/pkg/scrape/target"
  5. )
  6. func newOpenCostTargetProvider() target.TargetProvider {
  7. // localhost is used here because we are hitting an endpoint of this container
  8. return target.NewDefaultTargetProvider(target.NewUrlTarget("http://localhost:9003/metrics"))
  9. }
  10. func newOpenCostScraper() Scraper {
  11. return newOpencostTargetScraper(newOpenCostTargetProvider())
  12. }
  13. func newOpencostTargetScraper(provider target.TargetProvider) *TargetScraper {
  14. return newTargetScrapper(
  15. provider,
  16. []string{
  17. metric.KubecostClusterManagementCost,
  18. metric.KubecostNetworkZoneEgressCost,
  19. metric.KubecostNetworkRegionEgressCost,
  20. metric.KubecostNetworkInternetEgressCost,
  21. metric.PVHourlyCost,
  22. metric.KubecostLoadBalancerCost,
  23. metric.NodeTotalHourlyCost,
  24. metric.NodeCPUHourlyCost,
  25. metric.NodeRAMHourlyCost,
  26. metric.NodeGPUHourlyCost,
  27. metric.NodeGPUCount,
  28. metric.KubecostNodeIsSpot,
  29. metric.ContainerCPUAllocation,
  30. metric.ContainerMemoryAllocationBytes,
  31. metric.ContainerGPUAllocation,
  32. metric.PodPVCAllocation,
  33. },
  34. true)
  35. }