FrankChen021 / bithon

An observability platform mainly for Java
Apache License 2.0
15 stars 5 forks source link

Remove poolId dimension from thread pool metrics #518

Closed FrankChen021 closed 1 year ago

FrankChen021 commented 1 year ago

This dimension is not visible on the dashboard, and it causes the dashboard not accurate. Also, it causes the storage too large.

    ┌─partition─┬─partCount─┬──rowsCount─┬─────diskSize─┬─onDiskSize─┬─compressedSize─┬─uncompressedSize─┬─compressRatio(%)─┐
25. │ 20230120  │         7 │ 8080953691 │  87084544674 │ 81.10 GiB  │ 80.60 GiB      │ 1.68 TiB         │                5 │
26. │ 20230121  │         6 │ 6868170279 │  74091214766 │ 69.00 GiB  │ 68.57 GiB      │ 1.42 TiB         │                5 │
27. │ 20230122  │         7 │ 7953705827 │  85866575709 │ 79.97 GiB  │ 79.47 GiB      │ 1.65 TiB         │                5 │
28. │ 20230123  │        16 │ 9967004948 │ 107720343044 │ 100.32 GiB │ 99.70 GiB      │ 2.07 TiB         │                5 │
29. │ 20230124  │         5 │ 7534333954 │  81300145355 │ 75.72 GiB  │ 75.24 GiB      │ 1.56 TiB         │                5 │
30. │ 20230125  │        37 │ 8326518399 │  89963909152 │ 83.79 GiB  │ 83.26 GiB      │ 1.72 TiB         │                5 │
31. │ 20230126  │         7 │ 5052918805 │  54608181239 │ 50.86 GiB  │ 50.54 GiB      │ 1.05 TiB         │                5 │
32. │ 20230127  │        32 │ 6191353920 │  66868031937 │ 62.28 GiB  │ 61.89 GiB      │ 1.28 TiB         │                5 │
33. │ 20230128  │         7 │  601001254 │   6420956146 │ 5.98 GiB   │ 5.94 GiB       │ 127.64 GiB       │                5 │
34. │ 20230129  │         1 │  789568866 │   8450805398 │ 7.87 GiB   │ 7.82 GiB       │ 167.74 GiB       │                5 │
35. │ 20230130  │         3 │ 6344125817 │  68627058379 │ 63.91 GiB  │ 63.52 GiB      │ 1.31 TiB         │                5 │
36. │ 20230131  │         9 │ 7325715475 │  79224146915 │ 73.78 GiB  │ 73.33 GiB      │ 1.51 TiB         │                5 │
37. │ 20230201  │        11 │ 5700373864 │  61727701266 │ 57.49 GiB  │ 57.13 GiB      │ 1.18 TiB         │                5 │
38. │ 20230202  │        26 │ 6057940162 │  65612309848 │ 61.11 GiB  │ 60.73 GiB      │ 1.25 TiB         │                5 │
39. │ 20230203  │        11 │ 6514587783 │  70611316337 │ 65.76 GiB  │ 65.36 GiB      │ 1.35 TiB         │                5 │
40. │ 20230204  │        19 │ 6556701780 │  71051800032 │ 66.17 GiB  │ 65.76 GiB      │ 1.35 TiB         │                5 │
41. │ 20230205  │         4 │ 8229548747 │  89431000865 │ 83.29 GiB  │ 82.78 GiB      │ 1.70 TiB         │                5 │
42. │ 20230206  │         8 │ 7122716038 │  77038753863 │ 71.75 GiB  │ 71.30 GiB      │ 1.47 TiB         │                5 │
43. │ 20230207  │        12 │ 6351972517 │  68647204804 │ 63.93 GiB  │ 63.54 GiB      │ 1.31 TiB         │                5 │
44. │ 20230208  │        14 │ 3324211467 │  35615906359 │ 33.17 GiB  │ 32.96 GiB      │ 701.22 GiB       │                5 │
45. │ 20230209  │         7 │ 1825019528 │  19221077977 │ 17.90 GiB  │ 17.79 GiB      │ 385.13 GiB       │                5 │
46. │ 20230210  │        12 │ 2090181620 │  21509187510 │ 20.03 GiB  │ 19.90 GiB      │ 441.33 GiB       │                5 │
47. │ 20230211  │        33 │ 2295181447 │  23291667701 │ 21.69 GiB  │ 21.55 GiB      │ 484.67 GiB       │                4 │
48. │ 20230212  │        17 │ 2420355150 │  24676297911 │ 22.98 GiB  │ 22.83 GiB      │ 511.04 GiB       │                4 │
49. │ 20230213  │        13 │ 2521782727 │  25817142515 │ 24.04 GiB  │ 23.89 GiB      │ 532.37 GiB       │                4 │
50. │ 20230214  │       207 │ 1114332795 │  11440524804 │ 10.65 GiB  │ 10.59 GiB      │ 235.25 GiB       │                4 │
    └───────────┴───────────┴────────────┴──────────────┴────────────┴────────────────┴──────────────────┴──────────────────┘

To solve this problem, we need to

  1. add a new metric poolCount to reflect how many instances of one pool with same executorClazz and poolName
  2. aggregate the metrics for different thread pool instances with same executorClazz and poolName