ElasticSearchClientServiceImpl

Description:

A controller service for accessing an Elasticsearch client. Uses the Elasticsearch REST Client (7.13.4, the last version before client connections verifythe server is Elastic provided, this should allow for connections to compatible alternatives, e.g. AWS OpenSearch)

Additional Details...

Tags:

elasticsearch, elasticsearch6, elasticsearch7, elasticsearch8, client

Properties:

In the list below, the names of required properties appear in bold. Any other properties (not in bold) are considered optional. The table also indicates any default values, and whether a property supports the NiFi Expression Language.

Display NameAPI NameDefault ValueAllowable ValuesDescription
HTTP Hostsel-cs-http-hostsA comma-separated list of HTTP hosts that host Elasticsearch query nodes. Note that the Host is included in requests as a header (typically including domain and port, e.g. elasticsearch:9200).
Supports Expression Language: true (will be evaluated using variable registry only)
Path Prefixel-cs-path-prefixSets the path's prefix for every request used by the http client. For example, if this is set to "/my/path", then any client request will become "/my/path/" + endpoint. In essence, every request's endpoint is prefixed by this pathPrefix. The path prefix is useful for when Elasticsearch is behind a proxy that provides a base path or a proxy that requires all paths to start with '/'; it is not intended for other purposes and it should not be supplied in other scenarios
Authorization Schemeauthorization-schemeBasic
  • None No authorization scheme.
  • PKI Mutual TLS with PKI certificate authorization scheme.
  • Basic Basic authorization scheme.
  • API Key API key authorization scheme.
Authorization Scheme used for optional authentication to Elasticsearch.
Usernameel-cs-usernameThe username to use with XPack security.
Supports Expression Language: true (will be evaluated using variable registry only)

This Property is only considered if the [Authorization Scheme] Property has a value of "Basic".
Passwordel-cs-passwordThe password to use with XPack security.
Sensitive Property: true
Supports Expression Language: true (will be evaluated using variable registry only)

This Property is only considered if the [Authorization Scheme] Property has a value of "Basic".
API Key IDapi-key-idUnique identifier of the API key.

This Property is only considered if the [Authorization Scheme] Property has a value of "API Key".
API Keyapi-keyEncoded API key.
Sensitive Property: true

This Property is only considered if the [Authorization Scheme] Property has a value of "API Key".
SSL Context Serviceel-cs-ssl-context-serviceController Service API:
SSLContextService
Implementations: StandardRestrictedSSLContextService
StandardSSLContextService
The SSL Context Service used to provide client certificate information for TLS/SSL connections. This service only applies if the Elasticsearch endpoint(s) have been secured with TLS/SSL.
Proxy Configuration Serviceproxy-configuration-serviceController Service API:
ProxyConfigurationService
Implementation: StandardProxyConfigurationService
Specifies the Proxy Configuration Controller Service to proxy network requests. Supported proxies: HTTP
Connect timeoutel-cs-connect-timeout5000Controls the amount of time, in milliseconds, before a timeout occurs when trying to connect.
Read timeoutel-cs-socket-timeout60000Controls the amount of time, in milliseconds, before a timeout occurs when waiting for a response.
Retry timeoutel-cs-retry-timeout60000Controls the amount of time, in milliseconds, before a timeout occurs when retrying the operation.
Charsetel-cs-charsetUTF-8The charset to use for interpreting the response from Elasticsearch.
Suppress Null/Empty Valuesel-cs-suppress-nullsAlways Suppress
  • Never Suppress Fields that are missing (present in the schema but not in the record), or that have a value of null/empty, will be written out as a null/empty value
  • Always Suppress Fields that are missing (present in the schema but not in the record), or that have a value of null/empty, will not be written out
Specifies how the writer should handle null and empty fields (including objects and arrays)
Enable Compressionel-cs-enable-compressionfalse
  • true
  • false
Whether the REST client should compress requests using gzip content encoding and add the "Accept-Encoding: gzip" header to receive compressed responses
Send Meta Headerel-cs-send-meta-headertrue
  • true
  • false
Whether to send a "X-Elastic-Client-Meta" header that describes the runtime environment. It contains information that is similar to what could be found in User-Agent. Using a separate header allows applications to use User-Agent for their own needs, e.g. to identify application version or other environment information
Strict Deprecationel-cs-strict-deprecationfalse
  • true
  • false
Whether the REST client should return any response containing at least one warning header as a failure
Node Selectorel-cs-node-selectorAny
  • Any Select any Elasticsearch node to handle requests
  • Skip Dedicated Masters Skip dedicated Elasticsearch master nodes for handling request
Selects Elasticsearch nodes that can receive requests. Used to keep requests away from dedicated Elasticsearch master nodes
Sniff Cluster Nodesel-cs-sniff-cluster-nodesfalse
  • true
  • false
Periodically sniff for nodes within the Elasticsearch cluster via the Elasticsearch Node Info API. If Elasticsearch security features are enabled (default to "true" for 8.x+), the Elasticsearch user must have the "monitor" or "manage" cluster privilege to use this API.Note that all HTTP Hosts (and those that may be discovered within the cluster using the Sniffer) must use the same protocol, e.g. http or https, and be contactable using the same client settings. Finally the Elasticsearch "network.publish_host" must match one of the "network.bind_host" list entries see https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-network.html for more information
Sniffer Intervalel-cs-sniffer-interval5 minsInterval between Cluster sniffer operations

This Property is only considered if the [Sniff Cluster Nodes] Property has a value of "true".
Sniffer Request Timeoutel-cs-sniffer-request-timeout1 secCluster sniffer timeout for node info requests

This Property is only considered if the [Sniff Cluster Nodes] Property has a value of "true".
Sniff on Failureel-cs-sniff-failurefalse
  • true
  • false
Enable sniffing on failure, meaning that after each failure the Elasticsearch nodes list gets updated straightaway rather than at the following ordinary sniffing round

This Property is only considered if the [Sniff Cluster Nodes] Property has a value of "true".
Sniffer Failure Delayel-cs-sniffer-failure-delay1 minDelay between an Elasticsearch request failure and updating available Cluster nodes using the Sniffer

This Property is only considered if the [Sniff on Failure] Property has a value of "true".

Dynamic Properties:

Supports Sensitive Dynamic Properties: No

Dynamic Properties allow the user to specify both the name and value of a property.

NameValueDescription
The name of a Request Header to addThe value of the HeaderAdds the specified property name/value as a Request Header in the Elasticsearch requests.
Supports Expression Language: true (will be evaluated using variable registry only)

State management:

This component does not store state.

Restricted:

This component is not restricted.

System Resource Considerations:

None specified.