PHP agent (custom APM agents)


I'm looking for a PHP agent which would work without modifying the code of the application. Until now, I found that there are two community projects (frankkoornstra and philkra). Frank didn't upgrade his solution in the past 5 months which is understandable but concerning me. Phil's version is updated but it seems that it's rather a transaction-oriented monitor which you need to add to your code during development.

Couple questions if someone would be able to answer:

  • While there are community agents, none of those seems to be a general performance monitor, right?
  • How would I be able to add a custom agent to Kibana if I have to choose from the predefined options in the APM menu?
  • Will there be an official PHP agent? As far as I know, PHP's web market share is still huge and there are widely popular CMS running on it. @axw mentioned in this post, that there isn't one, but no mention if there is any aspiration to implement one.

Thank you!

What do you mean by "general performance monitor"? If you mean metrics (CPU, memory etc) then I think you're correct that the two community agents doesn't include that information yet (support for this was only added very recently to the APM Server).

Any agent can just use the intake API of the APM Server. You can read more about the API here:

The APM UI doesn't treat data from a community developed agent any different than data coming from one of the official agents.

I unfortunately can't say much more than what @axw already said. We currently don't have the bandwidth to take on a new agent. It usually requires us to hire at least two new developers to work on it full time and can take up to a year to be production ready. But PHP is definitely on our "watch list" as it's very popular and I personally hope we can offer one in the future.

1 Like

Thank you for the answers @wa7son , I'm really grateful!

What do you mean by "general performance monitor"?

When I watched a video on APM they simply needed to install the APM server, the node.js module, and add a 'serviceName'. After that, metrics were already available in Kibana. When I checked the more popular community agent (philkra), my impression was that I need to encapsulate each transaction one-by-one, but my goal would be something which you simply need to install (require_once) and it "works".

The APM UI doesn't treat data from a community developed agent any different than data coming from one of the official agents.

So if I have data (an index) then it'll be available in Kibana without going through the setup steps?

Ah, I see. Yeah I unfortunately don't know how many - if any - databases etc that the current PHP community agents auto-instrument out of the box or if you'd have to manually create spans etc.

That's correct :+1:

1 Like

This topic was automatically closed 20 days after the last reply. New replies are no longer allowed.