• Forums
    • Public Forums
      • Community Connect
      • Dynatrace
        • Dynatrace Open Q&A
      • Application Monitoring & UEM
        • AppMon & UEM Open Q&A
      • Network Application Monitoring
        • NAM Open Q&A
        • Enterprise Synthetic Monitoring
      • Synthetic Classic
        • Synthetic Classic Open Q&A
  • Home /
  • Public Forums /
  • Application Monitoring & UEM /
  • AppMon & UEM Open Q&A /
avatar image
Question by Josep R. · Mar 13, 2018 at 11:00 AM · appmon 6.5 monitoring java

Redis connections with Jedis client

Hi all,

my application is connecting to a Redis server using the Jedis Java client library (https://github.com/xetorthio/jedis/releases/tag/jedis-2.9.0) and I doesn't see the Redis Host in the transaction flow (a a external call), any ideas why?

Maybe because the connection protocol used by the Jedis library to connect the Redis server?

Regards, Josep Maria

Comment

People who like this

0 Show 0
10 |2000000 characters needed characters left characters exceeded
â–¼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

Up to 10 attachments (including images) can be used with a maximum of 52.4 MB each and 262.1 MB total.

2 Replies

  • Sort: 
  • Most voted
  • Newest
  • Oldest
avatar image
Best Answer

Answer by Joseph H. · Mar 14, 2018 at 03:18 PM

I would be careful about excessive instrumentation (and subsequent overhead) due to your wildcard rule. Use the Methods Dashlet to see if there is a lot of calls to the REDIS API layer and how long they take. If there's lots of calls that are very quick, then those are inducing possibly excessive overhead and might be candidates for exclusion rules in your method sensor rule.

But to answer your question on the BT: What about adding multiple items to the filter (or Split) part of the BT.

Comment

People who like this

0 Show 1 · Share
10 |2000000 characters needed characters left characters exceeded
â–¼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

Up to 10 attachments (including images) can be used with a maximum of 52.4 MB each and 262.1 MB total.

avatar image Josep R. · Mar 14, 2018 at 04:01 PM 0
Share

Thanks a lot!

avatar image

Answer by Joseph H. · Mar 13, 2018 at 09:20 PM

Josep,

External hosts do not always show up automatically in Transaction Flow. This is automatic only when certain protocols and libraries are used that we recognize. However you can create your own definition of an external service based on any Method Sensor rule. Be sure to select the "This method rule denotes an External API Service call", and specify a ServiceName & Instance Name. Be sure to place this new sensor rule into a Sensor Group, restart the application and you should see a new node in Transaction Flow.

The challenge is always to determine the ideal Class.Method to specify. If you're not sure which class.method within the JEDIS library should be specified, using the CPU Sampler & Thread Dump utility to inspect the application can be a big help in this process.

Comment

People who like this

0 Show 5 · Share
10 |2000000 characters needed characters left characters exceeded
â–¼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

Up to 10 attachments (including images) can be used with a maximum of 52.4 MB each and 262.1 MB total.

avatar image Josep R. · Mar 14, 2018 at 06:20 AM 0
Share

Hi Joseph,

thanks for your comments! With your approach I see this problem: Jedis has a lot of methods calling the Redis database, not only one method to define the external service call. How can I deal with this?

Regards!

avatar image Josep R. · Mar 14, 2018 at 11:15 AM 0
Share

Hi Joseph,

following your suggestion I've identified all calls to Redis are done with methods inside the

redis.clients.jedis.BinaryClient class so putting sensors in all this class methods and creating one External API Service Call like this:

I see the TX Flow whith all calls to REDIS:

Now I want to define one BT with the time and number of REDIS calls, I know this is possible for one specific call (documented here:https://community.dynatrace.com/community/display/DOCDT65/External+API+services?_ga=2.156095411.921542391.1520846144-1399772338.1467870946) (for example for the connect calls) but I want one BT splitted by all REDIS calls to monitor all REDIS calls. Is this possible?

Regards!

1.jpg (251.8 kB)
2.jpg (49.5 kB)
avatar image Josep R. · Mar 15, 2018 at 10:59 AM 0
Share

Hi Joseph,

my customer ask for the overhead introduced in this case, so if we've one call with 1 ms and we instrument this method, what are the aproximated overhead in every call?

Regards,

avatar image Joseph H. Josep R. · Mar 15, 2018 at 05:01 PM 1
Share

The overhead is a very hard thing to quantify on a per-call basis.

A single invocation of a 1ms instrumented method isn't the concern and would likely not be noticed by the user. The bigger concern would be the collective overhead if that method is invoked a lot.

It's also important to weigh the overhead against the value of the information. Perhaps the overhead is more than other methods, but if the method in question contains very important information, then perhaps the increased overhead to capture the metrics is worth the cost.

Also consider the option that you can inject the instrumentation but then disable it thru Sensor Configuration. This approach results in very little added overhead, and provides the ability to enable/disable on an as needed basis. Thru the usage of Environments, one can even programatically switch from an enabled/disable state on the fly.

If a hard overhead value is important, the best way is to run a load test with/without and see if you can even measure the difference. I doubt you'd notice a statistical difference from the users perspective.

avatar image Josep R. Joseph H. · Mar 16, 2018 at 10:40 AM 0
Share

Thanks Joseph!

Welcome to the
Dynatrace Community Forums

Check out the Community User Guide and First steps in the forum to learn how to get started.

Community Member of the Month
December 2019

Announcing Dynatrace's Community Member of the Month for December 2019, Enrico F.! Click here to read more!

Employee Member of the Month
December 2019

Announcing Dynatrace's Employee Member of the Month for December 2019, Silvia M.! Click here to read more!

Live webinar: Ensuring Digital Business Availability with Dynatrace

Learn how Dynatrace Real User Monitoring automatically detects errors that impact your end users caused by erroneous 3rd party or CDNs.
December 12, 4:00 pm CET / 10:00 am ET
Register here

Live webinar: Ensuring Digital Business Availability with Dynatrace

Learn how Dynatrace Real User Monitoring automatically detects errors that impact your end users caused by erroneous 3rd party or CDNs.
December 12, 4:00 pm CET / 10:00 am ET
Register here

Live webinar: Ensuring Digital Business Availability with Dynatrace

Learn how Dynatrace Real User Monitoring automatically detects errors that impact your end users caused by erroneous 3rd party or CDNs.
December 12, 4:00 pm CET / 10:00 am ET
Register here

Live webinar: Ensuring Digital Business Availability with Dynatrace

Learn how Dynatrace Real User Monitoring automatically detects errors that impact your end users caused by erroneous 3rd party or CDNs.
December 12, 4:00 pm CET / 10:00 am ET
Register here

Follow this Question

Answers Answers and Comments

23 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Java Agent Deployment for Spark instance? 1 Answer

Dynatrace 6.5 and JBoss EAP 6.4.4 (FUSE) 1 Answer

GC Memory Leaks 1 Answer

Dynatrace session offline can't open in Dynatrace Client 2 Answers

PurePaths lacks detail when using Java Futures coding technique 1 Answer

Forum Tags

dotnet mobile monitoring load iis 6.5 kubernetes mainframe rest api errors dashboard framework 7.0 appmon 7 health monitoring adk log monitoring services auto-detection uem webserver test automation license web performance monitoring ios nam probe collector migration mq web services knowledge sharing reports window java browser agent community user guide hybris javascript appmon sensors good to know search 6.3+ server documentation easytravel web dashboard kibana system profile purelytics docker splunk 6.1 process groups account 7.2 rest dynatrace saas spa guardian appmon administration production user actions postgresql upgrade oneagent measures security Dynatrace Managed transactionflow diagnostics user session monitoring unique users continuous delivery configuration alerting NGINX splitting business transaction client 6.3 installation chart database scheduler apache mobileapp RUM php dashlet azure purepath plugins agent 7.1 appmonsaas messagebroker nodejs 6.2 incidents android sensor performance warehouse
  • Forums
  • Public Forums
    • Community Connect
    • Dynatrace
      • Dynatrace Open Q&A
    • Application Monitoring & UEM
      • AppMon & UEM Open Q&A
    • Network Application Monitoring
      • NAM Open Q&A
      • Enterprise Synthetic Monitoring
    • Synthetic Classic
      • Synthetic Classic Open Q&A