github.com/grafana/pyroscope@v1.18.0/pkg/test/integration/cluster/cluster_v1.go (about)

     1  package cluster
     2  
     3  import (
     4  	"context"
     5  	"fmt"
     6  	"os"
     7  	"path/filepath"
     8  )
     9  
    10  func WithV1() ClusterOption {
    11  	return func(c *Cluster) {
    12  		c.v2 = false
    13  		c.expectedComponents = []string{
    14  			"distributor",
    15  			"distributor",
    16  			"querier",
    17  			"querier",
    18  			"ingester",
    19  			"ingester",
    20  			"ingester",
    21  			"store-gateway",
    22  			"store-gateway",
    23  			"store-gateway",
    24  		}
    25  	}
    26  }
    27  
    28  func WithSymbolizer(debuginfodURL string) ClusterOption {
    29  	return func(c *Cluster) {
    30  		c.debuginfodURL = debuginfodURL
    31  	}
    32  }
    33  
    34  func (c *Cluster) v1ReadyCheckComponent(ctx context.Context, t *Component) (bool, error) {
    35  	switch t.Target {
    36  	case "querier":
    37  		return true, t.querierReadyCheck(ctx, len(c.perTarget["ingester"]), len(c.perTarget["store-gateway"]))
    38  	case "distributor":
    39  		return true, t.distributorReadyCheck(ctx, len(c.perTarget["ingester"]), len(c.perTarget["distributor"]), 0)
    40  	}
    41  	return false, nil
    42  }
    43  
    44  func (c *Cluster) v1Prepare(_ context.Context, memberlistJoin []string) error {
    45  	for _, comp := range c.Components {
    46  		dataDir := c.dataDir(comp)
    47  		compactorDir := filepath.Join(dataDir, "..", "data-compactor")
    48  		syncDir := filepath.Join(dataDir, "..", "pyroscope-sync")
    49  
    50  		for _, dir := range []string{compactorDir, syncDir} {
    51  			if err := os.MkdirAll(dir, 0o755); err != nil {
    52  				return err
    53  			}
    54  		}
    55  
    56  		comp.flags = c.commonFlags(comp)
    57  		comp.flags = append(comp.flags,
    58  			fmt.Sprintf("-blocks-storage.bucket-store.sync-dir=%s", syncDir),
    59  			fmt.Sprintf("-compactor.data-dir=%s", compactorDir),
    60  			fmt.Sprintf("-pyroscopedb.data-path=%s", dataDir),
    61  			"-distributor.replication-factor=3",
    62  			"-store-gateway.sharding-ring.replication-factor=3",
    63  			"-query-scheduler.ring.instance-id="+comp.nodeName(),
    64  			"-query-scheduler.ring.instance-addr="+listenAddr,
    65  			"-store-gateway.sharding-ring.instance-id="+comp.nodeName(),
    66  			"-store-gateway.sharding-ring.instance-addr="+listenAddr,
    67  			"-compactor.ring.instance-addr="+listenAddr,
    68  			"-compactor.ring.instance-id="+comp.nodeName(),
    69  			"-ingester.lifecycler.addr="+listenAddr,
    70  			"-ingester.lifecycler.ID="+comp.nodeName(),
    71  			"-ingester.min-ready-duration=0",
    72  		)
    73  
    74  		// handle memberlist join
    75  		for _, m := range memberlistJoin {
    76  			comp.flags = append(comp.flags, fmt.Sprintf("-memberlist.join=%s", m))
    77  		}
    78  	}
    79  	return nil
    80  }