service-capacity-modeling 0.3.49__tar.gz → 0.3.51__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.

Potentially problematic release.


This version of service-capacity-modeling might be problematic. Click here for more details.

Files changed (95) hide show
  1. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/PKG-INFO +1 -1
  2. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/models/common.py +12 -3
  3. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/models/org/netflix/evcache.py +0 -3
  4. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling.egg-info/PKG-INFO +1 -1
  5. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/tests/test_common.py +5 -5
  6. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/LICENSE +0 -0
  7. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/README.md +0 -0
  8. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/__init__.py +0 -0
  9. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/capacity_planner.py +0 -0
  10. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/hardware/__init__.py +0 -0
  11. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/hardware/profiles/__init__.py +0 -0
  12. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/hardware/profiles/pricing/aws/3yr-reserved_ec2.json +0 -0
  13. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/hardware/profiles/pricing/aws/3yr-reserved_zz-overrides.json +0 -0
  14. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/hardware/profiles/profiles.txt +0 -0
  15. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c5.json +0 -0
  16. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c5a.json +0 -0
  17. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c5d.json +0 -0
  18. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c5n.json +0 -0
  19. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c6a.json +0 -0
  20. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c6i.json +0 -0
  21. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c6id.json +0 -0
  22. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c7a.json +0 -0
  23. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c7i.json +0 -0
  24. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m4.json +0 -0
  25. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m5.json +0 -0
  26. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m5n.json +0 -0
  27. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m6a.json +0 -0
  28. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m6i.json +0 -0
  29. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m6id.json +0 -0
  30. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m6idn.json +0 -0
  31. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m6in.json +0 -0
  32. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m7a.json +0 -0
  33. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m7i.json +0 -0
  34. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r4.json +0 -0
  35. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r5.json +0 -0
  36. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r5n.json +0 -0
  37. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r6a.json +0 -0
  38. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r6i.json +0 -0
  39. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r6id.json +0 -0
  40. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r6idn.json +0 -0
  41. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r6in.json +0 -0
  42. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r7a.json +0 -0
  43. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r7i.json +0 -0
  44. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/hardware/profiles/shapes/aws/manual_drives.json +0 -0
  45. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/hardware/profiles/shapes/aws/manual_instances.json +0 -0
  46. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/hardware/profiles/shapes/aws/manual_services.json +0 -0
  47. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/interface.py +0 -0
  48. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/models/__init__.py +0 -0
  49. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/models/headroom_strategy.py +0 -0
  50. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/models/org/__init__.py +0 -0
  51. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/models/org/netflix/__init__.py +0 -0
  52. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/models/org/netflix/aurora.py +0 -0
  53. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/models/org/netflix/cassandra.py +0 -0
  54. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/models/org/netflix/counter.py +0 -0
  55. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/models/org/netflix/crdb.py +0 -0
  56. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/models/org/netflix/ddb.py +0 -0
  57. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/models/org/netflix/elasticsearch.py +0 -0
  58. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/models/org/netflix/entity.py +0 -0
  59. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/models/org/netflix/graphkv.py +0 -0
  60. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/models/org/netflix/iso_date_math.py +0 -0
  61. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/models/org/netflix/kafka.py +0 -0
  62. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/models/org/netflix/key_value.py +0 -0
  63. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/models/org/netflix/postgres.py +0 -0
  64. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/models/org/netflix/rds.py +0 -0
  65. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/models/org/netflix/stateless_java.py +0 -0
  66. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/models/org/netflix/time_series.py +0 -0
  67. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/models/org/netflix/time_series_config.py +0 -0
  68. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/models/org/netflix/wal.py +0 -0
  69. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/models/org/netflix/zookeeper.py +0 -0
  70. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/models/utils.py +0 -0
  71. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/stats.py +0 -0
  72. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/tools/__init__.py +0 -0
  73. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/tools/auto_shape.py +0 -0
  74. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/tools/fetch_pricing.py +0 -0
  75. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/tools/generate_missing.py +0 -0
  76. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling/tools/instance_families.py +0 -0
  77. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling.egg-info/SOURCES.txt +0 -0
  78. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling.egg-info/dependency_links.txt +0 -0
  79. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling.egg-info/entry_points.txt +0 -0
  80. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling.egg-info/requires.txt +0 -0
  81. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/service_capacity_modeling.egg-info/top_level.txt +0 -0
  82. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/setup.cfg +0 -0
  83. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/setup.py +0 -0
  84. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/tests/test_arguments.py +0 -0
  85. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/tests/test_buffers.py +0 -0
  86. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/tests/test_desire_merge.py +0 -0
  87. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/tests/test_generate_scenarios.py +0 -0
  88. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/tests/test_hardware.py +0 -0
  89. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/tests/test_hardware_shapes.py +0 -0
  90. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/tests/test_headroom_strategy.py +0 -0
  91. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/tests/test_io2.py +0 -0
  92. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/tests/test_model_dump.py +0 -0
  93. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/tests/test_reproducible.py +0 -0
  94. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/tests/test_simulation.py +0 -0
  95. {service_capacity_modeling-0.3.49 → service_capacity_modeling-0.3.51}/tests/test_working_set.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: service-capacity-modeling
