Java

Announcing immediate availability of Java 9 support

Oracle has finally released its long-anticipated Java 9 release, this includes the opensource OpenJDK. Because we at Dynatrace strive to remain at the forefront of technical innovation, we’ve been working on our Dynatrace Java 9 support for some time now. Because of this, we can proudly announce the immediate availability of Java 9 support in the latest version of Dynatrace OneAgent, v1.129! Java 9 features… read more

AIX support for Java & IBM/Apache HTTP Server now in general release

Dynatrace is proud to announce the general availability of support for IBM AIX for Java (specifically IBM JVM and WebSphere) and IBM HTTP Server (Apache HTTP server). These two modules have been in Beta for the last six months or so. They’ve proven themselves at numerous customer locations and they’re now ready for prime time. What you get Service monitoring, code-level insights, and real user monitoring for… read more

Analyzing memory dumps for Java and Node.js

When your application experiences memory leaks or high object churn it’s important that you get your hands on the memory dumps so you can analyze these issues. In production environments, this is often quite a challenge as you most likely can’t log into the environment, and you may have no other means of triggering memory dumps. Dynatrace now enables you to both trigger and securely download memory dumps to subsequently… read more

Request attributes: Java method argument capture is now supported

Dynatrace recently introduced request attributes, a valuable new service-monitoring feature that enables fine-grain service filtering and performance analysis. By defining request attributes for your service’s requests, you can enable advanced filtering for service requests across all Dynatrace analysis views. Once configured, request attributes help you to better understand the relationships between performance, errors, and application-specific meta data in your requests. Until now this functionality was only available for web… read more

Hunting and Fixing AWS DynamoDB Client Scalability Issues on Tomcat

As a performance consultant, I get called on to address various performance issues. One of our recent scalability issues happened on a micro service exposing a REST API. The micro service runs on Apache Tomcat, on an AWS EC2 instance, in a VPC. It uses ehcache as in-memory cache and Dynamo DB as persistent data source. DynamoDB gets updates from the source system using data pipeline built in Kinesis… read more

OneAgent & Security Gateway – Release notes v1.117

OneAgent Java Support for Mongo Async driver .NET .NET Core Beta support for Windows Node.js Redis support Nginx Support for Nginx Plus R12 was added General improvements and fixes Injection into Docker 1.12+ installed from RPM Support for Fedora 25 Detection of Couchbase, CouchDB, RabbitMQ, and Riak based on code paths (only from the -pa command line parameter, not the ERL_LIBS environment variable) Docker plugin support for 1.13.1 For Docker… read more

Detecting the N+1 Asynchronous Thread Problem Pattern

I’ve been offering my help in analyzing performance data for quite a while now. Most of the time when analyzing PurePaths, load testing outputs or production log files, I find very similar problem patterns. This fact inspired us to automate problem detection in Dynatrace AppMon 6.5. Even though I think we cover a big part of common patterns, I am always on the lookout for something new – something… read more

Diagnosing Common Database Performance Hotspots in our Java Code

When I help developers or architects analyze and optimize the performance of their Java application it is not about tweaking individual methods to squeeze out another millisecond or two in execution time. While for certain software it is important to optimize on milliseconds I think this is not where we should start looking. I analyzed hundreds of applications in 2015 and found most performance and scalability issues around bad architectural… read more

How to track down CPU issues in Node.js

A running application is represented through some state stored in memory and calculations carried out by the CPU. Typically performance problems materialize in these two areas. In my last post I’ve explained garbage collection and how to hunt down memory problems in Node.js. In this blog post, I’ll cover the CPU aspects of Node.js including the event loop and how to track down tasks that consume too much CPU… read more

Dynatrace newsletter: Azure monitoring and VictorOps integration

Welcome to the December edition of the Ruxit newsletter! We hope everyone had a smooth Black Friday with no application down-time. We have some interesting news to share with you! VictorOps incident-notification and management integration Ruxit now gives you the opportunity to notify coworkers about customer-facing performance problems using VictorOps’ feature-rich team- and schedule-management system. Learn more about VictorOps integration with Ruxit Easy Azure Monitoring with the… read more