code: func (s *StatusReport) SendMetrics(c context.Context) error {
  	c, _ = context.WithTimeout(c, 10*time.Second)
  	rep := s.Report()
  
  	metricVersion.Set(c, rep.TokendVersion)
  	if rep.ServiceVersion != "" {
  		metricServiceVersion.Set(c, rep.ServiceVersion)
  	}
  	if rep.TokenExpiryTS != 0 {
  		metricTokenExpiry.Set(c, rep.TokenExpiryTS*1000000)
  	}
  	if rep.TokenLastUpdateTS != 0 {
  		metricTokenLastUpdate.Set(c, rep.TokenLastUpdateTS*1000000)
  	}
  	if rep.TokenNextUpdateTS != 0 {
  		metricTokenNextUpdate.Set(c, rep.TokenNextUpdateTS*1000000)
  	}
  	metricUpdateOutcome.Set(c, rep.UpdateOutcome)
  	metricUpdateReason.Set(c, rep.UpdateReason)
  	metricTotalDuration.Set(c, rep.TotalDuration)
  	metricRPCDuration.Set(c, rep.RPCDuration)
  
  	return tsmon.Flush(c)
  }
docs: // SendMetrics is called at the end of the token update process.
  //
  // It dumps all relevant metrics to tsmon.