Closed yangwenwei666 closed 1 year ago
dd-java-agent 本身集成了 jmxfetch ,但是默认的线程指标只有一个:jvm.thread_count
这时候 需要自定义配置文件和指标。
首先需要配置文件:
/usr/local/ddtrace/conf.d
目录随意(注意权限),下面用的着。guance.d/conf.yaml
, 文件必须是 yaml 格式。java服务开启jmx,需要的启动参数为:
-Ddd.jmxfetch.enabled=true\
-Dcom.sun.management.jmxremote.host=127.0.0.1 \
-Dcom.sun.manaagement.jmxremote.port=9012 \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.authenticate=false \
ddagent 需要增加启动参数:此处的配置对应上文的目录和文件
-javaagent:/usr/local/dd-java-agent.jar \
-Ddd.jmxfetch.config.dir="/usr/local/ddtrace/conf.d/" \
-Ddd.jmxfetch.config="guance.d/conf.yaml" \
我的服务名为 tmall.jar 合并启动参数为:
java -javaagent:/usr/local/dd-java-agent.jar \
-Ddd.trace.debug=true\
-Ddd.jmxfetch.enabled=true\
-Dcom.sun.management.jmxremote.host=127.0.0.1 \
-Dcom.sun.manaagement.jmxremote.port=9012 \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.authenticate=false \
-Ddd.jmxfetch.config.dir="/usr/local/ddtrace/conf.d/" \
-Ddd.jmxfetch.config="guance.d/conf.yaml" \
-jar tmall.jar
conf.yaml 配置文件如下:
init_config:
is_jmx: true
collect_default_metrics: true
instances:
- jvm_direct: true
host: localhost
port: 9012
conf:
- include:
domain: java.lang
type: Threading
attribute:
TotalStartedThreadCount:
alias: jvm.total_thread_count
metric_type: gauge
PeakThreadCount:
alias: jvm.peak_thread_count
metric_type: gauge
DaemonThreadCount:
alias: jvm.daemon_thread_count
metric_type: gauge
注意:java 服务必须开启 jmx 端口。
这种场景只适合单实例场景,对于多实例场景可能不适用了,任何多出来的应用端口,对于部署来说都是致命的。看看是否可以探索其他方式进行指标输出。
这种场景只适合单实例场景,对于多实例场景可能不适用了,任何多出来的应用端口,对于部署来说都是致命的。看看是否可以探索其他方式进行指标输出。
后面我想了下,其实在云原生环境下,我们可以通过annotation
来配置prometheus的采集,避免了端口冲突问题。可以close了。
目前支持的如下:![image](https://user-images.githubusercontent.com/34938379/216304435-c6087712-0cc1-47a2-acfb-9b023aba5300.png)
期望目标: