Having problems with your account or logging in?
A lot of changes are happening in the community right now. Some may affect you. READ MORE HERE
Acclaimed Contributor.. Harald Acclaimed Contributor..
Acclaimed Contributor..
542 views

How to get active users from RUM Sniffer Probe

Jump to solution

We are using RUM sniffer probe for a webshop.

-> We would like to get the number of active users for a specific timeframe for a specifc application.

We can see table: rum_session_stats_t and active_sessions but this table contains negative entries.

Questions:

  • Which query should we use to achieve this?
  • Can we also filter out probes and/or bots? We just want to see the "real" users ;)

Can anybody clarify?

0 Likes
1 Solution

Accepted Solutions
Highlighted
Micro Focus Expert
Micro Focus Expert

Re: How to get active users from RUM Sniffer Probe

Jump to solution

Hi Harald,

you are very welcome.

I think the API hasn't been designed to pull data from external data sources, although RUM is the only one I know which stores some data locally and can get queried directly, for all other data collectors the data is wirrten into the profile database and can be retrieved from there.
The only way to get to the data I can think of would be to query it from the MySQL DB directly, or to export the RUM data, as documented in the RUM Admin Guide under RUM Data Export
..
Data export enables you to extract requested raw data from RUM and provide it to users. You can then use
this data to create your own reports, giving you different views than those provided in the standard End User
Management reports in APM.
..

Greetings
Siggi

Customer Support
Micro Focus

If you find that this or any post resolves your issue, please be sure to mark it as an accepted solution.
7 Replies
Micro Focus Frequent Contributor
Micro Focus Frequent Contributor

Re: How to get active users from RUM Sniffer Probe

Jump to solution

 

Hi Harald

Using queries to get infomration from BSM tables is not supported, you can use the BSM reports instead for example the Session analyser which will show the active users. Regarding get the probes there is no report that can show us this, actually there is open an ER already created to add this feature in future versions. https://softwaresupport.softwaregrp.com/doc/KM03117958

Regards

0 Likes
Acclaimed Contributor.. Harald Acclaimed Contributor..
Acclaimed Contributor..

Re: How to get active users from RUM Sniffer Probe

Jump to solution

the ER: https://softwaresupport.softwaregrp.com/doc/KM03117958
Is in status -> close no change...
-> We are using the "official API" to do the query therefore this is supported.

Still the problem is how to get the "active users" from RUM?

Somebody else can help?

0 Likes
Micro Focus Expert
Micro Focus Expert

Re: How to get active users from RUM Sniffer Probe

Jump to solution

 

Hi Harald,

KM03117958 refers to ER QCCR1I130363 which requests
 Provide an easy way to generate a list of all RUM applications deployed in APM along with the assigned engines and probes.

This ER is in state Open, but it will not help you, even if a report will be created for this,
as it's not what you are looking for.

As mentioned by Drivers0822,

requesting data from the BSM/APM and/or the RUM database directly is nothing we support for various reasons, we usually refer to the Custom Query Builder.
Did you check whether or not the RUM Session Analyzer and/or RUM Session Summary provides the information you are looking for?
In the RUM Session Summary report you can select one specific application and a time frame and you will get a list of sessions during that time:
screenshot.jpg

At least it shows the active users, but it doesn't provide the information what RUM probe collected this information (I think this information is usually not something people would need.)

If you wanna go to the database, have a look at the profile database table RUM_SESSIONS,
or (recommended) use the CQB for it, as it allows access to that table, and can also resolve IDs to entity names
(for example instead of an application_id you can get the application_name):
screenshot2.jpg

Each line corresponds ot one session, so you might wanna "play" with CQB's COUNT function and alike.

Greetings
Siggi

Customer Support
Micro Focus

If you find that this or any post resolves your issue, please be sure to mark it as an accepted solution.
Acclaimed Contributor.. Harald Acclaimed Contributor..
Acclaimed Contributor..

Re: How to get active users from RUM Sniffer Probe

Jump to solution

@Siggi Gladitsch 

Maybe I was not clear about what we want. The goal is this: I want to have a dashboard (BVD) and display the active users for a specific Application. Therefore we use perl and OpenAPI to query the data from APM.

Means I want to get the data which is displayed from the Analysis Report -> RUM Session Analyzer (for a custom timeframe  and specific Application) via external API call.

How can we achieve this?

0 Likes
Micro Focus Expert
Micro Focus Expert

Re: How to get active users from RUM Sniffer Probe

Jump to solution

Hi Harald,

correct, it was not clear to me that you need to access APM data externally,
although you stated "We are using the official API to do the query"

So
> I want to have a dashboard (BVD) and display the active users for a specific Application. Therefore we use perl and OpenAPI to query the data from APM.
> Means I want to get the data which is displayed from the Analysis Report -> RUM Session Analyzer (for a custom timeframe  and specific Application) via external API call.

The GDE Open API is not really good documented, but at least there is something.
As I don't know what APM version you are using, did you check (for example) the
APM Extensibility Guide, Part 7: Reporting in APM, Chapter 10: Generic Reporting Engine API

There are examples for two different RUM samples (and thus tables),
  rum_action_t
    query=select application_name as ApplicationName, .. from rum_action_t

and
  rum_application_stats_t
    query=select application_name as ApplicationName, .. from rum_application_stats_t

With help of the Meta Data you can get hold of the field names.
This is described in the APM Extensibility Guide as well:
 Getting Metadata on the Samples
 Advanced Sample Retrieval

You stated
> We can see table: rum_session_stats_t and active_sessions but this table contains negative entries.

You asked for it, now I expect that you read this down to the end: ;-)

I enabled GDE (Generic Data Engine) debug logging and generated a RUM Session Summary Report
for Application BA_RUM_MS_SQL from 1/31/19 5:58 PM to 1/31/19 6:58 PM     

screenshot.jpg

Logging shows exactly how we query the data for it (and from where):

As per <HPBSM>\log\jboss\GDE.log GDE pulls data from the sample type "rum_session_summary_t" which looks like a profile database table,
but when checking the meta data information, it is not:
 Sample: rum_session_summary_t - externally persistent

(as comparison:
  Sample: rum_session_t (RUM_SESSIONS)
 so when looking at the sample "rum_session_t", the data is stored in the profile database table (or view) RUM_SESSIONS)

2019-01-31 18:58:21,270 [ajp-/127.0.0.1:8009-9] (GDERequestHandlerImpl.java:99) DEBUG - Query:: MonitorType[rum_session_summary_t],
..
, {user_name~'user_name'}, .. , { SUM(total_sessions)~'total_sessions'}, ..
WHERE (customer_name = (Default Client))
..
2019-01-31 18:58:21,276 [ajp-/127.0.0.1:8009-9] (ExternalDataSourceHandlerImpl.java:52) INFO  - **Getting data from External Data Source**
2019-01-31 18:58:21,276 [ajp-/127.0.0.1:8009-9] (ExternalDataSourceFactory.java:32) DEBUG - ExternalDataSourceFactory: Getting External Data-source object for Sample: rum_session_summary_t
-------------------------------------------------------------------------
2019-01-31 18:58:21,277 [Thread-720900] (ExternalDataSourceCallable.java:41) INFO  - Getting data from Callable External Data Source
-------------------------------------------------------------------------

2019-01-31 18:58:21,399 [ajp-/127.0.0.1:8009-9] (GDEQueryHandlerImpl.java:229) DEBUG - mergeSuccessfulResults: No data was found from GDE, returning data from External Data-source only
2019-01-31 18:58:21,402 [ajp-/127.0.0.1:8009-9] (GDEQueryHandlerImpl.java:116) DEBUG - *** Result After Post Processing:***
GDEQueryResult - Row count [2]

2019-01-31 18:58:21,404 [ajp-/127.0.0.1:8009-9] (GDEImpl.java:135) DEBUG - Returned result data::
Monitor type> rum_session_summary_t

..,user_name   ,..,total_sessions,..
   sa          ,.., 14,..
   Other Value ,..,200,..

So all we can see so far is that the data is coming from an external data source.
The other logfile however, <HPBSM>\log\gdeGatewayClient.log, shows us where the data really comes from

2019-01-31 18:58:21,280 [Thread-720900] (RumDataGenerator.java:355) DEBUG - Select fields for 'eumRumSessionSummaryGeneralizedQuery': [.., user_name, .. , total_sessions,..]
2019-01-31 18:58:21,303 [pool-EUM-thread-5] (RumDataGeneratorSharedFilter.java:108) DEBUG - Engine id = 2 : sov02bac22

