code: func Report(req request.Request, zone, rcode string, size int, start time.Time) {
  	// Proto and Family.
  	net := req.Proto()
  	fam := "1"
  	if req.Family() == 2 {
  		fam = "2"
  	}
  
  	typ := req.QType()
  
  	RequestCount.WithLabelValues(zone, net, fam).Inc()
  	RequestDuration.WithLabelValues(zone).Observe(float64(time.Since(start) / time.Millisecond))
  
  	if req.Do() {
  		RequestDo.WithLabelValues(zone).Inc()
  	}
  
  	if _, known := monitorType[typ]; known {
  		RequestType.WithLabelValues(zone, dns.Type(typ).String()).Inc()
  	} else {
  		RequestType.WithLabelValues(zone, other).Inc()
  	}
  
  	ResponseSize.WithLabelValues(zone, net).Observe(float64(size))
  	RequestSize.WithLabelValues(zone, net).Observe(float64(req.Len()))
  
  	ResponseRcode.WithLabelValues(zone, rcode).Inc()
  }
docs: // Report reports the metrics data associcated with request.