Skip to main content

User Session Recording & Replay v3!

Monitoring & Analytics

Terraform

Maintenance

ElasticSearch vs OpenSearch

Maintenance

ElasticSearch+docker+puppet

Maintenance

Monitoring & Analytics - User Session Recording & Replay v3!

Description

Germain’s User Session Recording & Replay v3 is out! Building this version took us nearly 12 months. We first built v1 back early 2017, our v2 was end of 2018 and had been growing with it. Around March of last year, because of growing interest in this feature and its corresponding limitations (lack of insights, too much required configuration and maintenance, etc.) we decided to revamp this feature. As of today, we have tested this v3 against a number of technologies (Angular, React, Salesforce, Siebel, etc.) and the results are looking pretty awesome. This is Beta; we’ve completed our unit testing and a first round of load testing. We are entering into our final QA and then providing the new version to some clients.

Benefits

This V3 provides significantly more insights. Click here for more details: User Session Monitoring, Replay & 6 Heatmaps

Important

This V3 has a millisecondgranularity/precision (V2 had a secondgranularity and precision) which means 2 things:
  • For current client: your license may automatically increase . i.e what will increase is the UNIT/DAY that relates to the “User Session Recording & Replay” feature usage, as following:
    • (in V2) 1/one minute of active usage of a user on an application = 60 UNITS
    • (in V3) 1/one minute of active usage of a user on an application = 60,000 UNITS
  • Anybody: you will get significantly more UX insights with this V3, insights our V2 did not capture.

Example

More details and Configuration

User Session Monitoring, Replay & 6 Heatmaps

Maintenance - Terraform

Description

Terraform script is being used by one of our clients to automatically deploy Germain services within the client’s own AWS. It’s also being used to deploy regular EC2 instances and run Elastic as a docker container. This requires Terraform scripts to allocate the EC2 instances, as well as any S3 space for backups. More details about what the Terraform script does:
  • Task
  • Create VPC for Germain servers
  • Create security groups
  • Allocate EC2 instances for Germain App servers (4x r6d.2xlarge)
  • Run Zookeeper container on App servers
  • Run ActiveMQ container on 1x app server
  • Run Germain Germain services on App servers
  • Run 4x Tomcat instances on App servers
  • Configure load balancing across Tomcat instances
  • Create RDS instance for config and auth tables (I’d estimate something like a db.m5.xlarge would be sufficient for this)
  • Allocate EC2 instances for ES cluster (5x i3.2xlarge)
  • Run Elasticsearch container on 5x nodes
  • Run Kibana container on 1x node
  • Create S3 bucket for datamart backup
  • Create IAM user with permissions to write to S3

Maintenance - ElasticSearch vs OpenSearch

We have reviewed OpenSearch to see whether we can support it as Data Store to Germain (and in addition to ElasticSearch, Postgres, MySQL, and Oracle). Here is a comparison and the main take-aways of OpenSearch (OS) vs. ElasticSearch (ES). Comparison and the main take-aways:
  • OS is a fork of ES that claims to be compatible at the API level; this is good for Germain
  • OS on AWS automates backups and management of the underlying hardware, which could significantly reduce the maintenance overhead compared to running ES directly on EC2 instances
  • Unfortunately, the OS and ES code bases have already diverged to a point where we would need to support separate code paths for each of them (~1-2 weeks of engineering work for us at this point).
  • OS is based on ES 7.10.2. The latest ES 7 release as of this writing is 7.17, with version 8 now available as well
  • Despite the fairly recent fork, there are already a number of changes in the API between ES 7.17 and the latest OS release. Further, the latest ES client actively prevents us from connecting to OS, so we would have to include an older version of the ES client (7.10.2)
  • The pace of development of OS looks to be a lot slower than ES, judging by the number of new features added to each of them since the fork
Notes on compatibility changes:
  • Data stream support is limited in 7.10, specifically the templates need to be created manually because the high level client doesn’t support them
  • Point-in-time queries are not supported, need to use scroll instead
  • Limited support for transform options
  • Options for lifecycle policies have changed slightly
  • Less maintenance needed for OS in some cases (e.g. if used on AWS without any other tech like Puppet) vs ES.
Links:

Maintenance - ElasticSearch+docker+puppet

FYI. since some clients asked..in Germain cloud, we use ElasticSearch nodes as Docker containers via Puppet
  • Puppet profile to deploy multiple nodes to one server
  • Docker container runs as cluster
  • Directories for persistent logs and ES storage
  • germainapm-es-plugin gets automatically depoyed into ES containers

Get Help

Contact GermainUX Support

The Germain Team can help you set this up.

Can't find what you need?

Search all GermainUX docs with Ctrl + K, or use the feedback buttons at the bottom of this page to tell us what is missing.

The content of this document is proprietary to GERMAIN SOFTWARE LLC.