def push_data(gauges: [], counters: [], availabilities: [], strings: [])
      gauges.each { |g| default_timestamp g[:data] }
      counters.each { |g| default_timestamp g[:data] }
      availabilities.each { |g| default_timestamp g[:data] }
      strings.each { |g| default_timestamp g[:data] }
      data = { gauges: gauges, counters: counters, availabilities: availabilities, strings: strings }
      path = '/metrics/'
      path << (@legacy_api ? 'data' : 'raw')
      http_post(path, data)
    end
def push_data(gauges: [], counters: [], availabilities: [], strings: [])
      gauges.each { |g| default_timestamp g[:data] }
      counters.each { |g| default_timestamp g[:data] }
      availabilities.each { |g| default_timestamp g[:data] }
      strings.each { |g| default_timestamp g[:data] }
      data = { gauges: gauges, counters: counters, availabilities: availabilities, strings: strings }
      path = '/metrics/'
      path << (@legacy_api ? 'data' : 'raw')
      http_post(path, data)
    end
Push data for multiple metrics of all supported types
 @param gauges [Array]
 @param counters [Array]
 @param availabilities [Array]
 @example push datapoints of 2 counter metrics
    client = Hawkular::Metrics::client::new
    client.push_data(counters: [{:id => "counter1", :data => [{:value => 1}, {:value => 2}]},
                        {:id => "counter2", :data => [{:value => 1}, {:value => 3}]}])
 @example push gauge and availability datapoints
    client.push_data(gauges: [{:id => "gauge1", :data => [{:value => 1}, {:value => 2}]}],
                           availabilities: [{:id => "avail1", :data => [{:value => "up"}]}])