func QuerySeries(url *url.URL, matchers []string, start, end string, p printer) int {
	config := api.Config{
		Address: url.String(),
	}

	// Create new client.
	c, err := api.NewClient(config)
	if err != nil {
		fmt.Fprintln(os.Stderr, "error creating API client:", err)
		return 1
	}

	// TODO: clean up timestamps
	var (
		minTime = time.Now().Add(-9999 * time.Hour)
		maxTime = time.Now().Add(9999 * time.Hour)
	)

	var stime, etime time.Time

	if start == "" {
		stime = minTime
	} else {
		stime, err = parseTime(start)
		if err != nil {
			fmt.Fprintln(os.Stderr, "error parsing start time:", err)
		}
	}

	if end == "" {
		etime = maxTime
	} else {
		etime, err = parseTime(end)
		if err != nil {
			fmt.Fprintln(os.Stderr, "error parsing end time:", err)
		}
	}

	// Run query against client.
	api := v1.NewAPI(c)
	ctx, cancel := context.WithTimeout(context.Background(), 2*time.Minute)
	val, err := api.Series(ctx, matchers, stime, etime)
	cancel()

	if err != nil {
		fmt.Fprintln(os.Stderr, "query error:", err)
		return 1
	}

	p.printSeries(val)
	return 0
}
func QuerySeries(url *url.URL, matchers []string, start, end string, p printer) int {
	config := api.Config{
		Address: url.String(),
	}

	
	c, err := api.NewClient(config)
	if err != nil {
		fmt.Fprintln(os.Stderr, "error creating API client:", err)
		return 1
	}

	
	var (
		minTime = time.Now().Add(-9999 * time.Hour)
		maxTime = time.Now().Add(9999 * time.Hour)
	)

	var stime, etime time.Time

	if start == "" {
		stime = minTime
	} else {
		stime, err = parseTime(start)
		if err != nil {
			fmt.Fprintln(os.Stderr, "error parsing start time:", err)
		}
	}

	if end == "" {
		etime = maxTime
	} else {
		etime, err = parseTime(end)
		if err != nil {
			fmt.Fprintln(os.Stderr, "error parsing end time:", err)
		}
	}

	
	api := v1.NewAPI(c)
	ctx, cancel := context.WithTimeout(context.Background(), 2*time.Minute)
	val, err := api.Series(ctx, matchers, stime, etime)
	cancel()

	if err != nil {
		fmt.Fprintln(os.Stderr, "query error:", err)
		return 1
	}

	p.printSeries(val)
	return 0
}
func QuerySeries ( url * url . URL , matchers [ ] string , start , end string , p printer ) int { config := api . Config { Address : url . String ( ) , } // Create new client. c , err := api . NewClient ( config ) if err != nil { fmt . Fprintln ( os . Stderr , " " , err ) return 1 } // TODO: clean up timestamps var ( minTime = time . Now ( ) . Add ( - 9999 * time . Hour ) maxTime = time . Now ( ) . Add ( 9999 * time . Hour ) ) var stime , etime time . Time if start == " " { stime = minTime } else { stime , err = parseTime ( start ) if err != nil { fmt . Fprintln ( os . Stderr , " " , err ) } } if end == " " { etime = maxTime } else { etime , err = parseTime ( end ) if err != nil { fmt . Fprintln ( os . Stderr , " " , err ) } } // Run query against client. api := v1 . NewAPI ( c ) ctx , cancel := context . WithTimeout ( context . Background ( ) , 2 * time . Minute ) val , err := api . Series ( ctx , matchers , stime , etime ) cancel ( ) if err != nil { fmt . Fprintln ( os . Stderr , " " , err ) return 1 } p . printSeries ( val ) return 0 }
// QuerySeries queries for a series against a Prometheus server.
QuerySeries queries for a series against a Prometheus server .