Após a reunião com o Bruno, estudei mais um pouco sobre o BCC. Pontos interessantes:
A lista de USDT para Java (e qualquer outra coisa) pode ser obtida pela ferramenta tplist
do bcc
. No Fedora, temos:
517 pontos de prova (USDT) na máquina virtual Java, versão 16: /usr/share/bcc/tools/tplist -l /usr/lib/jvm/java-16-openjdk-16.0.2.0.7-1.rolling.fc34.x86_64/lib/server/libjvm.so
8 pontos de prova para Python, versão 3.9: /usr/share/bcc/tools/tplist -l /usr/lib64/libpython3.9.so.1.0
Para aplicações em Java, é necessário habilitar os pontos de prova com a opção -XX:+ExtendedDTraceProbes
(por exemplo, java -XX:+ExtendedDTraceProbes identifier.Identifier)
Olhando os diversos script em /usr/share/bcc/tools/lib
e os pontos de prova, é relativamente fácil ouvir outros processos.
Como os utilitários BCC para eBPF precisam do número do processo para funcionar, será necessário pensar em alguma de obter o processo igual ou criar um novo processo e esperar o carregamento e ativação do problema BPF.
Uma alternativa é não depender exatamente dessa informação e localizar a aplicação sob teste de outra forma (menos direta).