Synthetic monitoring with Instana 101:
Synthetic monitoring or proactive monitoring is a proactive approach used to continuously test applications, systems, and networks by simulating user interactions.
Instana provides this through the Synthetic monitoring tool included with an APM subscription. The blog will cover what’s needed to get started using this service, what the different options for Synthetic monitoring are and how to set up your first monitoring test. This Blog will tie in with our Tech Intro webinar series and some upcoming webcasts around the topic. This is a living document so the links will be updated regularly so book mark this for the latest information about Instanas Synthetic Monitoring Capabilities
What is Synthetic Monitoring
Synthetic monitoring or proactive monitoring is a proactive approach used to continuously test applications, systems, and networks by simulating user interactions. It involves creating artificial transactions that mimic real user behaviour to monitor the performance, availability, and functionality of digital services. This method allows businesses to detect potential issues before they impact actual users, ensuring optimal performance and user experience. Synthetic monitoring tools generate simulated traffic from various locations and devices, providing valuable insights into system health and performance across different environments. By monitoring applications from the outside-in, synthetic monitoring helps organizations identify bottlenecks, vulnerabilities, and areas for optimization, ultimately enhancing overall reliability and customer satisfaction.
Why should I use it?
There are many reasons why you could use Synthetic Monitoring in your business such as:
1. Proactively identify issues
You can immediately get notified when the application or service is not available in a particular region of the world. Once you know your application/service is available, you need to be sure that you are also notified when the critical business flows are not working as expected from functional and performance perspectives. You can even create a set of tests and notifications to understand how the third party your application/service depends on are behaving.
2. Reduce Mean Time to Resolution (MTTR)
With synthetic monitoring you are able to identify the issues even when there are not actual users impacted. Which means issue detection happens as soon as possible. And this is the first step towards the issue resolution. Together with the failure notification Synthetic Monitoring provides related data such as backend request, logs, network timings, har files, videos. All these data provides the context you need to troubleshoot the detected issues.
3. Preparing the launch in new markets
When launching your products in new geographical areas where there is no real users traffic yet Synthetic Monitoring tests can validate that the performance of your application/service is the expected one, which helps you to provide a flawless experience right out the gate.
API -V- Browser Script
You will need to specify when you set up the Synthetic monitor what type of monitor that you want API or Browser Script. To add to functionality Instana separates these out further to
APIs and browser scripts are both tools used in software development, but they serve different purposes and operate at different levels of abstraction.
- API (Application Programming Interface):
- An API is a set of rules and protocols that allow different software applications to communicate with each other. It defines how software components should interact, making it easier to develop software by providing predefined functions and data structures.
- APIs are typically used for integrating different software systems, allowing them to exchange data and perform actions without knowing the internal workings of each other.
- APIs can be of various types, including web APIs (HTTP-based APIs used for web services), library APIs (functions and procedures provided by libraries), and operating system APIs (for interacting with the operating system).
- · Synthetic monitoring APIs are commonly used for automating monitoring tasks, integrating monitoring into continuous integration/continuous deployment (CI/CD) pipelines, or building custom monitoring dashboards.
- Browser Script:
- A browser script, on the other hand, refers to scripts written in languages like JavaScript that run within a web browser.
- Browser scripts are primarily used to manipulate web pages dynamically, adding interactivity and behaviour to websites.
- Browser scripts used in synthetic monitoring can perform actions such as navigating through web pages, clicking on links or buttons, filling out forms, and verifying expected outcomes.
- The scripts are executed in headless browsers or browser emulators to simulate real user environments accurately.
- Synthetic monitoring with browser scripts helps detect performance issues, broken links, or functional errors in web applications before they impact real users.
In General, APIs are used for programmatically interacting with monitoring tools, while browser scripts are used to simulate user interactions and monitor the performance and functionality of web applications from an end-user perspective. As guide taken from the Instana documentation:
· Do you want to monitor the availability of your websites? Write an API Simple test.
· Do you want to monitor the APIs of your application? Write an API Script test.
· Do you want to check your webpage for HTTP errors? Write a Browser Simple test.
· Do you want to imitate user interactions with your web pages? Write a Browser Script test.
We will discuss how to set up each of these in a moment along with what metrics you should be expecting to see from them
Points of Presence
A Point of Presence (PoP) refers to a specific location or site where network connectivity and services are established to facilitate the simulation and monitoring of network performance and availability. PoPs are strategically distributed across different geographic areas to provide comprehensive coverage and accurate representation of end-user experiences. They act as vantage points for deploying synthetic testing agents that generate simulated traffic and interactions, enabling the assessment of network latency, throughput, and reliability under various conditions. By utilizing multiple PoPs, organizations can gain insights into regional performance issues, optimize content delivery, and ensure that services meet quality expectations globally. PoPs play a crucial role in proactive network management, helping to identify and resolve potential bottlenecks and disruptions before they impact actual users.
Instana offers 2 options for PoPs:
· A self-hosted version which lives in your establishment. This runs a set of Kubernetes pods in the cluster and is installed using the helm install command (see Installing PoPs later in the article)
· A PoP hosted on the Instana severs. This is a paid add-on to your instana service so to get access contact your CSM or email digitalcustomersuccessemea@ibm.com and the Client Success team can discuss options with you. This will ensure that you will have the correct licences for your needs.
Consider Security
As the synthetic tests access your website directly care and attention should be paid to how you plan to secure the tests. Best Practice is to do at least one of the following :
Restrict write access for Synthetic Tests
Ensure the credentials used to run the Synthetic tests are only used for that purpose
How to set up Synthetic Monitoring in Instana
To deploy a Synthetic Monitor in Instana you first navigate to the synthetic monitoring tab on the home page of the portal. From there you can choose Add synthetic test and select the type of test you want to create. You can use the wizard to then create the test based on what your use case is or use scripts to customize the test.
If you choose the Results tab you will see the full list of results filterable by status and Location, Successful tests will have a green indication with a xxx mins ago time while failed tests will be marked in red with a timestamp indicating the failure time, For SSL tests instead of response size you will see days until the cert expires.
Clicking on the test will show some more details of the test
The last piece of the Dashboard is the configuration tab, this allows you to view the configuration, location schedule and id of the test. It also allows some limited editing of the test configurations. Please read the documentation at the end of this blog to see what can be done and what cannot as more capabilities are being added.
Smart alerts and Synthetic monitoring
We moved over the Smart alerts tab when we were talking about monitoring tests because that warrants its own section. You can configure Smart Alerts for Synthetics to send an alert if a Synthetic test for a location fails. You can attach custom payloads to alert notifications. Before you do just be aware of the current limitations
-You can create an alert for failures on a single metric only.
-Blueprint, Unbounded Analytics, Adaptive threshold, and other types of thresholds are not available for Synthetic alerts
For more information on the alerting piece see either the documentation or the Tech Intro Series
LINKS
Documentation: https://www.ibm.com/docs/en/instana-observability/current?topic=instana-synthetic-monitoring
Blogs:
Synthetic PoP performance and Scaling
Managing Synthetic Tests, Smart Alerts, location and credentials with Synthetic CLI
SRE Best Practices monitoring Synthetic PoP