func GetPrometheusScrapeConfig()

in pkg/aws/cloudmap.go [42:64]


func GetPrometheusScrapeConfig(selectedNamespaces []string) *string {
	client := &CloudMapClient{service: servicediscovery.New(sharedSession)}

	sdNamespaces, _ := client.getNamespaces()
	sdServices, _ := client.getServices(selectedNamespaces, sdNamespaces)
	scrapeConfigurations := make([]*InstanceScrapeConfig, 0)
	for _, service := range sdServices {
		serviceTags := client.getServiceTags(service)
		sdInstances, _ := client.getInstances(service)
		for _, instance := range sdInstances {
			scrapeConfig, _ := client.getInstanceScrapeConfiguration(instance, serviceTags)
			scrapeConfigurations = append(scrapeConfigurations, scrapeConfig)
		}
	}

	jsonBytes, err := json.MarshalIndent(scrapeConfigurations, "", "   ")
	if err != nil {
		log.Println(err)
		return aws.String("")
	}
	jsonString := string(jsonBytes)
	return &jsonString
}