tree 73699647a2df319f9cae6d6b3b4906453f31eac7
parent 220d9cbe5a573f9ca35a5e6eaad29e5648736ce1
author RickyMa <rickyma@tencent.com> 1711364603 +0800
committer GitHub <noreply@github.com> 1711364603 +0800
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJmAVn7CRC1aQ7uu5UhlAAAfHQQAH+Gyv8akBHvfeYM2ZFDCiJU
 kRkCWo54jd+DS51gEYiAVmO5kvXfbIH0xUOlc7IThwN8BSSPnGXVdH4UTBbo2hza
 JCXreMJ651fsW2EpMseAOBg8RR23g7vHoExiyHWB5Uvx8Nf1xq+v6HoE9YCqnxGp
 l/yxztcEuaA02uq7+VUXS/uNYBV+P3f7HKCeEm5eTigtSWsfkFiiIIjQx9Ck+Pkv
 4X1kEQqGSrgKhlPwUOZUcOgIbnvkeMImgvgZrFGvleOU+4FP94klu9K/nmeAfNVo
 xRTD2+sV8v4vQ/4gqEXx9tJjAzPM+DTl3zNaRvQwZUeGryAQVYtVM0lUaZtWHd8q
 l55CpKbemZWmV5RMfbzF0wcdV8jQLLqUVJMUG+OjMLG2cwbW3Xc4GLtRPTMDiZyW
 XgrtkY+6AsnZUNZ1L4hwwJFiu3j8UgVttR05mG7Jran//LHldLY5sLonoZj+pjh2
 YIHla9a9dP9mY9jvMsRTslYjTUsRg7KxFuFFX/tUDZRf9+89fJ193vgBjvdNgrf0
 Bg/4POu9NI6UmnF3wRUTBI5xaIL4nP1/TEg5CY1MwzERr1YhPT+IwVG+O/QEwDKv
 489+AXku2rKYwqGf8GcoiIEX2RgMa70xosdcjTitbTN19lyRweiYnVsNQTMSLUGI
 zug1XoqR+9UjhPjXqeKO
 =sxkt
 -----END PGP SIGNATURE-----
 

[#1598] fix(server) Fix inaccurate used_direct_memory_size metric (#1599)

### What changes were proposed in this pull request?

Fix the inaccurate `used_direct_memory_size` metric.
Also `used_direct_memory_size_by_netty` and `used_direct_memory_size_by_grpc_netty` metrics are added to provide more detailed indicators for locating and analyzing in production.

### Why are the changes needed?

Fix https://github.com/apache/incubator-uniffle/issues/1598.

### Does this PR introduce _any_ user-facing change?

No.

### How was this patch tested?

Tested in our env.