@@ -24,14 +24,23 @@ var (
2424)
2525
2626// Init will initialize the metric descriptors
27- func (j * Job ) Init (logger log.Logger ) error {
27+ func (j * Job ) Init (logger log.Logger , queries map [ string ] string ) error {
2828 j .log = log .With (logger , "job" , j .Name )
2929 // register each query as an metric
3030 for _ , q := range j .Queries {
3131 if q == nil {
3232 level .Warn (j .log ).Log ("msg" , "Skipping invalid query" )
3333 continue
3434 }
35+ q .log = log .With (j .log , "query" , q .Name )
36+ if q .Query == "" && q .QueryRef != "" {
37+ if qry , found := queries [q .QueryRef ]; found {
38+ q .Query = qry
39+ }
40+ }
41+ if q .Query == "" {
42+ level .Warn (q .log ).Log ("msg" , "Skipping empty query" )
43+ }
3544 if q .metrics == nil {
3645 // we have no way of knowing how many metrics will be returned by the
3746 // queries, so we just assume that each query returns at least one metric.
@@ -41,7 +50,6 @@ func (j *Job) Init(logger log.Logger) error {
4150 // try to satisfy prometheus naming restrictions
4251 name := MetricNameRE .ReplaceAllString ("sql_" + q .Name , "" )
4352 help := q .Help
44- q .log = log .With (j .log , "query" , q .Name )
4553 // prepare a new metrics descriptor
4654 //
4755 // the tricky part here is that the *order* of labels has to match the
0 commit comments