Merge pull request #51 from rabbitmq/add-zdbbl-metric-demo
Add test & update Grafana dashboard for Erlang distribution buffer busy limit, a.k.a. zdbbl
This commit is contained in:
commit
3783d67230
|
|
@ -497,7 +497,7 @@
|
|||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": null,
|
||||
"description": "Data currently buffered in the output queue of the distribution link\n\nAny values above the 64MB threshold hint to an overloaded distribution\n\nBy default, RabbitMQ sets an upper limit of 128MB for the distribution buffer\n\n* [erlang/otp#2270](https://github.com/erlang/otp/pull/2270)\n* [erl +zdbbl](http://erlang.org/doc/man/erl.html#+zdbbl)\n",
|
||||
"description": "Data currently buffered in the output queue of the distribution link.\n\nAny values above the 64MB threshold hint to an overloaded distribution. This applies to the default `zdbbl` value in RabbitMQ, which is 128MB.\n\n- [RabbitMQ Runtime Tuning - zdbbl](https://www.rabbitmq.com/runtime.html#distribution-buffer)\n- [erl +zdbbl](http://erlang.org/doc/man/erl.html#+zdbbl)",
|
||||
"fill": 0,
|
||||
"fillGradient": 0,
|
||||
"gridPos": {
|
||||
|
|
@ -586,7 +586,7 @@
|
|||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "erlang_vm_dist_node_queue_size * on(instance) group_left(rabbitmq_node, rabbitmq_cluster) rabbitmq_identity_info{rabbitmq_cluster=\"$rabbitmq_cluster\"}",
|
||||
"expr": "erlang_vm_dist_node_queue_size_bytes * on(instance) group_left(rabbitmq_node, rabbitmq_cluster) rabbitmq_identity_info{rabbitmq_cluster=\"$rabbitmq_cluster\"}",
|
||||
"format": "time_series",
|
||||
"interval": "",
|
||||
"intervalFactor": 1,
|
||||
|
|
|
|||
|
|
@ -218,6 +218,7 @@
|
|||
| erlang_vm_dist_proc_reductions | The number of reductions executed by the process. |
|
||||
| erlang_vm_dist_proc_status | The current status of the distribution process. The status is represented as a numerical value where `exiting=1', `suspended=2', `runnable=3', `garbage_collecting=4', `running=5' and `waiting=6'. |
|
||||
| erlang_vm_dist_node_state | The current state of the distribution link. The state is represented as a numerical value where `pending=1', `up_pending=2' and `up=3'. |
|
||||
| erlang_vm_dist_node_queue_size_bytes | The number of bytes in the output distribution queue. This queue sits between the Erlang code and the port driver. |
|
||||
| erlang_vm_memory_atom_bytes_total | The total amount of memory currently allocated for atoms. This memory is part of the memory presented as system memory. |
|
||||
| erlang_vm_memory_bytes_total | The total amount of memory currently allocated. This is the same as the sum of the memory size for processes and system. |
|
||||
| erlang_vm_memory_dets_tables | Erlang VM DETS Tables count. |
|
||||
|
|
|
|||
|
|
@ -39,10 +39,12 @@ groups() ->
|
|||
{config_path, [], generic_tests()},
|
||||
{config_port, [], generic_tests()},
|
||||
{aggregated_metrics, [], [
|
||||
aggregated_metrics_test
|
||||
aggregated_metrics_test,
|
||||
specific_erlang_metrics_present_test
|
||||
]},
|
||||
{per_object_metrics, [], [
|
||||
per_object_metrics_test
|
||||
per_object_metrics_test,
|
||||
specific_erlang_metrics_present_test
|
||||
]},
|
||||
{commercial, [], [
|
||||
build_info_product_test
|
||||
|
|
@ -269,6 +271,10 @@ identity_info_test(Config) ->
|
|||
?assertEqual(match, re:run(Body, "rabbitmq_node=", [{capture, none}])),
|
||||
?assertEqual(match, re:run(Body, "rabbitmq_cluster=", [{capture, none}])).
|
||||
|
||||
specific_erlang_metrics_present_test(Config) ->
|
||||
{_Headers, Body} = http_get_with_pal(Config, [], 200),
|
||||
?assertEqual(match, re:run(Body, "^erlang_vm_dist_node_queue_size_bytes{", [{capture, none}, multiline])).
|
||||
|
||||
http_get(Config, ReqHeaders, CodeExp) ->
|
||||
Path = proplists:get_value(prometheus_path, Config, "/metrics"),
|
||||
Port = proplists:get_value(prometheus_port, Config, 15692),
|
||||
|
|
|
|||
Loading…
Reference in New Issue