Error record handling properties
When you configure a flow to send error records to different systems for storage or processing, use the following information to configure related properties.
By default, the flow discards error records.
Send Response to Origin property
When sending error records to the source in a microservice flow, configure the following property:
| Send Response to Source Property | Description |
|---|---|
| Status Code | HTTP status code for the error records. Default is 500, representing an internal server
error. All error records are included in the response as error records. |
Amazon S3 properties
When writing error records to Amazon S3, configure the following properties:
| AWS S3 Property | Description |
|---|---|
| Connection 7.4 and later |
Connection that defines the information
that is required to connect to an external system. To connect to an external system, you can select a connection that contains the details, or you can specify the details in local properties. When you select a connection, the flow canvas hides properties that are defined in the connection. |
| Authentication Method | Authentication method used to connect to Amazon Web Services
(AWS):
|
| Access Key ID | AWS access key ID. Required when using AWS keys to authenticate with AWS. |
| Secret Access Key | AWS secret access key. Required when
using AWS keys to authenticate with AWS. Tip: To secure sensitive information such as
access key pairs, you can use runtime resources or credential stores.
|
| Assume Role | Temporarily assumes another role to authenticate with AWS. |
| Role ARN |
Amazon resource name (ARN) of the role to assume, entered in the following format:
Where Available when assuming another role. |
| Role Session Name |
Optional name for the session created by assuming a role. Overrides the default unique identifier for the session. Available when assuming another role. |
| Session Timeout |
Maximum number of seconds for each session created by assuming a role. The session is refreshed if the flow continues to run for longer than this amount of time. Set to a value between 3,600 seconds and 43,200 seconds. Available when assuming another role. |
| Set Session Tags |
Sets a session tag to record the name of the currently logged in user that starts the flow or the job for the flow. AWS IAM verifies that the user account set in the session tag can assume the specified role. Select only when the IAM trust policy attached to the role to be assumed uses session tags and restricts the session tag values to specific user accounts. When cleared, the connection does not set a session tag. Available when assuming another role. |
| Use Specific Region | Specify the AWS region or endpoint to connect to. When cleared, the stage uses the Amazon S3 default global endpoint, s3.amazonaws.com. |
| Region | AWS region to connect to. Select one of the available regions. To specify an endpoint to connect to, select Other. |
| Endpoint | Endpoint to connect to when you select Other for the region. Enter the endpoint name. |
| Use Custom Endpoint | Specify a specific signing region when connecting to a custom
endpoint. When cleared, the stage uses the region specified in the endpoint. |
| Signing Region | AWS region used by the custom endpoint. |
| Bucket | Bucket to use when writing records. Enter a bucket name or define an expression that evaluates to bucket names. When using datetime variables in the expression, be sure to configure the time basis for the stage. |
| Common Prefix | Common prefix that determines where objects are written. |
| Partition Prefix | Optional partition prefix to specify the partition to use. Use a specific partition prefix or define an expression that evaluates to a partition prefix. When using datetime variables in the expression, be sure to configure the time basis for the stage. |
| Object Name Suffix | Suffix to use for object names, such as txt or json. When used, the target
adds a period and the configured suffix as follows: <object
name>.<suffix>. You can include periods within the suffix, but do not start the suffix with a period. Forward slashes are not allowed. Not available for the whole file data format. |
| Use Server-Side Encryption | Enables server-side encryption. |
| Server-Side Encryption Option | Option that Amazon S3 uses to manage the encryption keys:
Default is SSE-S3. |
| AWS KMS Key ARN | Amazon resource name (ARN) of the AWS KMS encryption key. Use
the following
format:Used for SSE-KMS encryption only. |
| Object Ownership |
Determines ownership of the objects written to the bucket:
Amazon S3 recommends using the default ownership to keep ACLs disabled except in unusual circumstances where you must control access for each object individually. For more information, see the Amazon S3 documentation. |
| Delimiter | Delimiter used by Amazon S3 to define the prefix hierarchy. Default is slash ( / ). |
| Encryption Context | Key-value pairs to use for the encryption context.
Click Add to add key-value pairs. Used for SSE-KMS encryption only. |
| Customer Encryption Key | The 256-bit and Base64 encoded encryption key to use. Used for SSE-C encryption only. |
| Customer Encryption Key MD5 | The 128-bit and Base64 encoded MD5 digest of the encryption key according to
RFC 1321. Used for SSE-C encryption only. |
| Data Time Zone |
Time zone for the target system. Used with the time basis to resolve datetimes in a time-based bucket or partition prefix. |
| Time Basis |
Time basis to use for writing to a time-based bucket or partition prefix. Use one
of the following expressions:
When the Bucket and Partition Prefix properties have no time component, you can ignore this property. Default is |
| Object Name Prefix | Defines a prefix for object names written by the target. By default,
object names start with sdc as follows: sdc-<UTC
timestamp>-<counter>. |
| Compress with Gzip | Compresses files with gzip before writing to Amazon S3. |
| Add Tags | Enables adding tags to the Amazon S3 objects that are created. |
| Tags | Tags to add to an object. Using simple or bulk edit mode, click Add Another to
configure a tag. You can configure multiple tags. When you configure a tag, you can define a tag with just the key or specify a key and value. |
| Connection Timeout | Seconds to wait for a response before closing the connection. |
| Socket Timeout | Seconds to wait for a response to a query. |
| Retry Count | Maximum number of times to retry requests. |
| Use Proxy | Specifies whether to use a proxy to connect. |
| Proxy Host | Proxy host. |
| Proxy Port | Proxy port. |
| Proxy User | User name for proxy credentials. |
| Proxy Password | Password for proxy
credentials. Tip: To
secure sensitive information such as user names and passwords, you can use runtime resources or credential stores.
|
| Proxy Domain | Optional domain name for the proxy server. |
| Proxy Workstation | Optional workstation for the proxy server. |
| Thread Pool Size for Parallel Uploads | Size of the thread pool for parallel uploads. Used when
working with multiple partitions and processing large objects in multiple
parts. When working with multiple partitions, setting this property up to the number of partitions being used to can improve performance. For more information about this and the following properties, see the Amazon S3 TransferManager documentation. |
| Multipart Upload Threshold | Minimum batch size in bytes for multipart uploads. |
| Minimum Upload Part Size | Minimum part size in bytes for multipart uploads. |
Azure Event Hub properties
When writing error records to Microsoft Azure Event Hub, configure the following properties:
| Event Hub Property | Description |
|---|---|
| Event Hub Name | The event hub name. |
| Connection String Key | Connection string key to use to connect to Azure. The
specified connection string key provides the shared access policy and namespace that is used to
connect to Azure. To retrieve a connection string key, after you access the list of available shared access policies, click the policy name, and then copy the Primary Connection String value. The value typically begins with |
Elasticsearch properties
When writing error records to Elasticsearch, configure the following properties:
| Elasticsearch Property | Description |
|---|---|
| HTTP URLs | Comma-separated list of HTTP or HTTPS URLs used to connect to each
Elasticsearch server in the cluster. Use the following format:
You can specify a port number in the URLs to override the default port defined in the HTTP Port property, as follows:
When a port number is defined in both this property and in the HTTP Port property, the port in this property takes precedence. For example, if you define this property as follows:
And you define the default HTTP Port property as 9200, then server1 uses the default port of 9200 and server2 uses the port 1234. |
| HTTP Port | Default port number to use for URLs that do not include a port. The default HTTP port is 9200. The default HTTPS port is 443. |
| Use Security | Specifies whether security is enabled on the Elasticsearch cluster. |
| Index | Index for the generated documents. Enter an index name or
an expression that evaluates to the index name. For
example, if you enter If you use datetime variables in the expression, make sure to configure the time basis appropriately. For details about datetime variables, see Datetime variables. |
| Mapping | Since Elasticsearch no longer supports mapping types, this property is ignored. |
| Document ID | Expression that evaluates to the ID for the generated
documents. When you do not specify an ID, Elasticsearch
creates an ID for each document. By default, the target allows Elasticsearch to create the ID. |
| Additional HTTP Params | Additional HTTP parameters that you want to send as query string parameters to Elasticsearch. Enter the exact parameter name and value expected by Elasticsearch. |
| Detect Additional Nodes in Cluster | Detects additional nodes in the cluster based on the
configured HTTP URLs. Selecting this property is the equivalent to setting the client.transport.sniff Elasticsearch property to true. Use only when Data Collector shares the same network as the Elasticsearch cluster. Do not use for Elastic Cloud or Docker clusters. |
| Time Basis | Time basis to use for writing to time-based indexes. Use
one of the following expressions:
When the Index property does not include datetime variables, you can ignore this property. Default
is |
| Data Time Zone | Time zone for the target system. Used to resolve datetimes in time-based indexes. |
| Parent ID | Optional parent ID for the generated documents. Enter a
parent ID or an expression that evaluates to the parent ID.
Use to establish a parent-child relationship between documents in the same index. |
| Routing | Optional custom routing value for the generated
documents. Enter a routing value or an expression that
evaluates to the routing value. Elasticsearch routes a document to a particular shard in an index based on the routing value defined for the document. You can define a custom value for each document. If you don’t define a custom routing value, Elasticsearch uses the parent ID (if defined) or the document ID as the routing value. |
| Data Charset |
Character encoding of the data to be processed. |
| Additional Properties | Extra fields to include in the action statement. Specify
in JSON format. For example, you can use the
You can use record functions and delimited data record functions when configuring this property. For more information, see the Elasticsearch documentation. |
If you enabled security, configure the following properties:
| Elasticsearch Security Property | Description |
|---|---|
| Mode | Authentication method to use:
|
| User Name | Elasticsearch user name. Available when using Basic authentication. |
| Password | Password for the user account. Available when using Basic authentication. |
| Region | Amazon Web Services region that hosts the Elasticsearch
domain. Available when using AWS Signature V4 authentication. |
| Access Key ID | AWS access key ID. Required when
not using instance profile credentials. Available when using AWS Signature V4 authentication. |
| Secret Access Key | AWS secret access key.
Required when not using instance profile credentials. Available when using AWS Signature V4 authentication. |
| Enable SSL | Enables the use of SSL. |
| SSL Truststore Path | Location of the truststore file. Configuring this property is the equivalent to configuring the shield.ssl.truststore.path Elasticsearch property. Not necessary for Elastic Cloud clusters. |
| SSL Truststore Password | Password for the truststore file. Configuring this property is the equivalent to configuring the shield.ssl.truststore.password Elasticsearch property. Not necessary for Elastic Cloud clusters. |
File properties
When writing error records to file, configure the following properties:
| File Property | Description |
|---|---|
| Directory | Local directory for error record files. |
| File Prefix | Prefix used for error record files. Use to differentiate error record files from other files
in the directory. Uses the prefix sdc-${sdc:id()} by default. The prefix evaluates to sdc-<Data Collector ID>. This provides default differentiation in case several Data Collectors write to the same directory. The Data Collector ID is stored in the following file: $SDC_DATA/sdc.id file. |
| File Wait Time (secs) | Number of seconds Data Collector waits for error
records. After that time, it creates a new error record file. You can enter a number of seconds or use the default expression to enter the time in minutes. |
| Max File Size (MB) | Maximum size for error files. Exceeding this size creates a new error file. Use 0 to avoid using this property. |
Google Cloud Storage properties
When writing error records to Google Cloud Storage, configure the following properties:
| GCS Property | Description |
|---|---|
| Bucket | Bucket to use when writing records. Note: The bucket name must be DNS compliant. For more
information about bucket naming conventions, see the Google Cloud Storage documentation.
|
| Common Prefix | Common prefix that determines where objects are written. |
| Partition Prefix | Optional partition prefix to specify the partition to
use. Use a specific partition prefix or define an expression that evaluates to a partition prefix. When using datetime variables in the expression, be sure to configure the time basis for the stage. |
| Data Time Zone |
Time zone for the target system. Used to resolve datetimes in a time-based partition prefix. |
| Time Basis |
Time basis to use for writing to a time-based bucket or
partition prefix. Use one of the following
expressions:
When the Partition Prefix property has no time component, you can ignore this property. Default is |
| Object Name Prefix | Defines a prefix for object names written by the
target. By default, object names start with "sdc" as
follows: sdc-<UUID>. Not required for the whole file data format. |
| Connection 7.0 and later |
Connection that defines the information
that is required to connect to an external system. To connect to an external system, you can select a connection that contains the details, or you can specify the details in local properties. When you select a connection, the flow canvas hides properties that are defined in the connection. |
| Project ID |
Google Cloud project ID to use. |
| Credentials Provider | Provider for Google Cloud
credentials:
|
| Credentials File Path (JSON) | Path to the Google Cloud
service account credentials file used to connect. The credentials
file must be a JSON file. Enter a path relative to the
Data Collector resources directory, |
| Credentials File Content (JSON) | Contents of a Google Cloud
service account credentials JSON file used to
connect. Enter JSON-formatted credential information in plain text, or use an expression to call the information from runtime resources or a credential store. |
Google Pub Sub properties
When writing error records to Google Pub Sub, configure the following properties:
| Pub/Sub Property | Description |
|---|---|
| Topic ID | Google Pub/Sub topic ID to write messages to. |
| Project ID |
Google Cloud project ID to use. |
| Credentials Provider | Provider for Google Cloud
credentials:
|
| Credentials File Path (JSON) | Path to the Google Cloud
service account credentials file used to connect. The credentials
file must be a JSON file. Enter a path relative to the
Data Collector resources directory, |
| Credentials File Content (JSON) | Contents of a Google Cloud
service account credentials JSON file used to
connect. Enter JSON-formatted credential information in plain text, or use an expression to call the information from runtime resources or a credential store. |
| Request Bytes Threshold | Size of accumulated messages that triggers sending messages as a batch. Specify in
bytes. Default is 1000. |
| Messages Count Threshold | Number of accumulated messages that triggers sending messages as a batch. Default is 100. |
| Default Delay Threshold (ms) | Elapsed time since the arrival of the first message that triggers sending messages as a
batch. Specify in milliseconds. Default is 1. |
| Batch Enabled | Select to have the target send messages in batches. When disabled, the target writes each message individually, ignoring threshold properties. |
| Max Outstanding Message Count | Number of unprocessed messages that the target stores in memory before taking
an action to control the flow of messages. You might want to control the flow of messages when the
target can read messages faster than it can write messages. Set to 0 to never control the flow based on message count. To control the message flow when using batch processing, set to a number larger than the message count threshold. |
| Max Outstanding Request Bytes | Number of unprocessed bytes that the target stores in memory before taking an
action to control the flow of messages. Set to 0 to never control the flow based on message size. To control the message flow when using batch processing, set to a number larger than the request bytes threshold. |
| Limit Exceeded Behavior | Action to take when either the count or size of unprocessed messages exceeds the specified
limit. Select one of the following options:
|
Kafka properties
When writing error records to Kafka, configure the following properties:
| Write to Kafka Property | Description |
|---|---|
| Connection 7.0 and later |
Connection that defines the information
that is required to connect to an external system. To connect to an external system, you can select a connection that contains the details, or you can specify the details in local properties. When you select a connection, the flow canvas hides properties that are defined in the connection. |
| Broker URI | Comma-separated list of connection strings for the Kafka brokers. Use
the following format for each broker:
<host>:<port>.To ensure a flow can connect to Kafka in case a specified broker goes down, list as many brokers as possible. |
| Runtime Topic Resolution | Evaluates an expression at runtime to determine the topic to use for each record. |
| Topic | Topic to use. With Data Collector 7.2 and later, the topic must exist before you run the flow. Not available when using runtime topic resolution. |
| Topic Expression | Expression used to determine where each record is written when using runtime topic resolution. Use an expression that evaluates to a topic name. |
| Topic Allow List | List of valid topic names to write to when using runtime topic resolution. Use to avoid
writing to invalid topics. Records that resolve to invalid topic names are passed to the stage for
error handling. Use an asterisk (*) to allow writing to any topic name. By default, all topic names are valid. |
| Kafka Configuration | Additional Kafka properties to use. Using simple or bulk edit mode, click the
Add icon and define the Kafka
property name and value. Use the property names and values as expected by Kafka. Do not use the broker.list property. |
| Security Option | Authentication and encryption option used
to connect to the Kafka brokers:
Enabling security requires completing several prerequisite tasks and configuring additional security properties, as described in Security in Kafka stages. |
| Message Key Format | Data format of the message key values to pass to Kafka. Ignore this property when not passing message key values to Kafka. For more information about working with Kafka message key values, see Kafka message keys. |
| Partition Strategy | Strategy to use to
write to partitions:
|
| Partition Expression | Expression to use with the
default or expression partition strategy. When using the default partition strategy, specify an expression that returns the partition key from the record. The expression must evaluate to a string value. When using the expression partition strategy, specify an expression that evaluates to the partition where you want each record written. Partition numbers start with 0. The expression must evaluate to a numeric value. Optionally, click Ctrl + Space Bar for help with creating the expression. |
| One Message per Batch | For each batch, writes the records to each partition as a single message. |
| Override Stage Configurations | When configurations conflict, the properties configured in the Kafka Configuration property override other properties configured in the stage. |
| Kafka Message Key | Passes message key values stored in a record header
attribute to Kafka as message keys. Enter an expression that specifies the attribute where the message keys are stored. To pass string
message keys stored in an attribute,
use:
To pass Avro message keys stored in an attribute,
use:
For more information, about working with Kafka message keys, see Kafka message keys. |
Kinesis properties
When writing error records to Kinesis, configure the following properties:
| Kinesis Property | Description |
|---|---|
| Authentication Method | Authentication method used to connect to Amazon Web Services
(AWS):
|
| Access Key ID | AWS access key ID. Required when using AWS keys to authenticate with AWS. |
| Secret Access Key | AWS secret access key. Required when
using AWS keys to authenticate with AWS. Tip: To secure sensitive information such as
access key pairs, you can use runtime resources or credential stores.
|
| Assume Role | Temporarily assumes another role to authenticate with AWS. |
| Role ARN |
Amazon resource name (ARN) of the role to assume, entered in the following format:
Where Available when assuming another role. |
| Role Session Name |
Optional name for the session created by assuming a role. Overrides the default unique identifier for the session. Available when assuming another role. |
| Session Timeout |
Maximum number of seconds for each session created by assuming a role. The session is refreshed if the flow continues to run for longer than this amount of time. Set to a value between 3,600 seconds and 43,200 seconds. Available when assuming another role. |
| Set Session Tags |
Sets a session tag to record the name of the currently logged in user that starts the flow or the job for the flow. AWS IAM verifies that the user account set in the session tag can assume the specified role. Select only when the IAM trust policy attached to the role to be assumed uses session tags and restricts the session tag values to specific user accounts. When cleared, the connection does not set a session tag. Available when assuming another role. |
| Region | AWS region to connect to. Select one of the available regions. To specify an endpoint to connect to, select Other. |
| Endpoint | Endpoint to connect to when you select Other for the region. Enter the endpoint name. |
| Stream Name | Kinesis stream name. |
| Kinesis Producer Configuration | Additional Kinesis properties to use. Using simple or bulk edit mode, click the Add icon to add
properties. Define the Kinesis property name and value. When you add a configuration property, enter the exact property name and the value. The stage does not validate the property names or values. |
| Partitioning Strategy | Strategy to write data to Kinesis shards:
|
| Partition Expression | Expression to generate the partition key used to pass data to different shards.
Use for the expression partition strategy. |
| Preserve Record Order | Select to preserve the order of records. Enabling this option can reduce flow performance. |
MQTT properties
When writing error records to MQTT, configure the following properties:
| MQTT Property | Description |
|---|---|
| Broker URL | MQTT Broker URL. Enter in the following
format:Use ssl for secure connections to the broker. For
example:
For high availability MQTT
clusters without a load balancer, specify a list of brokers from the cluster,
separated by commas and without spaces. The stage connects to the first available
broker, trying in the order listed. For example:
|
| Client ID | MQTT Client ID. The ID must be unique across all clients
connecting to the same broker. You can define an expression that evaluates to the client ID. For
example, enter the following expression to use the unique flow ID as the client
ID:
If a flow includes multiple MQTT stages and you want to use the unique flow ID as the client ID for both stages, prefix the client ID with a string like this: Otherwise,
all stages will use the same client ID. This can cause problems, such as messages
disappearing. |
| Topic | Topic to publish to. Using simple or bulk edit mode, click the Add icon to read from additional topics. |
| Quality of Service | Determines the quality of service level used to guarantee message delivery:
For more information, see the HiveMQ documentation on quality of service levels. |
| Client Persistence Mechanism | Determines the persistence mechanism that the target uses to guarantee
message delivery when the quality of service level is at least once or exactly once.
Select one of the following options:
Not used when the quality of service level is at most once. For more information, see the HiveMQ documentation on client persistence. |
| Client Persistence Data Directory | Local directory on the Data Collector machine where the
target temporarily stores messages in a file when you configure file
persistence. The user who starts Data Collector must have read and write access to this directory. |
| Keep Alive Interval (secs) | Maximum time in seconds to allow the connection to the MQTT broker to remain
idle. After the target publishes no messages for this amount of time, the
connection is closed. The target must reconnect to the MQTT broker. Default is 60 seconds. |
| Use Credentials | Enables entering MQTT credentials. Tip: To
secure sensitive information such as user names and passwords, you can use runtime resources or credential stores.
|
| Username | MQTT user name. |
| Password | MQTT password. |
| Clean Session | Enables connecting to the MQTT broker using a clean session, or a non-persistent connection. See the MQTT documentation for details about MQTT clean sessions. |
| Retain the Message | Determines whether or not the MQTT broker retains the message last published by
the target when no MQTT client is subscribed to listen to the topic. When selected, the MQTT broker retains the last message published by the target. Any messages published earlier are lost. When cleared, all messages published by the target are lost. For more information about MQTT retained messages, see http://www.hivemq.com/blog/mqtt-essentials-part-8-retained-messages. |
| Use TLS | Enables the use of TLS. |
| Use Remote Truststore | Enables loading the contents of the truststore from a remote credential store or from values entered in the stage properties. For more information, see Remote keystore and truststore. |
| Trusted Certificates | Each PEM certificate used in the remote truststore. Enter
a credential function that returns the certificate
or enter the contents of the certificate. Using simple or bulk edit mode, click the Add icon to add additional certificates. |
| Truststore File |
Path to the local truststore file. Enter an absolute path to the file or enter the following expression to define the file stored in the Data Collector resources directory:
By default, no truststore is used. |
| Truststore Type |
Type of truststore to use. Use one of the following
types:
Default is Java Keystore File (JKS). |
| Truststore Password |
Password to the truststore file. A password is optional, but recommended. Tip: To secure sensitive information such as
passwords, you can use runtime resources or credential stores.
|
| Truststore Trust Algorithm |
Algorithm to manage the truststore. Default is SunX509. |
| Use Default Protocols | Uses the default TLSv1.2 transport layer security (TLS) protocol. To use a different protocol, clear this option. |
| Transport Protocols | TLS protocols to use. To use a protocol other than the
default TLSv1.2, click the
Add icon and enter the protocol name. You can use simple or bulk edit mode to
add protocols. Note: Older protocols are not as secure as TLSv1.2.
|
| Use Default Cipher Suites | Uses a default cipher suite for the SSL/TLS handshake. To use a different cipher suite, clear this option. |
| Cipher Suites | Cipher suites to use. To use a cipher suite that is not a
part of the default set, click the
Add icon and enter the name of
the cipher suite. You can use simple or bulk edit mode to
add cipher suites. Enter the Java Secure Socket Extension (JSSE) name for the additional cipher suites that you want to use. |