Module: Cloudcost::ServerInfluxdbOutput

Included in:
ServerList
Defined in:
lib/cloudcost/commands/server/server_influxdb_output.rb

Overview

InfluxDB output methods for the ServerList class

Instance Method Summary collapse

Instance Method Details

#grouped_influx_line_protocol(group_rows) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/cloudcost/commands/server/server_influxdb_output.rb', line 6

def grouped_influx_line_protocol(group_rows)
  lines = []
  group_rows.each do |row|
    [
      { field: "server_count", position: 1, unit: "i" },
      { field: "vcpus", position: 2, unit: "i" },
      { field: "memory_gb", position: 3, unit: "i" },
      { field: "ssd_gb", position: 4, unit: "i" },
      { field: "bulk_gb", position: 5, unit: "i" },
      { field: "chf_per_day", position: 6, unit: "" }
    ].each do |field|
      lines << %(
        cloudscaleServerCosts,group=#{row[0]},profile=#{@options[:profile] || "?"}
        #{field[:field]}=#{row[field[:position]]}#{field[:unit]}
      ).gsub(/\s+/, " ").strip
    end
  end
  lines.join("\n")
end