Grafana OnCall mobile app notifications: The new and improved experience for Android users
The Grafana OnCall mobile app is an essential tool for on-call engineers to monitor and respond to critical system events. Available for both iOS and Android, the app offers a range of features and notification settings that make the on-call experience easier and more intuitive — all in the palm of your hand.
But we know that, for on-call engineers, the difference between smooth operations and potential disaster hinges on alerting the right person at the right moment — and the path to seamless notification delivery has had its challenges, particularly within the diverse landscape of Android devices.
In this post, we’ll explore some recent improvements that enhance the reliability of the Grafana OnCall mobile app and, in particular, improve the quality of life for on-call engineers using Android devices. They can now rest easy, knowing that their device will respect their need for (occasional) peace and quiet, while making exceptions for truly critical events.
Don’t have the Grafana OnCall mobile app yet? Download it today for iOS or Android.
Do Not Disturb mode in iOS vs. Android
Before we get into the recent improvements we’ve made to the OnCall mobile app, it’s helpful to understand the differences between the Do Not Disturb (DND) modes in iOS and Android.
The iOS paradigm: A smooth sail
iOS offers a streamlined approach to handle critical notifications in DND modes. Apple’s ecosystem allows for an easy and straightforward setup, where critical notifications are delivered effectively and consistently on any iOS device. No matter the state of an iOS device, any incoming critical notification always plays a sound and is shown to the user.
The Android paradigm: A complex symphony
Android’s DND mode differs significantly from its iOS counterpart — and can be somewhat confusing.
There is one setting where apps can be allowed to “ignore/override Do Not Disturb,” but this primarily applies to the visual aspect; it ensures notifications are seen, but not necessarily heard.
The notification sound is instead controlled by the ringer mode on the device, which can be normal, vibrate, or silent:
If ringer mode is set to vibrate or silent then, by default, the notifications will not make any noise.
To overcome this, there is also a setting for “Do Not Disturb permission/access.” This permission allows apps to change the ringer mode on your device (and also change the volume).
By combining the ignore Do Not Disturb and Do Not Disturb permission settings, apps can present critical notifications just as they do on iOS. But app developers have to do their own custom work to achieve this; there is no out-of-the-box solution.
This distinction is crucial for apps like Grafana OnCall, where an audible alert can be as critical as the notification itself.
OEM variations and DND complexities
On top of this, Android also presents a variety of Original Equipment Manufacturers (OEMs), each adding their unique flavor to the Android APIs. This diversity, although a strength, introduces complexity in ensuring consistent behavior across devices, particularly when it comes to overriding DND functionalities.
For example, some devices have a physical switch to control the ringer mode, and this effectively eliminates the ability to change ringer mode programmatically.
On some devices, the volume on all the sound channels is automatically set to mute when users enable DND mode, while on other devices, it only changes the volume of the notification sound channel.
Breaking through the silence
Initially, to overcome these challenges on Android, the Grafana OnCall mobile app would disable the silent mode, programmatically set the ringer mode to normal, and increase the device’s volume for the notification channel (which is the default sound channel for incoming notifications).
While this was effective in delivering OnCall alerts, this approach inadvertently allowed all apps to send noisy notifications and disrupt the user’s peace — far from ideal.
After some deep-dive research and development, our team pioneered a more refined solution. The alarm sound channel, typically reserved for waking up users or reminding them of important events, presented itself as a beacon of hope.
By funneling our critical notifications through this channel, instead of the default notification sound channel, we can both respect our users’ preferences, while ensuring that our critical alerts can cut through the silence.
The genius of the alarm channel
Why the alarm channel, you might wonder? Its distinct advantage lies in its inherent ability to ignore the silent mode settings on Android devices. This means that even when a device is set to mute, our notifications still have a voice, ensuring that important alerts are heard, not just seen.
This also means uncompromised user settings. Adopting the alarm channel allows us to honor the user’s preferences. Their device remains in silent mode for everything else, minimizing disruptions without missing what truly matters.
Leveraging the alarm channel required some innovative technical adjustments, leading us to develop a custom notification audio player tailored for this specific purpose. This customization ensures that the sound and volume settings are optimized for alerting when needed, but follow default notifications settings when receiving non-critical alerts.
We’d love your feedback!
We hope you enjoy this improvement to the Grafana OnCall mobile app for Android, which was shipped with the 1.15.1 release of the app.
Also, if there are any other features that would improve the on-call experience for you and your team, we want to hear from you. You can drop us an email at mobile-support@grafana.com, or leave us a message in our Grafana Community Slack channel.
We’d also love for you to help us shape the future of the OnCall mobile app. To get first dibs on new features, and help us fine-tune the on-call experience, you can join our beta testing crew for iOS or Android. Thank you for your input!