RUM for hybrid mobile apps

Hi all,

We use OutSystems to develop mobile applications, which are ReactJS hybrid mobile applications underneath.

As we prepare to go-live, and even though some metrics can be retrieved using the RUM agent, other metric like performance, usability and device like application load time, transition between screens, battery status, etc..., aren't.

So, my question to the forum is: does anyone already implemented a similar scenario with elastic? and if so, what did you use to accomplish that?

Thank you in advance.

Hi @dduarte,

Thanks for reaching out and welcome to the community!

RUM agent has no specific integration for mobile devices.

Let me add a few comments/questions for each of the cases you are enumerating, please bear in mind, I'm not an expert on mobile applications, so maybe I'm assuming things that are completely inadequate

metric like performance, device like application load time,

What do you mean exactly by this? Could you please elaborate more on this?

Out of the box, the agent gathers performance metrics ,you can see more info here and here

transition between screens

Do these transitions imply a change in the route? If so, we have a RUM integration for React which automatically creates transactions when a route changes (only if the transition triggers a network request such as XHR, fetch)

The core rum agent would also do that, but the React integration enhances it.

If not so, you will need to create your own custom transactions.


Could you give an example?

Generally, you can create custom transactions for everything that is not out of the box, an example would help to understand more.

battery status

Same here, you could create a transaction with this info.


As you can see, every piece of information you want to send to APM needs to be associated with a transaction. I understand that for specific cases this is not the most desirable (like battery status), the agent still doesn't support user-custom metrics, which would enable you to send the metric "in a standalone way"


In fact there is already a mobile specific RUM agent but it is native. In my case the application is hybrid. In Dynatrace there is already a mobile agent for hybrid applications, but in Elastic this isn't available.

About the metrics mentioned, they do not involve transactions to the server but in the device. So, when I mention metrics like Application Load Time it's a standard that measures the time between the moment a user clicks the icon of the app and the app is displayed.


Hi @dduarte,

Yes, you are right, we don't have any integration for hybrid applications.

And the transactions I mentioned to you before are created using the RUM browser API, so you can send custom information to APM from the client side.

metrics like Application Load Time it's a standard that measures the time between the moment a user clicks the icon of the app and the app is displayed.

If you can use javascript to intercept each step of that lifecycle then you could create the transaction using the APIs I mentioned before. But the agent will not create it automatically

This blog post (Flexible custom instrumentation section) gives you another example of how to create custom transactions

If helps you to have more context:

In this github issue, you will find an example of how to use custom transactions to instrument a React Native app. The battery status is not mentioned there nor is the application load time, but it's a good example of how you can create custom transactions. That example is also shared in react expo

But again, as you already stated, there is no official support for hybrid applications.


This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.