code: func GetSampledEntries(ctx context.Context, conf Config, sampleRate uint) ([]chan string, error) {
  	unsampledLinesChans, err := GetEntries(ctx, conf)
  	if err != nil {
  		return nil, err
  	}
  	if sampleRate == 1 {
  		return unsampledLinesChans, nil
  	}
  
  	sampledLinesChans := make([]chan string, 0, len(unsampledLinesChans))
  
  	for _, lines := range unsampledLinesChans {
  		sampledLines := make(chan string)
  		go func(pLines chan string) {
  			defer close(sampledLines)
  			for line := range pLines {
  				if shouldDrop(sampleRate) {
  					logrus.WithFields(logrus.Fields{
  						"line":       line,
  						"samplerate": sampleRate,
  					}).Debug("Sampler says skip this line")
  				} else {
  					sampledLines <- line
  				}
  			}
  		}(lines)
  		sampledLinesChans = append(sampledLinesChans, sampledLines)
  	}
  	return sampledLinesChans, nil
  }
docs: // GetSampledEntries wraps GetEntries and returns a list of channels that
  // provide sampled entries