Application Perspectives Advanced Use Cases: Client Feature Testing

DZone 's Guide to

Application Perspectives Advanced Use Cases: Client Feature Testing

See how you can isolate and compare the performance of individual features when introducing new client functionality to microservices.

· Microservices Zone ·
Free Resource

With traditional monitoring tools, it's either extremely difficult or impossible to isolate and compare the performance of individual application features as required when introducing new client functionality. Instana's new Application Perspectives capabilities make this a trivial task that is easily configured via the Instana UI.

About Instana's Application Perspectives

With Application Perspectives, each team member gets the exact visualizations and information they need to optimize the applications and services they're responsible for. With a simple UI-driven configuration, users get a series of curated dashboards that visualize and analyze all related services and infrastructure. You can learn more about the Application Perspective experience in our Personalizing APM blog post.

Use Case: Client Feature (A/B) Testing

As an example, let's take a look at a fictional gaming company that manages multiple game services. Let's say that they've rolled out new features in their support application, which uses new backend functionality. When doing client-side testing in production, developers are challenged with observing the performance of APIs, databases, and other subsystems while trying to distinguish between requests that originate from a specific client and all other requests. This becomes even further complicated as they try to understand the performance implications of specific functionality within those services.

Consider a scenario where a team of developers is building new client functionality and has enabled these features to a subset of their users through the use of feature toggles.

Example Microservice Environment without Application Perspectives

In most application monitoring tools, a complex set of filters would be required to isolate the performance of your application solely based on an HTTP header of an inbound request. Even then, it would be impossible to observe only the performance characteristics of your feature tests while the services are busy processing typical production workloads. Instana has made defining and observing such a use case trivial with Application Perspectives.

In the following scenario, we are only concerned with requests that originate from a front-end client which has a feature flag that enables new (and mostly untested) features for the user. In Instana, this is trivial when using application perspectives combined with metadata that can be used to determine if our client application is generating requests from the aforementioned feature toggle. This can be achieved through the Instana UI with the combination of HTTP header filters.

  1.  call.http.header: x-client-id=portal-client-v2  

    This filter tells Instana to only track requests which originate from a specific version of our support portal client.
  2.  call.http.header: x-feature-id=ticket-subsystem  

    While this filter further refines the performance tracking to only include requests which are a part of the feature test.

Microservice Application from the Perspective of your feature toggle test

Once you've defined this perspective you can observe both the performance of your client and the backend services which only represent the requests and dependencies that were invoked by the features you're testing. This effectively removes all noise from the signal and enables a pure focus on the newly introduced functionality.

This capability enables you to quickly and easily focus on the performance characteristics of your application while in production, without the noise of transactions which have already been optimized and tuned. We'll be blogging about other potential use cases with Perspective Dashboards in the future, so stay tuned. Begin defining your Application Perspectives today and observe the performance that matters to you.

ab testing, instana, microservices, monitoring, performance, tutorial

Published at DZone with permission of Kevin Crawley , DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}