code: func NewExporter(service InfoService, blockSampleSize int, logger *logging.Logger) (*Exporter, error) {
  	chainStatus, err := service.Status()
  	if err != nil {
  		return nil, fmt.Errorf("NewExporter(): %v", err)
  	}
  	return &Exporter{
  		datum:                        &Datum{},
  		service:                      service,
  		chainID:                      chainStatus.NodeInfo.Network,
  		validatorMoniker:             chainStatus.NodeInfo.Moniker,
  		blockSampleSize:              uint64(blockSampleSize),
  		txPerBlockHistogramBuilder:   makeHistogramBuilder(identity),
  		timePerBlockHistogramBuilder: makeHistogramBuilder(significantFiguresRounder(significantFiguresForSeconds)),
  		logger:                       logger.With(structure.ComponentKey, "Metrics_Exporter"),
  	}, nil
  }
docs: // Exporter uses the InfoService to provide pre-aggregated metrics of various types that are then passed to prometheus
  // as Const metrics rather than being accumulated by individual operations throughout the rest of the Burrow code.