connection.urlList of OpenSearch HTTP connection URLs e.g.
http://eshost1:9200,http://eshost2:9200or AWS OpenSearch endpoint- Type: list
- Importance: high
batch.sizeThe number of records to process as a batch when writing to OpenSearch.
- Type: int
- Default: 2000
- Importance: medium
max.in.flight.requestsThe maximum number of indexing requests that can be in-flight to OpenSearch before blocking further requests.
- Type: int
- Default: 5
- Importance: medium
max.buffered.recordsThe maximum number of records each task will buffer before blocking acceptance of more records. This config can be used to limit the memory usage for each task.
- Type: int
- Default: 20000
- Importance: low
linger.msLinger time in milliseconds for batching.
Records that arrive in between request transmissions are batched into a single bulk indexing request, based on the
batch.sizeconfiguration. Normally this only occurs under load when records arrive faster than they can be sent out. However it may be desirable to reduce the number of requests even under light load and benefit from bulk indexing. This setting helps accomplish that - when a pending batch is not full, rather than immediately sending it out the task will wait up to the given delay to allow other records to be added so that they can be batched into a single request.- Type: long
- Default: 1
- Importance: low
flush.timeout.msThe timeout in milliseconds to use for periodic flushing, and when waiting for buffer space to be made available by completed requests as records are added. If this timeout is exceeded the task will fail.
- Type: long
- Default: 10000 (10 seconds)
- Importance: low
max.retriesThe maximum number of retries that are allowed for failed indexing requests. If the retry attempts are exhausted the task will fail.
- Type: int
- Default: 5
- Importance: low
retry.backoff.msHow long to wait in milliseconds before attempting the first retry of a failed indexing request. Upon a failure, this connector may wait up to twice as long as the previous wait, up to the maximum number of retries. This avoids retrying in a tight loop under failure scenarios.
- Type: long
- Default: 100
- Importance: low
connection.timeout.msHow long to wait in milliseconds when establishing a connection to the OpenSearch server. The task fails if the client fails to connect to the server in this interval, and will need to be restarted.
- Type: int
- Default: 1000 (1 second)
- Importance: low
read.timeout.msHow long to wait in milliseconds for the OpenSearch server to send a response. The task fails if any read operation times out, and will need to be restarted to resume further operations.
- Type: int
- Default: 3000 (3 seconds)
- Importance: low
connection.ssl.key.passwordThe password of the private key in the key store file or the PEM key specified in 'ssl.keystore.key'.
- Type: password
- Default: null
- Importance: high
connection.ssl.keystore.locationThe location of the key store file. This is optional for client and can be used for two-way authentication for client.
- Type: string
- Default: null
- Importance: high
connection.ssl.keystore.passwordThe store password for the key store file. This is optional for client and only needed if 'ssl.keystore.location' is configured. Key store password is not supported for PEM format.
- Type: password
- Default: null
- Importance: high
connection.ssl.truststore.locationThe location of the trust store file.
- Type: string
- Default: null
- Importance: high
connection.ssl.truststore.passwordThe password for the trust store file. If a password is not set, trust store file configured will still be used, but integrity checking is disabled. Trust store password is not supported for PEM format.
- Type: password
- Default: null
- Importance: high
connection.ssl.enabled.protocolsThe list of protocols enabled for SSL connections. The default is 'TLSv1.2,TLSv1.3' when running with Java 11 or newer, 'TLSv1.2' otherwise. With the default value for Java 11, clients and servers will prefer TLSv1.3 if both support it and fallback to TLSv1.2 otherwise (assuming both support at least TLSv1.2). This default should be fine for most cases. Also see the config documentation for ssl.protocol.
- Type: list
- Default: TLSv1.2,TLSv1.3
- Importance: medium
connection.ssl.keystore.typeThe file format of the key store file. This is optional for client. The values currently supported by the default ssl.engine.factory.class are [JKS, PKCS12, PEM].
- Type: string
- Default: JKS
- Importance: medium
connection.ssl.protocolThe SSL protocol used to generate the SSLContext. The default is 'TLSv1.3' when running with Java 11 or newer, 'TLSv1.2' otherwise. This value should be fine for most use cases. Allowed values in recent JVMs are 'TLSv1.2' and 'TLSv1.3'. 'TLS', 'TLSv1.1', 'SSL', 'SSLv2' and 'SSLv3' may be supported in older JVMs, but their usage is discouraged due to known security vulnerabilities. With the default value for this config and 'ssl.enabled.protocols', clients will downgrade to 'TLSv1.2' if the server does not support 'TLSv1.3'. If this config is set to 'TLSv1.2', clients will not use 'TLSv1.3' even if it is one of the values in ssl.enabled.protocols and the server only supports 'TLSv1.3'.
- Type: string
- Default: TLSv1.3
- Importance: medium
connection.ssl.truststore.typeThe file format of the trust store file. The values currently supported by the default ssl.engine.factory.class are [JKS, PKCS12, PEM].
- Type: string
- Default: JKS
- Importance: medium
connection.ssl.cipher.suitesA list of cipher suites. This is a named combination of authentication, encryption, MAC and key exchange algorithm used to negotiate the security settings for a network connection using TLS or SSL network protocol. By default all the available cipher suites are supported.
- Type: list
- Default: null
- Importance: low
connection.ssl.endpoint.identification.algorithmThe endpoint identification algorithm to validate server hostname using server certificate.
- Type: string
- Default: https
- Importance: low
connection.trust.all.certificatesAllow to trust all certificates. Default is false
- Type: boolean
- Default: false
- Importance: low
connection.usernameThe username used to authenticate with OpenSearch. The default is the null, and authentication will only be performed if both the username and password are non-null.
- Type: string
- Default: null
- Importance: medium
connection.passwordThe password used to authenticate with OpenSearch. The default is the null, and authentication will only be performed if both the username and password are non-null.
- Type: password
- Default: null
- Importance: medium
aws.access_key_idAWS Access key id
- Type: string
- Default: null
- Importance: medium
aws.secret_access_keyAWS secret access key
- Type: password
- Default: null
- Importance: medium
aws.sts.role.arnAWS STS Role
- Type: string
- Default: null
- Valid Values: non-empty string
- Importance: medium
aws.sts.role.session.nameAWS STS Session name
- Type: string
- Default: null
- Valid Values: non-empty string
- Importance: medium
aws.sts.role.session.durationAWS STS Session duration
- Type: int
- Default: 3600
- Valid Values: [900,...,43200]
- Importance: medium
aws.sts.role.external.idAWS STS External Id
- Type: string
- Default: null
- Valid Values: non-empty string
- Importance: medium
aws.regionAWS Region, e.g. us-east-1. This field is required to enable AWS SigV4 request signing
- Type: string
- Default: null
- Importance: medium
aws.service.signing.nameAWS Service Signing Name, eg es. This field is required to enable AWS SigV4 request signing
- Type: string
- Default: null
- Importance: medium
index.write.methodThe method used to write data into OpenSearch index.The default value is
insertwhich means that the record with the same document id will be replaced. Theupsertwill create a new document if one does not exist or will update the existing document.- Type: string
- Default: insert
- Valid Values:
insert,upsert - Importance: low
key.ignoreWhether to ignore the record key for the purpose of forming the OpenSearch document ID. When this is set to
true, document IDs will be generated according to thekey.ignore.id.strategystrategy.Note that this is a global config that applies to all topics, use
topic.key.ignoreto applykey.ignore.id.strategystrategy for specific topics only.- Type: boolean
- Default: false
- Importance: high
key.ignore.id.strategySpecifies the strategy to generate the Document ID. Only applicable when
key.ignoreistrueor specific topics are configured usingtopic.key.ignore. Available strategies {none : No Doc ID is added, record.key : Generated from the record's key, topic.partition.offset : Generated as record'stopic+partition+offset}. If not specified, the default generation strategy istopic.partition.offset.- Type: string
- Default: topic.partition.offset
- Valid Values: [none, record.key, topic.partition.offset]
- Importance: low
schema.ignoreWhether to ignore schemas during indexing. When this is set to
true, the record schema will be ignored for the purpose of registering an OpenSearch mapping. OpenSearch will infer the mapping from the data (dynamic mapping needs to be enabled by the user).Note that this is a global config that applies to all topics, use
topic.schema.ignoreto override astruefor specific topics.- Type: boolean
- Default: false
- Importance: low
compact.map.entriesDefines how map entries with string keys within record values should be written to JSON. When this is set to
true, these entries are written compactly as"entryKey": "entryValue". Otherwise, map entries with string keys are written as a nested document{"key": "entryKey", "value": "entryValue"}. All map entries with non-string keys are always written as nested documents. Prior to 3.3.0, this connector always wrote map entries as nested documents, so set this tofalseto use that older behavior.- Type: boolean
- Default: true
- Importance: low
topic.key.ignoreList of topics for which
key.ignoreshould betrue.- Type: list
- Default: ""
- Importance: low
topic.schema.ignoreList of topics for which
schema.ignoreshould betrue.- Type: list
- Default: ""
- Importance: low
drop.invalid.messageWhether to drop kafka message when it cannot be converted to output message.
- Type: boolean
- Default: false
- Importance: low
behavior.on.null.valuesHow to handle records with a non-null key and a null value (i.e. Kafka tombstone records). Valid options are
ignore,delete, andfail.- Type: string
- Default: ignore
- Valid Values: [ignore, delete, fail]
- Importance: low
behavior.on.malformed.documentsHow to handle records that OpenSearch rejects due to some malformation of the document itself, such as an index mapping conflict or a field name containing illegal characters.
Valid options are:
ignore- do not index the recordwarn- log a warning message and do not index the recordreport- report to errant record reporter and do not index the recordfail- fail the task.
- Type: string
- Default: fail
- Valid Values: [ignore, warn, fail, report]
- Importance: low
behavior.on.version.conflictHow to handle records that OpenSearch rejects due to document's version conflicts.
It may happen when offsets were not committed or/and records have to be reprocessed.
Valid options are:
ignore- ignore and keep the existing recordwarn- log a warning message and keep the existing recordreport- report to errant record reporter and keep the existing recordfail- fail the task.
- Type: string
- Default: fail
- Valid Values: [ignore, warn, fail, report]
- Importance: low
routing.typeSpecifies the routing type which connector uses when sending documents to OpenSearch. Available types: {none : No routing is added, key : The routing value is determined by the record’s key, value : The routing value is determined by the record's value}. If not specified, the default is
none.- Type: string
- Default: none
- Valid Values: [none, key, value]
- Importance: low
routing.type.record.value.pathSpecifies the routing value which is determined by the record's value as JSON Pointer
- Type: string
- Default: null
- Valid Values: A valid JSON Pointer value (https://datatracker.ietf.org/doc/html/rfc6901)
- Importance: low
data.stream.enabledEnable use of data streams. If set to true the connector will write to data streams instead of regular indices. Default is false.
- Type: boolean
- Default: false
- Importance: medium
data.stream.prefixGeneric data stream name to write into. If set, it will be used to construct the final data stream name in the form of {data.stream.prefix}-{topic}.
- Type: string
- Default: null
- Valid Values: non-empty string
- Importance: medium
data.stream.timestamp.fieldThe Kafka record field to use as the timestamp for the @timestamp field in documents sent to a data stream. The default is @timestamp.
- Type: string
- Default: @timestamp
- Valid Values: non-empty string
- Importance: medium
data.streams.existing.index.template.nameIf data.streams.existing.index.template.name is provided, and if that index template does not exist, a template will be created with that name, else no template is created.
- Type: string
- Default: null
- Importance: medium
existing.resource.typeSpecifies the type of existing OpenSearch resource to write to
- Type: string
- Default: none
- Valid Values: [index, data_stream, index_alias, data_stream_alias, none]
- Importance: low
topic.to.existing.resource.mappingSpecifies comma-separated topic_name:resource_name mappings (e.g. topic_1:index_1,topic_2:index_2)
- Type: list
- Default: null
- Importance: low