Class: Fluent::Plugin::KubernetesMetricsAggregatorInput::UsageMetricsUnit
- Inherits:
-
Object
- Object
- Fluent::Plugin::KubernetesMetricsAggregatorInput::UsageMetricsUnit
- Defined in:
- lib/fluent/plugin/in_kubernetes_metrics_aggregator.rb
Instance Method Summary collapse
- #add_usage_metrics(cpu_limit, cpu_request, memory_limit, memory_request) ⇒ Object
- #get_cpu_mult(cpu) ⇒ Object
- #get_cpu_or_memory_value(resource) ⇒ Object
- #get_cpu_value_and_multiplier(cpu) ⇒ Object
-
#get_memory_mult(memory) ⇒ Object
kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#meaning-of-memory 1 Ki = 1024 bytes 1 K = 1000 bytes = 1000/1024 Ki = 1000/1024*1024 Mi.
-
#initialize ⇒ UsageMetricsUnit
constructor
A new instance of UsageMetricsUnit.
Constructor Details
#initialize ⇒ UsageMetricsUnit
Returns a new instance of UsageMetricsUnit.
29 30 31 32 33 34 |
# File 'lib/fluent/plugin/in_kubernetes_metrics_aggregator.rb', line 29 def initialize @cpu_limit = 0 @cpu_request = 0 @memory_limit = 0 @memory_request = 0 end |
Instance Method Details
#add_usage_metrics(cpu_limit, cpu_request, memory_limit, memory_request) ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/fluent/plugin/in_kubernetes_metrics_aggregator.rb', line 36 def add_usage_metrics(cpu_limit, cpu_request, memory_limit, memory_request) cpu = get_cpu_or_memory_value(cpu_limit) mult = get_cpu_mult(cpu_limit) @cpu_limit += cpu * mult cpu = get_cpu_or_memory_value(cpu_request) mult = get_cpu_mult(cpu_request) @cpu_request += cpu * mult memory = get_cpu_or_memory_value(memory_limit) mult = get_memory_mult(memory_limit) @memory_limit += memory * mult memory = get_cpu_or_memory_value(memory_request) mult = get_memory_mult(memory_request) @memory_request += memory * mult end |
#get_cpu_mult(cpu) ⇒ Object
63 64 65 66 67 |
# File 'lib/fluent/plugin/in_kubernetes_metrics_aggregator.rb', line 63 def get_cpu_mult(cpu) cpu_mult = 1 cpu_mult = 1000 if cpu[-1] != 'm' cpu_mult end |
#get_cpu_or_memory_value(resource) ⇒ Object
58 59 60 61 |
# File 'lib/fluent/plugin/in_kubernetes_metrics_aggregator.rb', line 58 def get_cpu_or_memory_value(resource) resource = resource.tr('^0-9.', '').to_i resource end |
#get_cpu_value_and_multiplier(cpu) ⇒ Object
51 52 53 54 55 56 |
# File 'lib/fluent/plugin/in_kubernetes_metrics_aggregator.rb', line 51 def get_cpu_value_and_multiplier(cpu) # m cpu is assumed standard @cpu_mult = 1 @cpu_mult = 1000 if cpu[-1] != 'm' cpu.delete('^0-9.').to_i end |
#get_memory_mult(memory) ⇒ Object
kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#meaning-of-memory 1 Ki = 1024 bytes 1 K = 1000 bytes = 1000/1024 Ki = 1000/1024*1024 Mi
72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
# File 'lib/fluent/plugin/in_kubernetes_metrics_aggregator.rb', line 72 def get_memory_mult(memory) memory_mult = if memory[-2..] == 'Ki' 1.0 / 1024 elsif memory[-1] == 'K' 1e3 / 1024 ** 2 elsif memory[-2..] == 'Mi' 1 elsif memory[-1] == 'M' 1e6 / 1024 ** 2 elsif memory[-2..] == 'Gi' 1024 elsif memory[-1] == 'G' 1e9 / 1024 ** 2 elsif memory[-2..] == 'Ti' 1024 ** 2 elsif memory[-1] == 'T' 1e12 / 1024 ** 2 elsif memory[-2..] == 'Pi' 1024**3 elsif memory[-2] == 'P' 1e15 / 1024 ** 2 elsif memory[-2..] == 'Ei' 1024**4 elsif memory[-2] == 'E' 1e18 / 1024 ** 2 else 1.0 / 1024 ** 2 end memory_mult end |