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.
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/PKG-INFO +1 -1
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/sbcli_dev.egg-info/PKG-INFO +1 -1
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/env_var +1 -1
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/prometheus.yml +5 -3
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/capacity_and_stats_collector.py +11 -29
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/lvol_stat_collector.py +63 -6
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/spdk_http_proxy_server.py +2 -2
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/blueprints/web_api_metrics.py +5 -1
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/README.md +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/pyproject.toml +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/requirements.txt +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/sbcli_dev.egg-info/SOURCES.txt +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/sbcli_dev.egg-info/dependency_links.txt +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/sbcli_dev.egg-info/entry_points.txt +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/sbcli_dev.egg-info/requires.txt +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/sbcli_dev.egg-info/top_level.txt +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/setup.cfg +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/setup.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_cli/__init__.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_cli/cli.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_cli/clibase.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_cli/main.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/__init__.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/cluster_ops.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/cnode_client.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/constants.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/controllers/__init__.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/controllers/caching_node_controller.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/controllers/cluster_events.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/controllers/device_controller.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/controllers/device_events.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/controllers/events_controller.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/controllers/health_controller.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/controllers/lvol_controller.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/controllers/lvol_events.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/controllers/mgmt_events.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/controllers/pool_controller.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/controllers/pool_events.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/controllers/snapshot_controller.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/controllers/snapshot_events.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/controllers/storage_events.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/controllers/tasks_controller.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/controllers/tasks_events.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/controllers/tcp_ports_events.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/db_controller.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/distr_controller.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/mgmt_node_ops.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/models/__init__.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/models/base_model.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/models/caching_node.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/models/cluster.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/models/deployer.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/models/events.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/models/iface.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/models/job_schedule.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/models/lvol_model.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/models/mgmt_node.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/models/nvme_device.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/models/pool.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/models/port_stat.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/models/snapshot.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/models/stats.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/models/storage_node.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/pci_utils.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/rpc_client.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/__init__.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/config_docker.sh +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/dashboard.yml +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/dashboards/cluster.json +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/dashboards/devices.json +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/dashboards/lvols.json +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/dashboards/node-exporter.json +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/dashboards/nodes.json +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/dashboards/pools.json +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/datasource.yml +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/db_config_double.sh +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/db_config_single.sh +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/deploy_fdb.sh +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/deploy_stack.sh +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/docker-compose-swarm.yml +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/foundation.yml +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/haproxy.cfg +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/install_deps.sh +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/objstore.yml +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/prepare_fdb.sh +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/run_ssh.sh +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/set_db_config.sh +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/stack_deploy_wait.sh +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/__init__.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/cached_lvol_stat_collector.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/caching_node_monitor.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/cap_monitor.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/device_monitor.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/health_check_service.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/install_service.sh +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/lvol_monitor.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/main_distr_event_collector.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/mgmt_node_monitor.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/new_device_discovery.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/remove_service.sh +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/service_template.service +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/spdk/__init__.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/spdk/client.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/spdk_stats_collector.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/storage_node_monitor.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/tasks_runner_failed_migration.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/tasks_runner_migration.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/tasks_runner_new_dev_migration.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/tasks_runner_node_add.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/tasks_runner_restart.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/shell_utils.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/snode_client.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/storage_node_ops.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/test/test_utils.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/utils.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/workers/cleanup_foundationdb.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/README.md +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/__init__.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/app.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/auth_middleware.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/blueprints/__init__.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/blueprints/caching_node_ops.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/blueprints/caching_node_ops_k8s.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/blueprints/node_api_basic.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/blueprints/node_api_caching_docker.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/blueprints/node_api_caching_ks.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/blueprints/snode_ops.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/blueprints/snode_ops_k8s.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/blueprints/swagger_ui_blueprint.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/blueprints/web_api_caching_node.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/blueprints/web_api_cluster.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/blueprints/web_api_deployer.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/blueprints/web_api_device.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/blueprints/web_api_lvol.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/blueprints/web_api_mgmt_node.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/blueprints/web_api_pool.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/blueprints/web_api_snapshot.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/blueprints/web_api_storage_node.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/node_utils.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/node_utils_k8s.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/node_webapp.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/requirements.txt +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/static/SimplyBlock-API.postman_collection.json +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/static/delete.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/static/deploy.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/static/deploy_cnode.yaml +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/static/deploy_spdk.yaml +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/static/is_up.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/static/list_deps.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/static/rpac.yaml +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/static/swagger.yaml +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/static/tst.py +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/templates/caching_deploy_spdk.yaml.j2 +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/templates/storage_deploy_spdk.yaml.j2 +0 -0
- {sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/utils.py +0 -0
|
@@ -4,10 +4,12 @@ global:
|
|
|
4
4
|
monitor: 'codelab-monitor'
|
|
5
5
|
|
|
6
6
|
scrape_configs:
|
|
7
|
-
- job_name: '
|
|
7
|
+
- job_name: 'cluster_metrics'
|
|
8
8
|
static_configs:
|
|
9
|
-
- targets: ['
|
|
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:
|
{sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/capacity_and_stats_collector.py
RENAMED
|
@@ -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(),
|
|
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(),
|
|
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(),
|
|
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(),
|
|
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(),
|
|
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(),
|
|
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"
|
|
188
|
-
|
|
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', "
|
|
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', "
|
|
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
|
-
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/controllers/caching_node_controller.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2
RENAMED
|
File without changes
|
|
File without changes
|
{sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/clean_local_storage_deploy.sh
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/dashboards/node-exporter.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/cached_lvol_stat_collector.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/main_distr_event_collector.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/tasks_runner_failed_migration.py
RENAMED
|
File without changes
|
|
File without changes
|
{sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_core/services/tasks_runner_new_dev_migration.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sbcli_dev-17.2.6 → sbcli_dev-17.2.8}/simplyblock_web/static/SimplyBlock-API.postman_collection.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|