Migrating from Standard Edition to Custom Edition

You can migrate Standard Edition to Custom Edition. The data that you can migrate includes tenant unit configuration data. The tenant unit configuration data includes user settings, dashboards, events, alerts, application perspectives, EUM websites and mobile apps, and other data. Migration is manual and pre-backend installation, it requires a fresh Postgres setup.

The following items are migrated:

  • Email and SMTP settings:
    • SMTP server (host, port)
    • Email sender address
    • SSL/TLS settings
    • SMTP credentials (if sensitive data included)
  • Proxy Settings;
    • Proxy server (host, port)
    • Non-proxy hosts list
    • Proxy credentials (if sensitive data included)
  • Acceptor Configurations:
    • Agent acceptor (host, port)
    • EUM acceptor (host, port)
    • Synthetics acceptor (host, port)
    • Serverless acceptor (host, port)
    • OpAmp acceptor (host, port)
    • OTLP HTTP acceptor (host, port)
    • OTLP GRPC acceptor (host, port)
  • Feature Flags: The flags of features that are enabled or disabled features with their values
  • Domain Configuration: Base domain and tenant or unit URL path setting
Note: The analytics and metrics data from your Instana agents cannot be migrated.
Note: Important You can use the same license of your Standard Edition to migrate to Custom Edition.

Prerequisites

Make sure that the following prerequisites are met:

  • The Kubernetes cluster is installed and configured.
  • The Instana kubectl plug-in is installed.
  • The data stores are up and running.

Procedure

To migrate the data, complete the following steps:

  1. On your Self-Hosted Standard Edition host, extract the tenant unit configuration data from the Postgres data store.

    stanctl dump config-data
     

    A dump.tar.gz file is created in the ./dump directory. This file contains the tenant unit configuration data in the form of executable SQL queries.

  2. Optional: Set the --include-sensitive flag to skip the following dialog ....Do you want to include sensitive information?.

    Sensitive information includes SMTP password, proxy password, and download keys.

    If the --include-sensitive flag is not set, the following dialog is displayed.
    This operation may include sensitive information (for example, SMTP credentials, proxy credentials, and download key).
    Do you want to include sensitive information?
    Note: Excluding it will require you to reconfigure SMTP and proxy settings in the destination environment during installation.
  3. Complete one of the following steps:
    • To include sensitive information in the backup, enter "Yes".
    • To exclude sensitive information from the backup, enter "No".
  4. Transfer the generated dump-<timestamp>.tar.gz file package from the old host to your new Custom Edition host.
  5. Install data stores, see Setting up data stores.
  6. Import data from Standard Edition.
    kubectl-instana migrate -f <path-to-dump-file>
    Table 1. Migration parameters
    Parameter Description
    -f, --file Path to the migration memory dump archive
    --postgres-namespace Namespace (default: instana-postgres)
    --postgres-name Name of the Postgres cluster (default: postgres)
    --postgres-user Postgres username
    --postgres-password Postgres password
  7. Extract the memory dump archive and use the following configuration for installing the backend:
    tar -xzf dump-<timestamp>.tar.gz -o dump/migrate.yaml | cat
  8. Note the parameters in the migrate.yaml file. You need to use these values to install the Instana backend.
    • Use the following parameters from the migrate.yaml file in Core Secret:
      • salesKey
      • tokenSecret
      • downloadKey
      • emailConfig
        emailConfig:
          smtpConfig:
            user: smtp-user@example.com
            password: smtp-password-123
      • proxy
        
        proxyConfig:
          user: proxy-user
          password: proxy-password-456
         
    • Use the following parameters from the migrate.yaml file in Unit Secret:
      • downloadKey
      • agent keys
    • Use the following parameters from the migrate.yaml file for Creating a core as shown in the following example.
      apiVersion: instana.io/v1beta2
      kind: Core
      metadata:
        namespace: instana-core
        name: instana-core
      spec:
         base-domain: instana.example.com
         imageConfig:
           tag: 3.xxx.xxx-0
         emailConfig:
           smtpConfig:
             from: noreply@example.com
             host: smtp.example.com
             port: 587
             useSSL: false
             startTLS: true
             check_server_identity: true
         proxyConfig:
           host: proxy.example.com
           port: 8080
           nonProxyHosts:
             - localhost
             - 127.0.0.1
             - "*.internal.example.com"
         acceptors:
           agent:
             host: <agent subdomain>
             port: <port>
           eum:
             host: <base domain>
             port: <port>
           synthetics:
             host: <base domain>
             port: <port>
           serverless:
             host: <base domain>
             port: <port>
           otlp:
             http:
               host: <otlp-http subdomain>
               port: <port>
             grpc:
               host: <otlp-grpc subdomain>
               port: <port>
           opamp:
             host: <opamp subdomain>
             port: <port>
         feature-flags:
           - name:feature.new-ui.enabled
             enabled:true
           - name:feature.advanced-analytics.enabled
             enabled:false
         use-tu-url-path: false # If this value is set to true, remove the "use-tu-url-path" attribute and instead add the following configuration in core.yaml
                               # properties:
                               # - name: config.url.format.pathStyle
                               #   value: true
    • Use the following parameters from the migrate.yaml file for Creating a Unit and Tenant.
      • tenantName
      • unitName
  9. Install the Instana backend, see Installing the Instana backend.

Post-migration configurations

If required, redo the following configurations that were on the old host.

  • New Custom Edition instance is not connected to any agent by default. Complete one of the following steps:
    • Connect your agents to old and new backends, see Configuring multiple backends.
    • Connect your agents to the new backend, update the existing DNS records to point to the new Custom Edition instance. The agents automatically start reporting to the new backend.