...
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
sectionCode 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 publichostname
. 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 hasEnable 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.
...