Java

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 request … 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 and Lambda functions. … read more

OneAgent & Security Gateway release notes for version 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 I … 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 time … 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 Ruxit VM extension! … read more

Java South Africa – 2015 Conference Highlights

I was invited to South Africa to speak at the Java Conference in Cape Town. Due to a short term change in speakers I got the opportunity to not only speak about my most favorite topic – Top Performance Problem Patterns – but also about my second favorite topic: Quality Metrics-Driven Software Delivery. As for our APM Challenge: Here is the current APM Challenge Leaderboard. For the Dynatrace T-Shirt challenge make sure … read more

20 Years of JavaOne: Highlights from a Developer Point of View

Its the 20th anniversary of JavaOne this year. Its the little brother to Oracle World this week but still attracting thousands of Java Developer that want to learn the latest on how Java can help them build all different types of apps (Internet of Things, Mobile, Cloud Apps, Enterprise Apps, …) I am in the lucky situation to present my Deep Dive into Top Java Performance Mistakes in 2015 [CON2809] (you need … read more

The era of servlet containers is over

In Java Land you have servlet containers like Tomcat and Jetty to serve your web applications. But with recent non-Java approaches like Node.js and Go providing their own built-in servers, you might conclude that built-in servers are the way to go for Java as well. This post explores why servlet containers are built the way they are and why there’s little reason to use them, at least not in the way … read more