sbcli-dev 17.2.6__tar.gz → 17.2.8__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/PKG-INFO +1 -1
  2. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/sbcli_dev.egg-info/PKG-INFO +1 -1
  3. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/env_var +1 -1
  4. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/prometheus.yml +5 -3
  5. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/capacity_and_stats_collector.py +11 -29
  6. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/lvol_stat_collector.py +63 -6
  7. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/spdk_http_proxy_server.py +2 -2
  8. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/blueprints/web_api_metrics.py +5 -1
  9. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/README.md +0 -0
  10. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/pyproject.toml +0 -0
  11. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/requirements.txt +0 -0
  12. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/sbcli_dev.egg-info/SOURCES.txt +0 -0
  13. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/sbcli_dev.egg-info/dependency_links.txt +0 -0
  14. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/sbcli_dev.egg-info/entry_points.txt +0 -0
  15. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/sbcli_dev.egg-info/requires.txt +0 -0
  16. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/sbcli_dev.egg-info/top_level.txt +0 -0
  17. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/setup.cfg +0 -0
  18. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/setup.py +0 -0
  19. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_cli/__init__.py +0 -0
  20. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_cli/cli.py +0 -0
  21. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_cli/clibase.py +0 -0
  22. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_cli/main.py +0 -0
  23. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/__init__.py +0 -0
  24. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/cluster_ops.py +0 -0
  25. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/cnode_client.py +0 -0
  26. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/constants.py +0 -0
  27. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/controllers/__init__.py +0 -0
  28. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/controllers/caching_node_controller.py +0 -0
  29. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/controllers/cluster_events.py +0 -0
  30. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/controllers/device_controller.py +0 -0
  31. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/controllers/device_events.py +0 -0
  32. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/controllers/events_controller.py +0 -0
  33. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/controllers/health_controller.py +0 -0
  34. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/controllers/lvol_controller.py +0 -0
  35. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/controllers/lvol_events.py +0 -0
  36. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/controllers/mgmt_events.py +0 -0
  37. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/controllers/pool_controller.py +0 -0
  38. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/controllers/pool_events.py +0 -0
  39. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/controllers/snapshot_controller.py +0 -0
  40. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/controllers/snapshot_events.py +0 -0
  41. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/controllers/storage_events.py +0 -0
  42. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/controllers/tasks_controller.py +0 -0
  43. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/controllers/tasks_events.py +0 -0
  44. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/controllers/tcp_ports_events.py +0 -0
  45. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/db_controller.py +0 -0
  46. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/distr_controller.py +0 -0
  47. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/mgmt_node_ops.py +0 -0
  48. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/models/__init__.py +0 -0
  49. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/models/base_model.py +0 -0
  50. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/models/caching_node.py +0 -0
  51. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/models/cluster.py +0 -0
  52. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/models/deployer.py +0 -0
  53. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/models/events.py +0 -0
  54. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/models/iface.py +0 -0
  55. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/models/job_schedule.py +0 -0
  56. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/models/lvol_model.py +0 -0
  57. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/models/mgmt_node.py +0 -0
  58. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/models/nvme_device.py +0 -0
  59. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/models/pool.py +0 -0
  60. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/models/port_stat.py +0 -0
  61. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/models/snapshot.py +0 -0
  62. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/models/stats.py +0 -0
  63. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/models/storage_node.py +0 -0
  64. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/pci_utils.py +0 -0
  65. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/rpc_client.py +0 -0
  66. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/__init__.py +0 -0
  67. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
  68. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
  69. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
  70. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/config_docker.sh +0 -0
  71. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/dashboard.yml +0 -0
  72. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/dashboards/cluster.json +0 -0
  73. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/dashboards/devices.json +0 -0
  74. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/dashboards/lvols.json +0 -0
  75. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/dashboards/node-exporter.json +0 -0
  76. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/dashboards/nodes.json +0 -0
  77. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/dashboards/pools.json +0 -0
  78. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/datasource.yml +0 -0
  79. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/db_config_double.sh +0 -0
  80. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/db_config_single.sh +0 -0
  81. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/deploy_fdb.sh +0 -0
  82. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/deploy_stack.sh +0 -0
  83. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +0 -0
  84. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/docker-compose-swarm.yml +0 -0
  85. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/foundation.yml +0 -0
  86. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/haproxy.cfg +0 -0
  87. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/install_deps.sh +0 -0
  88. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/objstore.yml +0 -0
  89. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/prepare_fdb.sh +0 -0
  90. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/run_ssh.sh +0 -0
  91. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/set_db_config.sh +0 -0
  92. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/stack_deploy_wait.sh +0 -0
  93. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/__init__.py +0 -0
  94. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/cached_lvol_stat_collector.py +0 -0
  95. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/caching_node_monitor.py +0 -0
  96. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/cap_monitor.py +0 -0
  97. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/device_monitor.py +0 -0
  98. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/health_check_service.py +0 -0
  99. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/install_service.sh +0 -0
  100. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/lvol_monitor.py +0 -0
  101. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/main_distr_event_collector.py +0 -0
  102. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/mgmt_node_monitor.py +0 -0
  103. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/new_device_discovery.py +0 -0
  104. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/remove_service.sh +0 -0
  105. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/service_template.service +0 -0
  106. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/spdk/__init__.py +0 -0
  107. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/spdk/client.py +0 -0
  108. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/spdk_stats_collector.py +0 -0
  109. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/storage_node_monitor.py +0 -0
  110. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/tasks_runner_failed_migration.py +0 -0
  111. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/tasks_runner_migration.py +0 -0
  112. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/tasks_runner_new_dev_migration.py +0 -0
  113. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/tasks_runner_node_add.py +0 -0
  114. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/tasks_runner_restart.py +0 -0
  115. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/shell_utils.py +0 -0
  116. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/snode_client.py +0 -0
  117. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/storage_node_ops.py +0 -0
  118. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/test/test_utils.py +0 -0
  119. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/utils.py +0 -0
  120. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/workers/cleanup_foundationdb.py +0 -0
  121. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/README.md +0 -0
  122. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/__init__.py +0 -0
  123. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/app.py +0 -0
  124. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/auth_middleware.py +0 -0
  125. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/blueprints/__init__.py +0 -0
  126. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/blueprints/caching_node_ops.py +0 -0
  127. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/blueprints/caching_node_ops_k8s.py +0 -0
  128. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/blueprints/node_api_basic.py +0 -0
  129. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/blueprints/node_api_caching_docker.py +0 -0
  130. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/blueprints/node_api_caching_ks.py +0 -0
  131. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/blueprints/snode_ops.py +0 -0
  132. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/blueprints/snode_ops_k8s.py +0 -0
  133. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/blueprints/swagger_ui_blueprint.py +0 -0
  134. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/blueprints/web_api_caching_node.py +0 -0
  135. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/blueprints/web_api_cluster.py +0 -0
  136. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/blueprints/web_api_deployer.py +0 -0
  137. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/blueprints/web_api_device.py +0 -0
  138. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/blueprints/web_api_lvol.py +0 -0
  139. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/blueprints/web_api_mgmt_node.py +0 -0
  140. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/blueprints/web_api_pool.py +0 -0
  141. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/blueprints/web_api_snapshot.py +0 -0
  142. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/blueprints/web_api_storage_node.py +0 -0
  143. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/node_utils.py +0 -0
  144. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/node_utils_k8s.py +0 -0
  145. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/node_webapp.py +0 -0
  146. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/requirements.txt +0 -0
  147. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/static/SimplyBlock-API.postman_collection.json +0 -0
  148. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/static/delete.py +0 -0
  149. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/static/deploy.py +0 -0
  150. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/static/deploy_cnode.yaml +0 -0
  151. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/static/deploy_spdk.yaml +0 -0
  152. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/static/is_up.py +0 -0
  153. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/static/list_deps.py +0 -0
  154. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/static/rpac.yaml +0 -0
  155. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/static/swagger.yaml +0 -0
  156. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/static/tst.py +0 -0
  157. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/templates/caching_deploy_spdk.yaml.j2 +0 -0
  158. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/templates/storage_deploy_spdk.yaml.j2 +0 -0
  159. {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sbcli-dev
3
- Version: 17.2.6
3
+ Version: 17.2.8
4
4
  Summary: CLI for managing SimplyBlock cluster
5
5
  Home-page: https://www.simplyblock.io/
6
6
  Author: Hamdy
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sbcli-dev
3
- Version: 17.2.6
3
+ Version: 17.2.8
4
4
  Summary: CLI for managing SimplyBlock cluster
5
5
  Home-page: https://www.simplyblock.io/
6
6
  Author: Hamdy
@@ -1,5 +1,5 @@
1
1
  SIMPLY_BLOCK_COMMAND_NAME=sbcli-dev
2
- SIMPLY_BLOCK_VERSION=17.2.6
2
+ SIMPLY_BLOCK_VERSION=17.2.8
3
3
 
4
4
  SIMPLY_BLOCK_DOCKER_IMAGE=public.ecr.aws/simply-block/simplyblock:main
5
5
  SIMPLY_BLOCK_SPDK_ULTRA_IMAGE=public.ecr.aws/simply-block/ultra:main-latest
@@ -4,10 +4,12 @@ global:
4
4
  monitor: 'codelab-monitor'
5
5
 
6
6
  scrape_configs:
7
- - job_name: 'metricsgateway'
7
+ - job_name: 'cluster_metrics'
8
8
  static_configs:
9
- - targets: ['pushgateway:9091']
10
-
9
+ - targets: ['HAProxy:80']
10
+ labels:
11
+ metrics_path: '/cluster/metrics'
12
+
11
13
  - job_name: 'node'
12
14
  dns_sd_configs:
13
15
  - names:
@@ -92,11 +92,11 @@ def add_device_stats(cl, device, capacity_dict, stats_dict):
92
92
  for g in ng:
93
93
  v = g.replace("device_", "")
94
94
  if v in data:
95
- ng[g].labels(cluster=cl.get_id(), node_ip=node.get_id(), device_id=device.get_id()).set(data[v])
95
+ ng[g].labels(cluster=cl.get_id(), snode=node.get_id(), device_id=device.get_id()).set(data[v])
96
96
  elif v == "status_code":
97
- ng[g].labels(cluster=cl.get_id(), node_ip=node.get_id(), device_id=device.get_id()).set(device.get_status_code())
97
+ ng[g].labels(cluster=cl.get_id(), snode=node.get_id(), device_id=device.get_id()).set(device.get_status_code())
98
98
  elif v == "health_check":
99
- ng[g].labels(cluster=cl.get_id(), node_ip=node.get_id(), device_id=device.get_id()).set(device.health_check)
99
+ ng[g].labels(cluster=cl.get_id(), snode=node.get_id(), device_id=device.get_id()).set(device.health_check)
100
100
 
101
101
 
102
102
  return stat_obj
@@ -137,11 +137,11 @@ def add_node_stats(node, records):
137
137
  for g in ng:
138
138
  v = g.replace("snode_", "")
139
139
  if v in data:
140
- ng[g].labels(cluster=cl.get_id(), node_ip=node.get_id()).set(data[v])
140
+ ng[g].labels(cluster=cl.get_id(), snode=node.get_id()).set(data[v])
141
141
  elif v == "status_code":
142
- ng[g].labels(cluster=cl.get_id(), node_ip=node.get_id()).set(node.get_status_code())
142
+ ng[g].labels(cluster=cl.get_id(), snode=node.get_id()).set(node.get_status_code())
143
143
  elif v == "health_check":
144
- ng[g].labels(cluster=cl.get_id(), node_ip=node.get_id()).set(node.health_check)
144
+ ng[g].labels(cluster=cl.get_id(), snode=node.get_id()).set(node.health_check)
145
145
 
146
146
  return stat_obj
147
147
 
@@ -183,9 +183,9 @@ def add_cluster_stats(cl, records):
183
183
  return stat_obj
184
184
 
185
185
 
186
- if os.path.exists(PROMETHEUS_MULTIPROC_DIR):
187
- shell_utils.run_command(f"rm -rf {PROMETHEUS_MULTIPROC_DIR}")
188
- os.makedirs(PROMETHEUS_MULTIPROC_DIR, exist_ok=True)
186
+ if not os.path.exists(PROMETHEUS_MULTIPROC_DIR):
187
+ shell_utils.run_command(f"mkdir -p {PROMETHEUS_MULTIPROC_DIR}")
188
+
189
189
 
190
190
  registry = CollectorRegistry()
191
191
  multiprocess.MultiProcessCollector(registry)
@@ -224,37 +224,19 @@ io_stats_keys = [
224
224
  ng = {}
225
225
  cg = {}
226
226
  dg = {}
227
- lg = {}
228
- pg = {}
229
227
 
230
228
  def get_device_metrics():
231
229
  global dg
232
230
  if not dg:
233
- labels = ['cluster', "node_ip", "device_id"]
231
+ labels = ['cluster', "snode", "device_id"]
234
232
  for k in io_stats_keys + ["status_code", "health_check"]:
235
233
  dg["device_" + k] = Gauge("device_" + k, "device_" + k, labelnames=labels, registry=registry)
236
234
  return dg
237
235
 
238
- def get_lvol_metrics():
239
- global lg
240
- if not lg:
241
- labels = ['cluster', "pool", "lvol"]
242
- for k in io_stats_keys + ["status_code", "health_check"]:
243
- lg["lvol_" + k] = Gauge("lvol_" + k, "lvol_" + k, labelnames=labels, registry=registry)
244
- return lg
245
-
246
- def get_pool_metrics():
247
- global pg
248
- if not pg:
249
- labels = ['cluster', "pool", "name"]
250
- for k in io_stats_keys + ["status_code", "health_check"]:
251
- pg["pool_" + k] = Gauge("pool_" + k, "pool_" + k, labelnames=labels, registry=registry)
252
- return pg
253
-
254
236
  def get_snode_metrics():
255
237
  global ng
256
238
  if not ng:
257
- labels = ['cluster', "node_ip"]
239
+ labels = ['cluster', "snode"]
258
240
  for k in io_stats_keys + ["status_code", "health_check"]:
259
241
  ng["snode_" + k] = Gauge("snode_" + k, "snode_" + k, labelnames=labels, registry=registry)
260
242
  return ng
@@ -1,20 +1,80 @@
1
1
  # coding=utf-8
2
2
  import time
3
+ import os
3
4
 
4
- from simplyblock_core import constants, db_controller, utils
5
+ from simplyblock_core import constants, db_controller, utils, shell_utils
5
6
  from simplyblock_core.controllers import lvol_events
6
7
  from simplyblock_core.models.cluster import Cluster
7
8
  from simplyblock_core.models.lvol_model import LVol
8
9
  from simplyblock_core.models.stats import LVolStatObject, PoolStatObject
9
10
  from simplyblock_core.models.storage_node import StorageNode
10
11
  from simplyblock_core.rpc_client import RPCClient
11
- from simplyblock_core.services.capacity_and_stats_collector import get_lvol_metrics, get_pool_metrics
12
+ PROMETHEUS_MULTIPROC_DIR = constants.PROMETHEUS_MULTIPROC_DIR
13
+ os.environ["PROMETHEUS_MULTIPROC_DIR"] = PROMETHEUS_MULTIPROC_DIR
14
+ from prometheus_client import Gauge, CollectorRegistry, multiprocess
15
+
16
+ if not os.path.exists(PROMETHEUS_MULTIPROC_DIR):
17
+ shell_utils.run_command(f"mkdir -p {PROMETHEUS_MULTIPROC_DIR}")
12
18
 
13
- logger = utils.get_logger(__name__)
14
19
 
20
+ logger = utils.get_logger(__name__)
15
21
 
16
22
  last_object_record = {}
17
23
 
24
+ registry = CollectorRegistry()
25
+ multiprocess.MultiProcessCollector(registry)
26
+
27
+ io_stats_keys = [
28
+ "date",
29
+ "read_bytes",
30
+ "read_bytes_ps",
31
+ "read_io_ps",
32
+ "read_io",
33
+ "read_latency_ps",
34
+ "write_bytes",
35
+ "write_bytes_ps",
36
+ "write_io",
37
+ "write_io_ps",
38
+ "write_latency_ps",
39
+ "size_total",
40
+ "size_prov",
41
+ "size_used",
42
+ "size_free",
43
+ "size_util",
44
+ "size_prov_util",
45
+ "read_latency_ticks",
46
+ "record_duration",
47
+ "record_end_time",
48
+ "record_start_time",
49
+ "unmap_bytes",
50
+ "unmap_bytes_ps",
51
+ "unmap_io",
52
+ "unmap_io_ps",
53
+ "unmap_latency_ps",
54
+ "unmap_latency_ticks",
55
+ "write_latency_ticks",
56
+ ]
57
+
58
+ lg = {}
59
+ pg = {}
60
+
61
+
62
+ def get_lvol_metrics():
63
+ global lg
64
+ if not lg:
65
+ labels = ['cluster', "pool", "lvol"]
66
+ for k in io_stats_keys + ["status_code", "health_check"]:
67
+ lg["lvol_" + k] = Gauge("lvol_" + k, "lvol_" + k, labelnames=labels, registry=registry)
68
+ return lg
69
+
70
+ def get_pool_metrics():
71
+ global pg
72
+ if not pg:
73
+ labels = ['cluster', "pool", "name"]
74
+ for k in io_stats_keys + ["status_code"]:
75
+ pg["pool_" + k] = Gauge("pool_" + k, "pool_" + k, labelnames=labels, registry=registry)
76
+ return pg
77
+
18
78
 
19
79
  def sum_stats(stats_list):
20
80
  if not stats_list or len(stats_list) == 0:
@@ -193,9 +253,6 @@ def add_pool_stats(pool, records):
193
253
  ng[g].labels(cluster=cluster.get_id(), name=pool.pool_name, pool=pool.get_id()).set(data[v])
194
254
  elif v == "status_code":
195
255
  ng[g].labels(cluster=cluster.get_id(), name=pool.pool_name, pool=pool.get_id()).set(pool.get_status_code())
196
- elif v == "health_check":
197
- ng[g].labels(cluster=cluster.get_id(), name=pool.pool_name, pool=pool.get_id()).set(pool.health_check)
198
-
199
256
 
200
257
  return stat_obj
201
258
 
@@ -50,7 +50,7 @@ def rpc_call(req):
50
50
  response = None
51
51
 
52
52
  while not closed:
53
- newdata = sock.recv(1024)
53
+ newdata = sock.recv(1024*1024*1024)
54
54
  if newdata == b'':
55
55
  closed = True
56
56
  buf += newdata.decode('ascii')
@@ -151,7 +151,7 @@ def run_server(host, port, user, password, is_threading_enabled=False):
151
151
 
152
152
  TIMEOUT = int(get_env_var("TIMEOUT", is_required=False, default=60*5))
153
153
  is_threading_enabled = get_env_var("MULTI_THREADING_ENABLED", is_required=False, default=False)
154
- server_ip = get_env_var("SERVER_IP", is_required=True)
154
+ server_ip = get_env_var("SERVER_IP", is_required=True, default="")
155
155
  rpc_port = get_env_var("RPC_PORT", is_required=True)
156
156
  rpc_username = get_env_var("RPC_USERNAME", is_required=True)
157
157
  rpc_password = get_env_var("RPC_PASSWORD", is_required=True)
@@ -5,7 +5,7 @@ import logging
5
5
  import os
6
6
 
7
7
  from flask import Blueprint
8
- from simplyblock_core import constants
8
+ from simplyblock_core import constants, shell_utils
9
9
 
10
10
  PROMETHEUS_MULTIPROC_DIR = constants.PROMETHEUS_MULTIPROC_DIR
11
11
  os.environ["PROMETHEUS_MULTIPROC_DIR"] = PROMETHEUS_MULTIPROC_DIR
@@ -15,6 +15,10 @@ from flask import Response
15
15
  from prometheus_client import CollectorRegistry
16
16
 
17
17
 
18
+ if not os.path.exists(PROMETHEUS_MULTIPROC_DIR):
19
+ shell_utils.run_command(f"mkdir -p {PROMETHEUS_MULTIPROC_DIR}")
20
+
21
+
18
22
  logger = logging.getLogger(__name__)
19
23
 
20
24
  bp = Blueprint("metrics", __name__)
File without changes
File without changes
File without changes
File without changes
File without changes