github.com/yankunsam/loki/v2@v2.6.3-0.20220817130409-389df5235c27/pkg/logcli/labelquery/labels.go (about) 1 package labelquery 2 3 import ( 4 "fmt" 5 "log" 6 "time" 7 8 "github.com/grafana/loki/pkg/logcli/client" 9 "github.com/grafana/loki/pkg/loghttp" 10 ) 11 12 // LabelQuery contains all necessary fields to execute label queries and print out the results 13 type LabelQuery struct { 14 LabelName string 15 Quiet bool 16 Start time.Time 17 End time.Time 18 } 19 20 // DoLabels prints out label results 21 func (q *LabelQuery) DoLabels(c client.Client) { 22 values := q.ListLabels(c) 23 24 for _, value := range values { 25 fmt.Println(value) 26 } 27 } 28 29 // ListLabels returns an array of label strings 30 func (q *LabelQuery) ListLabels(c client.Client) []string { 31 var labelResponse *loghttp.LabelResponse 32 var err error 33 if len(q.LabelName) > 0 { 34 labelResponse, err = c.ListLabelValues(q.LabelName, q.Quiet, q.Start, q.End) 35 } else { 36 labelResponse, err = c.ListLabelNames(q.Quiet, q.Start, q.End) 37 } 38 if err != nil { 39 log.Fatalf("Error doing request: %+v", err) 40 } 41 return labelResponse.Data 42 }