class InfluxDB2::DeleteApi

Delete time series data from InfluxDB

Public Class Methods

new(options:) click to toggle source

@param [Hash] options The options to be used by the client.

Calls superclass method InfluxDB2::DefaultApi::new
# File lib/influxdb2/client/delete_api.rb, line 28
def initialize(options:)
  super(options: options)
end

Public Instance Methods

delete(start, stop, predicate: nil, bucket: nil, org: nil) click to toggle source

Delete time series data from InfluxDB.

@example delete('2019-02-03T04:05:06+07:00', '2019-04-03T04:05:06+07:00',

predicate: 'key1="value1" AND key2="value"', bucket: 'my-bucket', org: 'my-org')

@example delete(DateTime.rfc3339('2019-02-03T04:05:06+07:00'), DateTime.rfc3339('2019-03-03T04:05:06+07:00'),

predicate: 'key1="value1" AND key2="value"', bucket: 'my-bucket', org: 'my-org')

@param [Object] start Start time of interval to delete data.

The start could be represent by [Time], [DateTime] or [String] formatted as RFC3339.

@param [Object] stop Stop time of interval to delete data

The stop could be represent by [Time], [DateTime] or [String] formatted as RFC3339.

@param [String] predicate InfluxQL-like predicate Stop time of interval to delete data @param [String] bucket specifies the bucket to remove data from @param [String] org specifies the organization to remove data from

# File lib/influxdb2/client/delete_api.rb, line 49
def delete(start, stop, predicate: nil, bucket: nil, org: nil)
  delete_request = InfluxDB2::DeletePredicateRequest.new(start: _to_rfc3339(start), stop: _to_rfc3339(stop),
                                                         predicate: predicate)

  _delete(delete_request, bucket: bucket, org: org)
end

Private Instance Methods

_delete(delete_request, bucket: nil, org: nil) click to toggle source
# File lib/influxdb2/client/delete_api.rb, line 58
def _delete(delete_request, bucket: nil, org: nil)
  bucket_param = bucket || @options[:bucket]
  org_param = org || @options[:org]
  _check('bucket', bucket_param)
  _check('org', org_param)

  uri = _parse_uri('/api/v2/delete')
  uri.query = URI.encode_www_form(org: org_param, bucket: bucket_param)

  _post_json(delete_request.to_body.to_json, uri)
end
_to_rfc3339(time) click to toggle source
# File lib/influxdb2/client/delete_api.rb, line 70
def _to_rfc3339(time)
  if time.is_a?(String)
    time
  elsif time.is_a?(Time)
    _to_rfc3339(time.to_datetime)
  elsif time.is_a?(DateTime)
    _to_rfc3339(time.rfc3339)
  end
end