• Miek Gieben's avatar
    Metrics (#1579) · 4df416ca
    Miek Gieben authored
    * plugin/metrics: set server address in context
    
    Allow cross server block metrics to co-exist; for this we should label
    each metric with the server label. Put this information in the context
    and provide a helper function to get it out.
    
    Abstracting with entirely away with difficult as the release client_go
    (0.8.0) doesn't have the CurryWith functions yet. So current use is like
    so:
    
    define metric, with server label:
    
    	RcodeCount = prometheus.NewCounterVec(prometheus.CounterOpts{
    		Namespace: plugin.Namespace,
    		Subsystem: "forward",
    		Name:      "response_rcode_count_total",
    		Help:      "Counter of requests made per upstream.",
    	}, []string{"server", "rcode", "to"})
    
    And report ith with the helper function metrics.WithServer:
    
    	RcodeCount.WithLabelValues(metrics.WithServer(ctx), rc, p.addr).Add(1)
    4df416ca
context.go 677 Bytes