BreadcrumbHomeResourcesBlog How To Find Microservices Performance Issues March 19, 2020 How to Find Microservices Performance IssuesMicroservicesJava Application DevelopmentWhether it's in development, or transitioning away from the monolith, more developers are working in microservices than ever before. More, developers are increasingly tasked with troubleshooting performance issues in their applications. But how are developers supposed to find microservices performance issues?In this article, we’ll look at the tools and technologies developers can and should use to find microservices performance issues throughout the development pipeline, and why using debugging tools during development is a must for every Java microservices developer.If you want to view the entire Developer's Guide to Microservices Performance white paper, please download by clicking the button below.Download the White PaperTable of ContentsChanging Requirements for DevelopersHow to Find Microservices Performance IssuesAddressing Microservices Performance During DevelopmentAdditional ResourcesTable of Contents1 - Changing Requirements for Developers2 - How to Find Microservices Performance Issues3 - Addressing Microservices Performance During Development4 - Additional ResourcesBack to topChanging Requirements for DevelopersAccording to our latest developer survey, over 63% of Java development professionals are either working in, or in the process of transitioning to microservices.Alongside the widespread adoption of microservices, developers are increasingly tasked with troubleshooting performance issues during development. In fact, that same survey found that over 51% of Java developers are tasked with non-functional performance requirements during development.Conceptually, this isn’t anything new for developers. Even in monolithic applications, developers carry responsibility for how their code performs in production. But, because microservices applications can communicate in unexpected ways, and grow in complexity as they scale, troubleshooting microservices performance during development is crucial to application success.Back to topHow to Find Microservices Performance IssuesAt a symptomatic level, there can be clear warning signs of performance issues within your microservices application: slow services, failing services, and, if the application isn’t engineered resiliently, application failure. Ideally, the developer is looking at application (and individual service) performance throughout the development pipeline with a variety of tools suited to the stage.Application performance monitoring and service mesh solutions provide big benefits during production due to their ability to identify issues that are affecting the application in production. Theycan also provide quick band-aid solutions that help to mitigate those issues. But developers still need tools that can give insight into service performance during development in order to truly address those problems.Microservices Performance MonitoringFor applications already in production, APM solutions like Dynatrace, AppDynamics, or Prometheus can help developers to assess availability and performance of their applications and services. These tools focus on helping companies identify issues that have appeared in their application and mitigate the risk presented by these performance issues.Meanwhile, service mesh solutions like Istio and Linkerd can help to streamline inter-service communication and provide insights into service health, latencies, and request volume. Those insights can also help with data-driven feature rollout via canary or blue/green deployments.Microservices Performance TestingWhile APM solutions and service meshes can help to assess and optimize microservices performance, testing performance in microservices and the combined application is critical to success.Using a combination of tools to load test services (e.g., JMeter), and tools that visualize the resulting data (e.g., Grafana), can help developers to understand how microservices will function, or fail, at load.Back to topAddressing Microservices Performance During DevelopmentAnother critical part of developing performant microservices-based applications is in early stage analysis and optimization.Developers should regularly look at the performance of individual services and the combined application during development (including data store queries and third-party services). By doing so, the developer gets better insight into how their code is interacting with other services and can better contribute to the application at large.This is particularly true as more development teams are adopting the DevOps methodology. Previously, developers never cared about performance as it was “someone else’s job”. With DevOps methodology, engineers are increasingly responsible for the way in which their application is delivered and how well it performs.Profiling Tools for Java MicroservicesProfiling tools like JProfiler, VisualVM, YourKit, or Stackify Prefix can give greater visibility into your Java microservices application. These tools are typically plugged into the test environment to provide the engineers with a tool to address performance issues like memory leaks and threading issues.Try JRebel for FreeBack to topAdditional ResourcesIf you want to learn more about microservices in Java, our microservices resource hub is a great place to start. Or, if you're looking for additional helpful resources, our new Java resources hub is chock full of great material. See the latest webinars, articles, and whitepapers from industry experts by visiting the hub, or by clicking the links below.Recorded WebinarsImproving Performance in Java MicroservicesIgniting Your Digital Transformation With MicroservicesMaking the Move to Microservices for Java ApplicationsMicroservices vs. Mini vs. Monoliths: Winner Takes AllWhite Papers2020 Java Developer Productivity ReportMicroservices Trends in Java Development ReportBlogsWhen to Use Microservices in JavaDeploying Microservices in JavaMicroservices in Java: Survey HighlightsJava Microservices With SpringExploring Microservices With Play and AkkaBuilding Microservices with Spring CloudDocker Microservices in Java2020 Java Microservices ReportTesting Microservices in JavaKubernetes vs. Docker SwarmPopular Java Microservices FrameworksBack to top