github.com/grafana/pyroscope@v1.18.0/docs/internal/V2-MIGRATION.md (about)

     1  # Migration v1 to v2
     2  
     3  ## Single binary
     4  
     5  ### First deploy v1
     6  
     7  - Note: Needs persistence enabled otherwise data will be lost after restart
     8  
     9  ```
    10  helm upgrade \
    11    pyroscope \
    12    ./operations/pyroscope/helm/pyroscope \
    13    --install \
    14    --set architecture.storage.v1=true \
    15    --set architecture.storage.v2=false \
    16    --set pyroscope.persistence.enabled=true
    17  ```
    18  
    19  ### Step: 2: Deploy v2 and enable dual ingest
    20  
    21  - Note: The python command will switch to the v2 read path for data ingested 10 minutes after it is run.
    22  
    23  ```
    24  helm upgrade \
    25    pyroscope \
    26    ./operations/pyroscope/helm/pyroscope \
    27    --set architecture.storage.v1=true \
    28    --set architecture.storage.v2=true \
    29    --set pyroscope.persistence.enabled=true \
    30    --set architecture.storage.migration.queryBackendFrom=$(python3 -c "import datetime; print((datetime.datetime.now(datetime.UTC)+ datetime.timedelta(minutes = 10)).strftime('%Y-%m-%dT%H:%M:%SZ'))")
    31  ```
    32  
    33  ### Step 3: Remove v1 components
    34  
    35  Once data before Step 2 is no longer relevant, we can get rid of the v1 components. This will loose all data before Step 2.
    36  
    37  ```
    38  helm upgrade \
    39    pyroscope \
    40    ./operations/pyroscope/helm/pyroscope \
    41    --set architecture.storage.v1=false \
    42    --set architecture.storage.v2=true \
    43    --set pyroscope.persistence.enabled=true
    44  ```
    45  
    46  
    47  ## Micro-Services
    48  
    49  ### First deploy v1
    50  
    51  - Note: Needs persistence enabled otherwise data will be lost after restart
    52  - Note:   `--set architecture.overwriteResources.requests.cpu=10m` allow this to be tested without allocation many resources, this should not be used in production
    53  
    54  
    55  ```
    56  helm upgrade \
    57    pyroscope \
    58    ./operations/pyroscope/helm/pyroscope \
    59    --install \
    60    --set architecture.microservices.enabled=true \
    61    --set architecture.overwriteResources.requests.cpu=10m \
    62    --set minio.enabled=true \
    63    --set architecture.storage.v1=true \
    64    --set architecture.storage.v2=false \
    65    --set pyroscope.persistence.enabled=true
    66  ```
    67  
    68  ### Step: 2: Deploy v2 and enable dual ingest
    69  
    70  - Note: The python command will switch to the v2 read path for data ingested 10 minutes after it is run.
    71  
    72  ```
    73  helm upgrade \
    74    pyroscope \
    75    ./operations/pyroscope/helm/pyroscope \
    76    --set architecture.microservices.enabled=true \
    77    --set architecture.overwriteResources.requests.cpu=10m \
    78    --set minio.enabled=true \
    79    --set architecture.storage.v1=true \
    80    --set architecture.storage.v2=true \
    81    --set pyroscope.persistence.enabled=true \
    82    --set architecture.storage.migration.queryBackendFrom=$(python3 -c "import datetime; print((datetime.datetime.now(datetime.UTC)+ datetime.timedelta(minutes = 10)).strftime('%Y-%m-%dT%H:%M:%SZ'))")
    83  ```
    84  
    85  
    86  ### Step 3: Remove v1 components
    87  
    88  Once data before Step 2 is no longer relevant, we can get rid of the v1 components. This will loose all data before Step 2.
    89  
    90  ```
    91  helm upgrade \
    92    pyroscope \
    93    ./operations/pyroscope/helm/pyroscope \
    94    --set architecture.microservices.enabled=true \
    95    --set minio.enabled=true \
    96    --set architecture.storage.v1=false \
    97    --set architecture.storage.v2=true \
    98    --set pyroscope.persistence.enabled=true
    99