Distributed Profiling, profiling micro-services

By Christophe Dujarric, on Aug 30, 2019

Micro-services? What do you mean?

Let’s define a “service” as an online piece of software, which listens to a network. It can be for instance an instance of a web application, a database, or a reverse-proxy.

A micro-service is a service that has a very limited feature scope. For instance, that could be about handling authentication, managing products inventory or handling newsletter subscriptions.

In some use cases, breaking a monolithic application into a micro-services architecture can support:

  • optimizing server load and end-user perceived performance;
  • customizing and optimizing infrastructure for each service;
  • gaining in development and release agility with teams and workflows dedicated to each micro-service.

Distributed Profiling

Profiling a monolithic application with Blackfire gives developers deep insight in how the PHP code is executed, and how it consumes resources. On top of that, assertions, recommendations and builds enable teams to prevent issues from ever happening in production, rather than fire-fighting issues.

Thanks to the new Distributed Profiling feature of Blackfire, teams working with micro-services architectures can now get all of those benefits as well.

Profiling a service also profiles all HTTP services interacting with it (“sub-profiles” on Blackfire).

Within the Blackfire user interface, all generated profiles and “sub-profiles” are gathered in the same view, so that you can easily navigate from one profile service to the other, and see how they depend of each other in terms of performance.

The UI enables to focus in a single click on a call-graph node from which a sub-request originates (`fopen()` in the screenshot below).

All assertions and recommendations for each profiled HTTP request are also gathered in the same view, making it straight-forward to identify bottlenecks and optimization sources, and which micro-service is impacted.

Distributed profiling is available for our Premium and Enterprise customers.

Happy distributed profiling,

Christophe Dujarric

Christophe is the Chief Product Officer at Blackfire. He's an engineer, but probably one of the least "tech" people in the company. He's wearing many hats, from product management to marketing and sales. He loves the beauty of simple solutions that solve actual problems.