func()

in local-container-endpoints/handlers/metadata.go [44:66]


func (service *MetadataService) containerStatsResponse(w http.ResponseWriter, identifier string, callerIP string) error {
	timeout, _ := time.ParseDuration(config.HTTPTimeoutDuration)
	ctx, cancel := context.WithTimeout(context.Background(), timeout)
	defer cancel()

	containers, err := service.dockerClient.ContainerList(ctx)
	if err != nil {
		return errors.Wrap(err, "failed to list running containers")
	}

	container, err := findContainer(containers, identifier, callerIP)
	if err != nil {
		return err
	}

	stats, err := service.dockerClient.ContainerStats(ctx, container.ID)
	if err != nil {
		return errors.Wrap(err, "failed to get container stats")
	}

	writeJSONResponse(w, stats)
	return nil
}