Erlang Support
To enable your Erlang application to be able to be profiled by the Polar Signals Agent, you need Erlang/OTP 24+ and enable the +JPperf map
flag, which often can be specified via environment flags as well ERL_FLAGS="+JPperf map"
.
Troubleshooting
Below are some situations and how to troubleshoot them. If you've tried these and still haven't been able to resolve the issue, please contact support.
All I can see is memory addresses
First make sure Erlang/OTP 24+ is used and that the +JPperf map
flag is set either directly or via the ERL_FLAGS="+JPperf map"
environment variable.
Then check that the process is successfully writing a perfmap. By default, perfmaps are written to /tmp/perf-<PID>.map
.
On Kubernetes for example this can be checked with:
kubectl exec --namespace <namespace-name> <pod-name> -- ls -la /tmp
For example:
$ kubectl exec -n default erlang-demo -- ls -la /tmp
total 144
drwxrwxrwt 1 root root 4096 Jul 12 08:59 .
drwxr-xr-x 1 root root 4096 Jul 12 08:59 ..
-rw-r--r-- 1 root root 131811 Jul 12 08:59 perf-1.map
In this example the file we're looking for is the perf-1.map
.
For you it should be called something similar.