Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

RUM session recordings can be stored recordings in an Azure Blob container. Have the customer create a Storage Account and a blob container and share with you the following:

...

Step 2: Create secret on customers kfuse namespace

Customer or CS team requires to do the following on the cluster where kloudfuse is running

AWS S3

Code Block
kubectl create secret generic kfuse-rum-s3 --from-literal=accessKey=<accessKey> --from-literal=secretKey='<secretKey>'

...

Step 3: Customize the customers environment yaml file to enable RUM

CS team - Incorporate the changes similar to PR that enables RUM on Playground and PR that enables RUM menu item on UI. Below is a verbal description of the change within these PRs:

  • Add a global.rum section

  • Code Block
      rum:
        enabled: true
        
        # This is a list of names and UUIDs. The customer can generate any
        # UUID. The same UUID will need to be referenced in the Kfuse frontend SDK
        # initialization call.
        applications:
          - name: kf-frontend
            id: 944f6a58-dbc2-45ad-bf93-def505aaff62
        
        # only if customer uses AWS S3
        sessionReplayStorage:
          type: s3
          useSecret: true
          
          # Below secret name references the secret created earlier
          secretName: "kfuse-rum-s3"
          
          # Below references the bucket name and region that customer has
          # created for session replay storage
          s3:
            region: us-west-2
            bucket: rum-session-replay-playground
            
        # only if customer uses Azure Blob
        sessionReplayStorage:
          type: azure
          useSecret: true
          
          # Below secret name references the secret created earlier
          secretName: "kfuse-rum-azure"
          
          # Below references the container that the customer has
          # created for session replay storage
          azure:
            container: rum-session-replay-playground
  • To generate a UUID above you can run command line uuidgen | tr 'A-Z' 'a-z'

  • Ensure RUM specific Kafka topics are listed in the customer YAML. You can use the configuration for the events stream as a reference for number of replicas and partitions. We have not done a performance evaluation for RUM so there is no proper guideline at the moment.

Code Block
    - name: kf_rum_session_replay_topic
      partitions: 3
      replicationFactor: 2
    - name: kf_rum_views_topic
      partitions: 3
      replicationFactor: 2
    - name: kf_rum_actions_topic
      partitions: 3
      replicationFactor: 2
    - name: kf_rum_resources_topic
      partitions: 3
      replicationFactor: 2
    - name: kf_rum_longtasks_topic
      partitions: 3
      replicationFactor: 2
    - name: kf_rum_errors_topic
      partitions: 3
      replicationFactor: 2
  • TLS and Ingress configuration. RUM requires a public ingest endpoint that frontend browser applications will post data to. Ensure that the customer has defined the tls section and has a public hostname. Ensure to enable external ingress and external traffic policy:

Code Block
tls:
  enabled: true
  host: playground.kloudfuse.io
  email: admin@kloudfuse.com
  clusterIssuer: playground-letsencrypt-prod
  
ingress:
  controller:
    service:
      external:
        enabled: true
      externalTrafficPolicy: Local
  • Enable RUM under ingester:

  • Code Block
    ingester:
      config:
        rum:
          enabled: true
          # you can ignore the datadog section below from the PR since 
          # this is the default
          datadog:
            proxyToDatadogEnabled: false
  • Add parsing rules under log-parser to accept frontend logs. You can include these rules verbatim along with any existing rules the customer already has

  • Enable RUM under ui:

Code Block
ui:
  config:
    rum:
      enabled: true

That completes the cluster specific changes required. Upgrade the cluster with the above changes and ensure all pods are coming up.

...