github.com/yankunsam/loki/v2@v2.6.3-0.20220817130409-389df5235c27/clients/cmd/fluent-bit/buffer.go (about)

     1  package main
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/go-kit/log"
     7  
     8  	"github.com/grafana/loki/clients/pkg/promtail/client"
     9  )
    10  
    11  type bufferConfig struct {
    12  	buffer     bool
    13  	bufferType string
    14  	dqueConfig dqueConfig
    15  }
    16  
    17  var defaultBufferConfig = bufferConfig{
    18  	buffer:     false,
    19  	bufferType: "dque",
    20  	dqueConfig: defaultDqueConfig,
    21  }
    22  
    23  // NewBuffer makes a new buffered Client.
    24  func NewBuffer(cfg *config, logger log.Logger, metrics *client.Metrics, streamLagLabels []string) (client.Client, error) {
    25  	switch cfg.bufferConfig.bufferType {
    26  	case "dque":
    27  		return newDque(cfg, logger, metrics, streamLagLabels)
    28  	default:
    29  		return nil, fmt.Errorf("failed to parse bufferType: %s", cfg.bufferConfig.bufferType)
    30  	}
    31  }