class ATSD::SeriesService
Public Class Methods
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
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 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
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
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