3
- Version: 0.3.49
3
+ Version: 0.3.51
4
4
  Summary: Contains utilities for modeling capacity for pluggable workloads
5
5
  Author: Joseph Lynch
6
6
  Author-email: josephl@netflix.com
@@ -751,7 +751,10 @@ def get_memory_from_current_capacity(
751
751
  current_capacity: CurrentClusterCapacity, buffers: Buffers
752
752
  ):
753
753
  # compute memory required per zone
754
- current_memory_utilization = current_capacity.memory_utilization_gib.mid
754
+ current_memory_utilization = (
755
+ current_capacity.memory_utilization_gib.mid
756
+ * current_capacity.cluster_instance_count.mid
757
+ )
755
758
 
756
759
  if current_capacity.cluster_instance is None:
757
760
  cluster_instance = shapes.instance(current_capacity.cluster_instance_name)
@@ -790,7 +793,10 @@ def get_network_from_current_capacity(
790
793
  current_capacity: CurrentClusterCapacity, buffers: Buffers
791
794
  ):
792
795
  # compute network required per zone
793
- current_network_utilization = current_capacity.network_utilization_mbps.mid
796
+ current_network_utilization = (
797
+ current_capacity.network_utilization_mbps.mid
798
+ * current_capacity.cluster_instance_count.mid
799
+ )
794
800
 
795
801
  if current_capacity.cluster_instance is None:
796
802
  cluster_instance = shapes.instance(current_capacity.cluster_instance_name)
@@ -829,7 +835,10 @@ def get_disk_from_current_capacity(
829
835
  current_capacity: CurrentClusterCapacity, buffers: Buffers
830
836
  ):
831
837
  # compute disk required per zone
832
- current_disk_utilization = current_capacity.disk_utilization_gib.mid
838
+ current_disk_utilization = (
839
+ current_capacity.disk_utilization_gib.mid
840
+ * current_capacity.cluster_instance_count.mid
841
+ )
833
842
 
834
843
  if current_capacity.cluster_instance is None:
835
844
  cluster_instance = shapes.instance(current_capacity.cluster_instance_name)
@@ -226,9 +226,6 @@ def _estimate_evcache_cluster_zonal( # noqa: C901,E501 pylint: disable=too-many
226
226
  if instance.ram_gib < min_instance_memory_gib:
227
227
  return None
228
228
 
229
- if instance.drive is None:
230
- return None
231
-
232
229
  # Based on the disk latency and the read latency SLOs we adjust our
233
230
  # working set to keep more or less data in RAM. Faster drives need
234
231
  # less fronting RAM.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: service-capacity-modeling
3
- Version: 0.3.49
3
+ Version: 0.3.51
4
4
  Summary: Contains utilities for modeling capacity for pluggable workloads
5
5
  Author: Joseph Lynch
6
6
  Author-email: josephl@netflix.com
@@ -247,9 +247,9 @@ current_cluster = CurrentClusters(
247
247
  cpu_utilization=Interval(
248
248
  low=10.12, mid=13.2, high=14.194801291058118, confidence=1
249
249
  ),
250
- memory_utilization_gib=certain_float(32.0),
251
- network_utilization_mbps=certain_float(128.0),
252
- disk_utilization_gib=certain_float(159),
250
+ memory_utilization_gib=certain_float(4.0),
251
+ network_utilization_mbps=certain_float(32.0),
252
+ disk_utilization_gib=certain_float(20),
253
253
  )
254
254
  ]
255
255
  )
@@ -309,12 +309,12 @@ def test_get_cores_with_buffer_preserve():
309
309
 
310
310
  def test_get_disk_with_buffer_desired():
311
311
  needed_disk = get_disk_from_current_capacity(current_cluster.zonal[0], buffers)
312
- assert needed_disk == 636
312
+ assert needed_disk == 640
313
313
 
314
314
 
315
315
  def test_get_disk_with_buffer_scale():
316
316
  current_cluster_copy = current_cluster.model_copy(deep=True)
317
- current_cluster_copy.zonal[0].disk_utilization_gib = certain_float(1200)
317
+ current_cluster_copy.zonal[0].disk_utilization_gib = certain_float(150)
318
318
  buffers_copy = buffers.model_copy(deep=True)
319
319
  buffers_copy.derived = {
320
320
  "storage": Buffer(