Monitoring Pokémon Go: When Your App Breaks All Records
August 03, 2016

Payal Chakravarty

Share this

In July 2016, the world of gaming was taken over by a new phenomenon – Pokémon Go. Within a matter of days "augmented reality" became mainstream and the app, which was launched mainly in the US and Australia, overtook Tinder and Twitter in the total number of downloads. Pokémon Go surpassed the wildest expectations of its creators, Niantic Labs, and then some.

With popularity comes scale, and with scale comes an overload of requests to the gaming servers. If you are not prepared enough, requests fail and users are frustrated. Frustrated with Pokémon Go crashes, laymen were talking about server status and memes were being created and circulated on social networks. Overnight, websites spun up just to report if the game was up or down in different countries. Being closely related to the APM space, my head was drawing up various ways in which Pokémon Go was perhaps addressing the issue and what monitoring they had to put in place to retain their popularity. Here is my list of probable solutions Pokémon Go could employ to improve the experience for their users and avid fans:

1. Synthetic monitoring

The first and most important question: Is the application up or down, and can users login from around the world?

A game this popular would need to ensure a five nine availability and high Apdex score. With synthetic end-user monitoring, simulated tests can be run from around the world to check for availability and response time as often every few seconds. The simulations can allow you to login to the app and interact with the app as a gamer would.

For example if a user is catching a Pokémon, he makes a HTTP request to an API “catchPokemon” with a set of parameters. Continuously checking if these HTTP requests return a valid response code within a reasonable amount of time ensures the “catching a pokemon” capability is functioning right. This ensures problems are detected and fixed proactively. Synthetic monitoring also helps determine if an issue was due to network latency.

2. Mobile Real User Monitoring

Pokémon Go is a mobile game that is accessed only from mobile devices. Hence Mobile End User Monitoring with crash analytics is imperative to rapidly scope the problem.

Data points – such as how often did crashes occur; what devices, OS and applications versions were being used when the crash occurred; and which geographies did the user come from – are extremely essential to isolate the problem. For example, insights such as “crashes between 6 and 6:30 PM PST were happening from iOS v9 users on West Coast specifically when users attempted to transfer a Pokemon” gives an instant problem scope to delve deeper into.

Further, by tracing individual requests, one can delve into exactly what line of code or what services/microservices could have impacted a particular crash. This data becomes even more insightful if it can be correlated with Twitter sentiment analysis.

A comparison between response time trends and throughput is also another good data point to evaluate if slow responses were due to extra load or an application bug.

3. Server, Database, Application Server Monitoring

In order to deal with scale, the infrastructure to support the game needs to be monitored to spot bottlenecks easily. This requires automatic discovery and health check of all the components that the game runs on.

Considering auto-scaling and high resiliency failover will probably be turned on to cater to the load, the discovery needs to be truly dynamic to track any new nodes that come up. A dynamically discovered topology could have multiple components such as application servers, web servers, databases, load balancers, content distribution networks etc. Memory leaks, CPU consumption, database I/O and space utilization, queues and deadlocks are metrics whose trends need to be monitored continuously with automatic baselines to help identify deviation from normal. Additionally, tracking and correlating log errors via log analysis from these various resources can help diagnose issues rapidly.

4. Predictive anomaly detection for the future

With sudden popularity, one thing that is bound to go out of control is a flood of alerts. To reduce alert noise and ensure that right issues are being worked on, there is the need to have intelligent monitoring alerts. Alerts should be generated based on analyzing, correlating and de-duplicating a set of events and should present sufficient information to enable faster debugging.

As an advanced setup, Pokémon Go monitoring should enable predictive anomaly detection to predict trends on capacity and consumption of backend resources much before they become issues.

Payal Chakravarty is a Program Director of Product Management for IBM Application Performance Management.

Share this

The Latest

October 17, 2019

As the data generated by organizations grows, APM tools are now required to do a lot more than basic monitoring of metrics. Modern data is often raw and unstructured and requires more advanced methods of analysis. The tools must help dig deep into this data for both forensic analysis and predictive analysis. To extract more accurate and cheaper insights, modern APM tools use Big Data techniques to store, access, and analyze the multi-dimensional data ...

October 16, 2019

Modern enterprises are generating data at an unprecedented rate but aren't taking advantage of all the data available to them in order to drive real-time, actionable insights. According to a recent study commissioned by Actian, more than half of enterprises today are unable to efficiently manage nor effectively use data to drive decision-making ...

October 15, 2019

According to a study by Forrester Research, an enhanced UX design can increase the conversion rate by 400%. If UX has become the ultimate arbiter in determining the success or failure of a product or service, let us first understand what UX is all about ...

October 10, 2019

The requirements of an APM tool are now much more complex than they've ever been. Not only do they need to trace a user transaction across numerous microservices on the same system, but they also need to happen pretty fast ...

October 09, 2019

Performance monitoring is an old problem. As technology has advanced, we've had to evolve how we monitor applications. Initially, performance monitoring largely involved sending ICMP messages to start troubleshooting a down or slow application. Applications have gotten much more complex, so this is no longer enough. Now we need to know not just whether an application is broken, but why it broke. So APM has had to evolve over the years for us to get there. But how did this evolution take place, and what happens next? Let's find out ...

October 08, 2019

There are some IT organizations that are using DevOps methodology but are wary of getting bogged down in ITSM procedures. But without at least some ITSM controls in place, organizations lose their focus on systematic customer engagement, making it harder for them to scale ...

October 07, 2019
OK, I admit it. "Service modeling" is an awkward term, especially when you're trying to frame three rather controversial acronyms in the same overall place: CMDB, CMS and DDM. Nevertheless, that's exactly what we did in EMA's most recent research: <span style="font-style: italic;">Service Modeling in the Age of Cloud and Containers</span>. The goal was to establish a more holistic context for looking at the synergies and differences across all these areas ...
October 03, 2019

If you have deployed a Java application in production, you've probably encountered a situation where the application suddenly starts to take up a large amount of CPU. When this happens, application response becomes sluggish and users begin to complain about slow response. Often the solution to this problem is to restart the application and, lo and behold, the problem goes away — only to reappear a few days later. A key question then is: how to troubleshoot high CPU usage of a Java application? ...

October 02, 2019

Operations are no longer tethered tightly to a main office, as the headquarters-centric model has been retired in favor of a more decentralized enterprise structure. Rather than focus the business around a single location, enterprises are now comprised of a web of remote offices and individuals, where network connectivity has broken down the geographic barriers that in the past limited the availability of talent and resources. Key to the success of the decentralized enterprise model is a new generation of collaboration and communication tools ...

October 01, 2019

To better understand the AI maturity of businesses, Dotscience conducted a survey of 500 industry professionals. Research findings indicate that although enterprises are dedicating significant time and resources towards their AI deployments, many data science and ML teams don't have the adequate tools needed to properly collaborate on, build and deploy AI models efficiently ...