module Elasticsearch::XPack::API::Monitoring::Actions

Public Instance Methods

bulk(arguments = {}) click to toggle source

Used by the monitoring features to send monitoring data. This functionality is Experimental and may be changed or removed completely in a future release. Elastic will take a best effort approach to fix any issues, but experimental features are not subject to the support SLA of official GA features.

@option arguments [String] :type Default document type for items which don't provide one Deprecated @option arguments [String] :system_id Identifier of the monitored system @option arguments [String] :system_api_version API Version of the monitored system @option arguments [String] :interval Collection interval (e.g., '10s' or '10000ms') of the payload @option arguments [Hash] :headers Custom HTTP headers @option arguments [String|Array] :body The operation definition and data (action-data pairs), separated by newlines. Array of Strings, Header/Data pairs, or the conveniency “combined” format can be passed, refer to Elasticsearch::API::Utils.__bulkify documentation.

*Deprecation notice*: Specifying types in urls has been deprecated Deprecated since version 7.0.0

@see www.elastic.co/guide/en/elasticsearch/reference/7.14/monitor-elasticsearch-cluster.html

# File lib/elasticsearch/xpack/api/actions/monitoring/bulk.rb, line 44
def bulk(arguments = {})
  raise ArgumentError, "Required argument 'body' missing" unless arguments[:body]

  headers = arguments.delete(:headers) || {}

  arguments = arguments.clone

  _type = arguments.delete(:type)

  method = Elasticsearch::API::HTTP_POST
  path   = if _type
             "_monitoring/#{Elasticsearch::API::Utils.__listify(_type)}/bulk"
           else
             "_monitoring/bulk"
           end
  params = Elasticsearch::API::Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)

  body = arguments[:body]
  if body.is_a? Array
    payload = Elasticsearch::API::Utils.__bulkify(body)
  else
    payload = body
  end

  headers.merge!("Content-Type" => "application/x-ndjson")
  perform_request(method, path, params, payload, headers).body
end