class ATSD::SeriesService

Public Class Methods

post_payload(config, payload) click to toggle source

Post json @param [Hash] config - Hash containing url, login and password keys, e.g. {:url => “www.example.com:8088/api/v1”, :login => “login”, :password => “password”} @param [String] payload Body - ready to be parsed by ATSD server @return [Faraday::Response] @raise [APIError]

# File lib/atsd/services/series_service.rb, line 73
def self.post_payload(config, payload)
  url = config[:url]
  login, password = config[:login], config[:password]

  @connection = Faraday.new url do |builder|
    builder.headers['User-Agent'] = "ATSD Ruby Client v#{VERSION}"
    builder.basic_auth login, password
    builder.request :json

    builder.response :errors_handler
    builder.response :json, :content_type => 'application/json'

    builder.adapter Faraday.default_adapter
  end
  response = @connection.post do |req|
    req.body = payload
  end
  response
end

Public Instance Methods

csv_insert(entity, data, tags = {}) click to toggle source

Series CSV: Insert

@param [String, Entity] entity @param [String] data Payload - CSV containing time column and one or multiple metric columns.

- Separator must be comma.
- Time must be specified in Unix milliseconds.
- Time column must be first, name of the time column could be arbitrary.

@param [Hash] tags tag=value hash @return [true] @raise [APIError]

# File lib/atsd/services/series_service.rb, line 63
def csv_insert(entity, data, tags = {})
  entity = entity.name if entity.is_a? Entity
  @client.series_csv_insert(entity, data, tags)
end
insert(series) click to toggle source

Insert time series.

@param [Array<Series, Hash>, Series, Hash] series @return [self] @raise [APIError]

# File lib/atsd/services/series_service.rb, line 42
def insert(series)
  series = Utils.ensure_array(series).map do |s|
    if s.is_a? Hash
      s = Series.new(s)
    end
    s.to_request_hash
  end
  @client.series_insert series
  self
end
query(entity, metric, start_date, end_date, options = {}) click to toggle source

Create query builder for series.

@param [String, Entity] entity @param [String, Metric] metric @param [String] start_date @param [String] end_date @param [Hash] options other query parameters @return [SeriesQuery]

# File lib/atsd/services/series_service.rb, line 17
def query(entity, metric, start_date, end_date, options = {})
  query = SeriesQuery.new @client
  entity = entity.name if entity.is_a? Entity
  metric = metric.name if metric.is_a? Metric
  options.merge! entity: entity, metric: metric, start_date: start_date, end_date: end_date
  options.each { |option, value| query[option] = value }
  query
end
url_query(format, entity, metric, parameters={}) click to toggle source

Retrieve series values for the specified entity, metric, and optional series tags in CSV and JSON format.

@param [String] format. Supported formats are csv and json @param [String] entity @param [String] metric @param [Hash] parameters other query parameters @return [Array<Hash>] time series

# File lib/atsd/services/series_service.rb, line 33
def url_query(format, entity, metric, parameters={})
  @client.series_url_query(format, entity, metric, parameters)
end