How to use Elastic APM to collect performance for example from zabbix

This subject of APM is very new to me, I would like to know how do I monitor a zabbix application. I see several examples but everything is used an application created by the person himself. I work with monitoring and for me it was just installing an agent on the machine itself and ready, however in this case it looks different, it seems that it is necessary to put the agent inside the source code of the application, is that right?
Please can someone help me, I am stuck in the agent's part, the rest has already been done.

Hi @francieliton_araujo
As far as I know, zabbix is ​​written in C. elastic apm has no agents for this language APM Agents | Elastic. In the case of elastic-apm-agent-java, you start elastic-apm-agent with your application via for example javaagent (Set up the Agent | APM Java Agent Reference [1.x] | Elastic) and in case if the agent supports the technologies you are using, it will send information about the performance of your application (transactions, errors, metrics) to apm-server.
Zabbix is ​​more intended for monitoring network components, infrastructure, servers. In zabbix, binary agents are installed on the servers from which you want to collect metrics (memory, processor, etc.) and depending on pull, push
model data
will be collected in the zabbix server.

Thanks for the answer. I saw here that the application of zabbix in PHP at least the front-end, as I would like to try to use apm, to start I would like to try in one of the applications that I already use are they:
Zabbix
OCS inventory
Nagios
Mysql
.
As all the demonstrations I found were in an application created from scratch, I don't really understand the agent's procedure, so I would like to use some help in some application of the market in production, sorry if I am not very clear, it is because this world of apm it is too young for me.