Build MVC of Synthetic User Monitoring in our Digital Experience Management category
📮 Release post
For any organisation building apps and websites, when you have users complaining about availability or latency issues it's not fun. Having an active approach to testing a website or an app by simulating visitor requests for availability, performance and function allows you to find and fix issues before they impact your end users.
It's now possible to use Synthetic Monitoring with GitLab as a method of simulating users by directing the path through the application, providing information as to the uptime and performance of your critical business transations. how to achieve this task_
🔌 Problem to solve
Learning about an unresponsive website or slow load times for critical pages in a web service before your customers can help you to solve the problem before your customers even find out. This is achieved through uptime and web performance monitoring.
👁🗨 Overview
Currently Digital Experience Management is not being prioritized However the tools being used in this category is very similar to what the Quality Department is using to test GitLab.
- Generate user load, validate against acceptable baseline
- Walkthrough user workflow and generate report of user successful actions
📄 Proposal
Proposed MVC Scope
-
Allow customers to specify URL's to test
-
Schedule pipelines for monitoring intervals
-
Checks load performance
-
Use CI Variables for needed input
-
GitLab Notifications if a monitoring pipeline failed
-
Allow user to use more sophisticated test checks
Intended users
Further details
🔍 Investigation Results
-
Sensu Core reached end-of-life, permanently removed on February 1, 2021. We have considered to build a proof of concept using Sensu capabilities but pricing structure has changed which restricts the user to have only 1 site with Sensu Go on the free tier. There is interesting documentation to integrate with their API.
-
Sitespeed.io is a solution explored on the first iterations within GitLab. This is a web performance tool, . built on open source tools and can be used in continuous integration to monitor performance in production . Integrates with Graphite/InfluxDB and Grafana for monitoring. It isn't a set of tools primarily designed for navigating and asserting user flows, but can do scripting tests. We currently use sitespeed.io as part of the premium offering for Browser Performance Testing
-
Checkly is an API & E2E monitoring platform using Javascript. Provides a free plan targetting developers, integrates with GitLab Alerts and has an interesting Terraform integration to enable monitoring as code. Unfortunately integrating with a GitLab CI/CD pipeline is not available on the free tier.
-
Cypress is a JavaScript test automation solution for web applications. It can be leveraged with GitLab CI. Has several useful recipes for how to test the most common scenarios such as testing DOM performance metrics.
-
GitLab QA is an orchestration tool that enables running various end-to-end scenarios against any GitLab instance. This tool is heavily used for end-to-end testing within GitLab and consists of multiple pieces configured and packaged by GitLab Omnibus. However it is tightly coupled to the GitLab business case with very customised GitLab user flows.
🔨 Issue Breakdown
TBD
🎉 What does success look like, and how can we measure that?
TBD