Query runs an instant query.
(query string, ts time.Time)
| 397 | |
| 398 | // Query runs an instant query. |
| 399 | func (c *Client) Query(query string, ts time.Time) (model.Value, error) { |
| 400 | ctx := context.Background() |
| 401 | retries := backoff.New(ctx, backoff.Config{ |
| 402 | MinBackoff: 1 * time.Second, |
| 403 | MaxBackoff: 3 * time.Second, |
| 404 | MaxRetries: 5, |
| 405 | }) |
| 406 | var ( |
| 407 | value model.Value |
| 408 | err error |
| 409 | ) |
| 410 | for retries.Ongoing() { |
| 411 | value, _, err = c.querierClient.Query(context.Background(), query, ts) |
| 412 | if err == nil { |
| 413 | break |
| 414 | } |
| 415 | if !strings.Contains(err.Error(), "EOF") { |
| 416 | break |
| 417 | } |
| 418 | retries.Wait() |
| 419 | } |
| 420 | return value, err |
| 421 | } |
| 422 | |
| 423 | // Metadata runs a metadata query |
| 424 | func (c *Client) Metadata(name, limit string) (map[string][]promv1.Metadata, error) { |