2019-01-31 18:58:21,306 [pool-EUM-thread-5] (RumRestGatewayClient.java:222) INFO  - Invoking getSessionsSummary
2019-01-31 18:58:21,315 [pool-EUM-thread-5] (RumRestRequestFilterContainerHelper.java:119) DEBUG - RequestFilterContainer=
..
applicationFilter=[4dcd63793b27698bb3c1afe112a0482a] (that's the CI_ID of application BA_RUM_MS_SQL)
..
2019-01-31 18:58:21,394 [pool-EUM-thread-5] (RumDataGenerator.java:372) DEBUG - Query 'eumRumSessionSummaryGeneralizedQuery' for engine 'sov02bac22' returned 2 rows
{user_name:sa}          {total_sessions:14.0}
{user_name:Other Value} {total_sessions:200.0}

Instead of retrieving the data out of one or more APM profile database tables, GDE queries the RUM engine (running on sov02bac22) and retrieves the data from there.

After enabling DEBUG logging for <RUM_Engine>\log\repository.queries.log
..
DEBUG - executing query: SELECT
 .. ,
 COUNT(*) AS totalSessions ,
 session_summary.userName
FROM
 session_summary
 
WHERE session_summary.startTime BETWEEN 1548910680000 AND 1548914280000  AND
 ..
       (session_summary.endTime >= 1548956754000 OR session_summary.endTime = 0) ..
 
GROUP BY session_summary.userNameCRC64
HAVING session_summary.userNameCRC64 != 0

2019-01-31 19:46:01,934 [http-0.0.0.0-8180-1] (QueryExecutor.java:80) INFO  - Query returned 1 results
..
so we get the data from the RUM MySQL database table session_summary, for the number of sessions we "simply" count the number of entries within a certain timeframe for a specific user,
like
 select count(*) from session_summary where username ="sa" and session_summary.startTime BETWEEN 1548910680000 AND 1548914280000

BTW:
1548910680000 = EPOCH format of 1/31/19 5:58 PM
1548914280000 = EPOCH format of 1/31/19 6:58 PM     

To make a really long story short:

I think that you CANNOT get these values via the GDE API, as this allows accessing APM profile database tables only,
for example
 Sample: rum_session_t (RUM_SESSIONS)
but not data from external sourcers, for example
 Sample: rum_session_summary_t - externally persistent

You can use the GDE API and query the sample type, for example
 http://<myserver>/topaz/gdeopenapi/GdeOpenApi?method=getData&user=myuser&password=mypass&query=SELECT * from rum_abandon_trans_t where time_stamp=PastHour
but for externally persistent sample types you will get the message
 The data is empty

Greetings
Siggi

Customer Support
Micro Focus

If you find that this or any post resolves your issue, please be sure to mark it as an accepted solution.
0 Likes
Acclaimed Contributor.. Harald Acclaimed Contributor..
Acclaimed Contributor..

Re: How to get active users from RUM Sniffer Probe

Jump to solution

first thanks for your answer.

So you are saying that the API is not able to deliever the same information than the session_analyzer... This is really bad. At the moment we are not sure how to get the data for the users....

0 Likes
Highlighted
Micro Focus Expert
Micro Focus Expert

Re: How to get active users from RUM Sniffer Probe

Jump to solution

Hi Harald,

you are very welcome.

I think the API hasn't been designed to pull data from external data sources, although RUM is the only one I know which stores some data locally and can get queried directly, for all other data collectors the data is wirrten into the profile database and can be retrieved from there.
The only way to get to the data I can think of would be to query it from the MySQL DB directly, or to export the RUM data, as documented in the RUM Admin Guide under RUM Data Export
..
Data export enables you to extract requested raw data from RUM and provide it to users. You can then use
this data to create your own reports, giving you different views than those provided in the standard End User
Management reports in APM.
..

Greetings
Siggi

Customer Support
Micro Focus

If you find that this or any post resolves your issue, please be sure to mark it as an accepted solution.
The opinions expressed above are the personal opinions of the authors, not of Micro Focus. By using this site, you accept the Terms of Use and Rules of Participation. Certain versions of content ("Material") accessible here may contain branding from Hewlett-Packard Company (now HP Inc.) and Hewlett Packard Enterprise Company. As of September 1, 2017, the Material is now offered by Micro Focus, a separately owned and operated company. Any reference to the HP and Hewlett Packard Enterprise/HPE marks is historical in nature, and the HP and Hewlett Packard Enterprise/HPE marks are the property of their respective owners.