github.com/grafana/pyroscope@v1.18.0/pkg/segmentwriter/client/distributor/placement/adaptiveplacement/adaptive_placementpb/adaptive_placement.proto (about)

     1  syntax = "proto3";
     2  
     3  package adaptive_placement;
     4  
     5  // DistributionStats includes the data the Placement is built based on.
     6  message DistributionStats {
     7    repeated TenantStats tenants = 1;
     8    repeated DatasetStats datasets = 2;
     9    repeated ShardStats shards = 3;
    10    int64 created_at = 4;
    11  }
    12  
    13  message TenantStats {
    14    string tenant_id = 1;
    15  }
    16  
    17  message DatasetStats {
    18    uint32 tenant = 1; // Reference to TenantStats.
    19    string name = 2;
    20    // Shard value is a reference to ShardStats.
    21    repeated uint32 shards = 3;
    22    // Data rate in bytes per second for each shard.
    23    // The dataset size is measured after being encoded
    24    // in the block wire format.
    25    repeated uint64 usage = 4;
    26    // Standard deviation of the data rate across shards
    27    // aggregated within a sliding time window.
    28    uint64 std_dev = 5;
    29  }
    30  
    31  message ShardStats {
    32    // Shard ID.
    33    uint32 id = 1;
    34    // Owner represents the node that hosted the shard.
    35    // There may be multiple entries for a single shard
    36    // if it was relocated across different nodes.
    37    string owner = 2;
    38  }
    39  
    40  enum LoadBalancing {
    41    LOAD_BALANCING_UNSPECIFIED = 0;
    42    LOAD_BALANCING_FINGERPRINT = 1;
    43    LOAD_BALANCING_ROUND_ROBIN = 2;
    44  }
    45  
    46  message PlacementRules {
    47    repeated TenantPlacement tenants = 1;
    48    repeated DatasetPlacement datasets = 2;
    49    int64 created_at = 3;
    50  }
    51  
    52  message TenantPlacement {
    53    string tenant_id = 1;
    54  }
    55  
    56  message DatasetPlacement {
    57    uint32 tenant = 1;
    58    string name = 2;
    59    uint64 tenant_shard_limit = 3;
    60    uint64 dataset_shard_limit = 4;
    61    LoadBalancing load_balancing = 5;
    62  }