From 27337ea36ee7a8a4b3496b32a46c541abd9aa609 Mon Sep 17 00:00:00 2001 From: David Venable Date: Mon, 7 Oct 2024 15:22:45 -0500 Subject: [PATCH] Documentation improvements for a number of Data Prepper processors. (#5023) Documentation improvements for a number of Data Prepper processors. Updates some enumerations used in processors to support the @JsonValue. Corrects @JsonClassDescription to use HTML rather than Markdown. Signed-off-by: David Venable --- .../model/configuration/ConditionalRoute.java | 2 +- .../model/event/HandleFailedEventsOption.java | 6 ++ .../event/HandleFailedEventsOptionTest.java | 77 ++++++++++++++++--- .../aggregate/AggregateProcessorConfig.java | 12 +-- .../plugins/processor/DelayProcessor.java | 2 +- .../plugins/processor/StringProcessor.java | 2 +- .../processor/date/DateProcessorConfig.java | 9 ++- .../decompress/DecompressProcessorConfig.java | 8 +- .../decompress/DecompressionType.java | 6 ++ .../decompress/DecompressionTypeTest.java | 6 ++ .../dissect/DissectProcessorConfig.java | 24 ++++-- .../drop/DropEventProcessorConfig.java | 7 +- .../plugins/geoip/processor/EntryConfig.java | 8 +- .../geoip/processor/GeoIPProcessorConfig.java | 13 ++-- .../processor/grok/GrokProcessorConfig.java | 37 ++++++--- .../ObfuscationProcessorConfig.java | 13 ++-- .../action/OneWayHashActionConfig.java | 6 +- .../OtelMetricsRawProcessorConfig.java | 6 +- .../OtelTraceRawProcessorConfig.java | 13 ++-- .../processor/ServiceMapProcessorConfig.java | 4 +- .../splitevent/SplitEventProcessorConfig.java | 8 +- .../TracePeerForwarderProcessorConfig.java | 2 +- .../truncate/TruncateProcessorConfig.java | 9 ++- .../useragent/UserAgentProcessorConfig.java | 4 +- .../write_json/WriteJsonProcessorConfig.java | 2 +- 25 files changed, 198 insertions(+), 88 deletions(-) diff --git a/data-prepper-api/src/main/java/org/opensearch/dataprepper/model/configuration/ConditionalRoute.java b/data-prepper-api/src/main/java/org/opensearch/dataprepper/model/configuration/ConditionalRoute.java index 0055702169..23571989d5 100644 --- a/data-prepper-api/src/main/java/org/opensearch/dataprepper/model/configuration/ConditionalRoute.java +++ b/data-prepper-api/src/main/java/org/opensearch/dataprepper/model/configuration/ConditionalRoute.java @@ -31,7 +31,7 @@ */ @JsonPropertyOrder @JsonClassDescription("The key-value pair defines routing condition, where the key is the name of a route and the " + - "value is a Data Prepper expression representing the routing condition.") + "value is an expression representing the routing condition.") @JsonSerialize(using = ConditionalRoute.ConditionalRouteSerializer.class) @JsonDeserialize(using = ConditionalRoute.ConditionalRouteDeserializer.class) public class ConditionalRoute { diff --git a/data-prepper-api/src/main/java/org/opensearch/dataprepper/model/event/HandleFailedEventsOption.java b/data-prepper-api/src/main/java/org/opensearch/dataprepper/model/event/HandleFailedEventsOption.java index 6c310eb395..8b5be2de4e 100644 --- a/data-prepper-api/src/main/java/org/opensearch/dataprepper/model/event/HandleFailedEventsOption.java +++ b/data-prepper-api/src/main/java/org/opensearch/dataprepper/model/event/HandleFailedEventsOption.java @@ -6,6 +6,7 @@ package org.opensearch.dataprepper.model.event; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; import java.util.Arrays; import java.util.Map; @@ -45,4 +46,9 @@ public boolean shouldLog() { static HandleFailedEventsOption fromOptionValue(final String option) { return OPTIONS_MAP.get(option.toLowerCase()); } + + @JsonValue + public String toOptionValue() { + return option; + } } diff --git a/data-prepper-api/src/test/java/org/opensearch/dataprepper/model/event/HandleFailedEventsOptionTest.java b/data-prepper-api/src/test/java/org/opensearch/dataprepper/model/event/HandleFailedEventsOptionTest.java index 90a319ad24..ca40ea28a5 100644 --- a/data-prepper-api/src/test/java/org/opensearch/dataprepper/model/event/HandleFailedEventsOptionTest.java +++ b/data-prepper-api/src/test/java/org/opensearch/dataprepper/model/event/HandleFailedEventsOptionTest.java @@ -5,29 +5,84 @@ package org.opensearch.dataprepper.model.event; -import org.hamcrest.CoreMatchers; +import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.ArgumentsProvider; +import org.junit.jupiter.params.provider.ArgumentsSource; import org.junit.jupiter.params.provider.EnumSource; +import java.util.stream.Stream; + import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.equalTo; +import static org.hamcrest.Matchers.notNullValue; +import static org.junit.jupiter.params.provider.Arguments.arguments; class HandleFailedEventsOptionTest { + @ParameterizedTest + @ArgumentsSource(EnumToShouldLogArgumentsProvider.class) + void shouldLog_returns_expected_value(final HandleFailedEventsOption option, final boolean shouldLog) { + assertThat(option.shouldLog(), equalTo(shouldLog)); + } + + @ParameterizedTest + @ArgumentsSource(EnumToShouldShouldDropArgumentsProvider.class) + void shouldDropEvent_returns_expected_value(final HandleFailedEventsOption option, final boolean shouldDrop) { + assertThat(option.shouldDropEvent(), equalTo(shouldDrop)); + } + + @ParameterizedTest + @ArgumentsSource(EnumToOptionValueArgumentsProvider.class) + void toOptionValue_returns_expected_value(final HandleFailedEventsOption option, final String optionValue) { + assertThat(option.toOptionValue(), equalTo(optionValue)); + } + + @ParameterizedTest + @ArgumentsSource(EnumToOptionValueArgumentsProvider.class) + void fromOptionValue_returns_expected_option(final HandleFailedEventsOption option, final String optionValue) { + assertThat(HandleFailedEventsOption.fromOptionValue(optionValue), equalTo(option)); + } + @ParameterizedTest @EnumSource(HandleFailedEventsOption.class) - void fromOptionValue(final HandleFailedEventsOption option) { - assertThat(HandleFailedEventsOption.fromOptionValue(option.name()), CoreMatchers.is(option)); + void toOptionValue_returns_non_null_for_all(final HandleFailedEventsOption option) { + assertThat(option.toOptionValue(), notNullValue()); + } - if (option == HandleFailedEventsOption.SKIP || option == HandleFailedEventsOption.SKIP_SILENTLY) { - assertThat(option.shouldDropEvent(), equalTo(false)); - } else { - assertThat(option.shouldDropEvent(), equalTo(true)); + private static class EnumToOptionValueArgumentsProvider implements ArgumentsProvider { + @Override + public Stream provideArguments(final ExtensionContext context) { + return Stream.of( + arguments(HandleFailedEventsOption.SKIP, "skip"), + arguments(HandleFailedEventsOption.SKIP_SILENTLY, "skip_silently"), + arguments(HandleFailedEventsOption.DROP, "drop"), + arguments(HandleFailedEventsOption.DROP_SILENTLY, "drop_silently") + ); } + } + + private static class EnumToShouldShouldDropArgumentsProvider implements ArgumentsProvider { + @Override + public Stream provideArguments(final ExtensionContext context) { + return Stream.of( + arguments(HandleFailedEventsOption.SKIP, false), + arguments(HandleFailedEventsOption.SKIP_SILENTLY, false), + arguments(HandleFailedEventsOption.DROP, true), + arguments(HandleFailedEventsOption.DROP_SILENTLY, true) + ); + } + } - if (option == HandleFailedEventsOption.SKIP_SILENTLY || option == HandleFailedEventsOption.DROP_SILENTLY) { - assertThat(option.shouldLog(), equalTo(false)); - } else { - assertThat(option.shouldLog(), equalTo(true)); + private static class EnumToShouldLogArgumentsProvider implements ArgumentsProvider { + @Override + public Stream provideArguments(final ExtensionContext context) { + return Stream.of( + arguments(HandleFailedEventsOption.SKIP, true), + arguments(HandleFailedEventsOption.DROP, true), + arguments(HandleFailedEventsOption.SKIP_SILENTLY, false), + arguments(HandleFailedEventsOption.DROP_SILENTLY, false) + ); } } } diff --git a/data-prepper-plugins/aggregate-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/aggregate/AggregateProcessorConfig.java b/data-prepper-plugins/aggregate-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/aggregate/AggregateProcessorConfig.java index 1dd7a14479..b260102d83 100644 --- a/data-prepper-plugins/aggregate-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/aggregate/AggregateProcessorConfig.java +++ b/data-prepper-plugins/aggregate-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/aggregate/AggregateProcessorConfig.java @@ -19,14 +19,16 @@ import java.util.List; @JsonPropertyOrder -@JsonClassDescription("The `aggregate` processor groups events based on the values of identification_keys. " + +@JsonClassDescription("The aggregate processor groups events based on the values of identification_keys. " + "Then, the processor performs an action on each group, helping reduce unnecessary log volume and " + "creating aggregated logs over time.") public class AggregateProcessorConfig { static int DEFAULT_GROUP_DURATION_SECONDS = 180; - @JsonPropertyDescription("An unordered list by which to group events. Events with the same values as these keys are put into the same group. If an event does not contain one of the identification_keys, then the value of that key is considered to be equal to null. At least one identification_key is required (for example, [\"sourceIp\", \"destinationIp\", \"port\"].") + @JsonPropertyDescription("An unordered list by which to group events. Events with the same values as these keys are put into the same group. " + + "If an event does not contain one of the identification_keys, then the value of that key is considered to be equal to null. " + + "At least one identification_key is required. And example configuration is [\"sourceIp\", \"destinationIp\", \"port\"].") @JsonProperty("identification_keys") @NotEmpty private List identificationKeys; @@ -41,12 +43,12 @@ public class AggregateProcessorConfig { @UsesDataPrepperPlugin(pluginType = AggregateAction.class) private PluginModel aggregateAction; - @JsonPropertyDescription("When local_mode is set to true, the aggregation is performed locally on each Data Prepper node instead of forwarding events to a specific node based on the identification_keys using a hash function. Default is false.") + @JsonPropertyDescription("When local_mode is set to true, the aggregation is performed locally on each node instead of forwarding events to a specific node based on the identification_keys using a hash function. Default is false.") @JsonProperty("local_mode") @NotNull private Boolean localMode = false; - @JsonPropertyDescription("A boolean indicating if the unaggregated events should be forwarded to the next processor/sink in the chain.") + @JsonPropertyDescription("A boolean indicating if the unaggregated events should be forwarded to the next processor or sink in the chain.") @JsonProperty("output_unaggregated_events") private Boolean outputUnaggregatedEvents = false; @@ -54,7 +56,7 @@ public class AggregateProcessorConfig { @JsonProperty("aggregated_events_tag") private String aggregatedEventsTag; - @JsonPropertyDescription("A Data Prepper conditional expression, such as '/some-key == \"test\"', that will be evaluated to determine whether the processor will be run on the event.") + @JsonPropertyDescription("A conditional expression, such as '/some-key == \"test\"', that will be evaluated to determine whether the processor will be run on the event.") @JsonProperty("aggregate_when") private String whenCondition; diff --git a/data-prepper-plugins/common/src/main/java/org/opensearch/dataprepper/plugins/processor/DelayProcessor.java b/data-prepper-plugins/common/src/main/java/org/opensearch/dataprepper/plugins/processor/DelayProcessor.java index 74be383972..00429e9ac0 100644 --- a/data-prepper-plugins/common/src/main/java/org/opensearch/dataprepper/plugins/processor/DelayProcessor.java +++ b/data-prepper-plugins/common/src/main/java/org/opensearch/dataprepper/plugins/processor/DelayProcessor.java @@ -61,7 +61,7 @@ public void shutdown() { "Typically, you should use this only for testing, experimenting, and debugging.") public static class Configuration { @JsonProperty("for") - @JsonPropertyDescription("The duration of time to delay. Defaults to `1s`.") + @JsonPropertyDescription("The duration of time to delay. Defaults to 1s.") private Duration delayFor = Duration.ofSeconds(1); public Duration getDelayFor() { diff --git a/data-prepper-plugins/common/src/main/java/org/opensearch/dataprepper/plugins/processor/StringProcessor.java b/data-prepper-plugins/common/src/main/java/org/opensearch/dataprepper/plugins/processor/StringProcessor.java index 6c972e7603..0502951137 100644 --- a/data-prepper-plugins/common/src/main/java/org/opensearch/dataprepper/plugins/processor/StringProcessor.java +++ b/data-prepper-plugins/common/src/main/java/org/opensearch/dataprepper/plugins/processor/StringProcessor.java @@ -43,7 +43,7 @@ public class StringProcessor implements Processor, Record> private final boolean upperCase; @JsonPropertyOrder - @JsonClassDescription("The `string_converter` processor converts a string to uppercase or lowercase.") + @JsonClassDescription("The string_converter processor converts a string to uppercase or lowercase.") public static class Configuration { @JsonPropertyDescription("Whether to convert to uppercase (true) or lowercase (false).") private boolean upperCase = true; diff --git a/data-prepper-plugins/date-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/date/DateProcessorConfig.java b/data-prepper-plugins/date-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/date/DateProcessorConfig.java index 71aa47f81f..e4acccc46b 100644 --- a/data-prepper-plugins/date-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/date/DateProcessorConfig.java +++ b/data-prepper-plugins/date-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/date/DateProcessorConfig.java @@ -18,7 +18,7 @@ import java.time.format.DateTimeFormatter; @JsonPropertyOrder -@JsonClassDescription("The `date` processor adds a default timestamp to an event, parses timestamp fields, " + +@JsonClassDescription("The date processor adds a default timestamp to an event, parses timestamp fields, " + "and converts timestamp information to the International Organization for Standardization (ISO) 8601 format. " + "This timestamp information can be used as an event timestamp.") public class DateProcessorConfig { @@ -34,10 +34,13 @@ public static class DateMatch { @JsonPropertyDescription("Represents the event key against which to match patterns. " + "Required if match is configured.") private String key; + @JsonProperty("patterns") @JsonPropertyDescription("A list of possible patterns that the timestamp value of the key can have. The patterns " + "are based on a sequence of letters and symbols. The patterns support all the patterns listed in the " + "Java DateTimeFormatter (https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html) reference. " + + "To match ISO 8601 formatted strings, use, yyyy-MM-dd'T'HH:mm:ss.SSSXXX. " + + "To match Apache Common Log Format, use dd/MMM/yyyy:HH:mm:ss Z. " + "The timestamp value also supports epoch_second, epoch_milli, and epoch_nano values, " + "which represent the timestamp as the number of seconds, milliseconds, and nanoseconds since the epoch. " + "Epoch values always use the UTC time zone.") @@ -110,7 +113,9 @@ public static boolean isValidPattern(final String pattern) { @JsonProperty("match") @JsonPropertyDescription("The date match configuration. " + - "This option cannot be defined at the same time as from_time_received. There is no default value.") + "This option cannot be defined at the same time as from_time_received. " + + "The date processor will use the first pattern that matches each event's timestamp field. " + + "You must provide at least one pattern unless you have from_time_received.") private List match; @JsonProperty("destination") diff --git a/data-prepper-plugins/decompress-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/decompress/DecompressProcessorConfig.java b/data-prepper-plugins/decompress-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/decompress/DecompressProcessorConfig.java index be1238885c..f373d4219b 100644 --- a/data-prepper-plugins/decompress-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/decompress/DecompressProcessorConfig.java +++ b/data-prepper-plugins/decompress-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/decompress/DecompressProcessorConfig.java @@ -18,7 +18,7 @@ import java.util.List; @JsonPropertyOrder -@JsonClassDescription("The `decompress` processor decompresses any Base64-encoded " + +@JsonClassDescription("The decompress processor decompresses any Base64-encoded " + "compressed fields inside of an event.") public class DecompressProcessorConfig { @@ -28,16 +28,16 @@ public class DecompressProcessorConfig { @NotNull private List keys; - @JsonPropertyDescription("The type of decompression to use for the keys in the event. Only gzip is supported.") + @JsonPropertyDescription("The type of decompression to use for the keys in the event. Only gzip is supported.") @JsonProperty("type") @NotNull private DecompressionType decompressionType; - @JsonPropertyDescription("A conditional expression that determines when the decompress processor will run on certain events.") + @JsonPropertyDescription("A conditional expression, such as '/is_compressed == true', that determines when the decompress processor will run on certain events.") @JsonProperty("decompress_when") private String decompressWhen; - @JsonPropertyDescription("A list of strings with which to tag events when the processor fails to decompress the keys inside an event. Defaults to _decompression_failure.") + @JsonPropertyDescription("A list of strings with which to tag events when the processor fails to decompress the keys inside an event. Defaults to _decompression_failure.") @JsonProperty("tags_on_failure") private List tagsOnFailure = List.of("_decompression_failure"); diff --git a/data-prepper-plugins/decompress-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/decompress/DecompressionType.java b/data-prepper-plugins/decompress-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/decompress/DecompressionType.java index 88f64a52e1..1b7c51d39a 100644 --- a/data-prepper-plugins/decompress-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/decompress/DecompressionType.java +++ b/data-prepper-plugins/decompress-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/decompress/DecompressionType.java @@ -6,6 +6,7 @@ package org.opensearch.dataprepper.plugins.processor.decompress; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; import org.opensearch.dataprepper.model.codec.DecompressionEngine; import org.opensearch.dataprepper.plugins.codec.GZipDecompressionEngine; @@ -37,6 +38,11 @@ static DecompressionType fromOptionValue(final String option) { return OPTIONS_MAP.get(option); } + @JsonValue + public String getOptionValue() { + return option; + } + @Override public DecompressionEngine getDecompressionEngine() { return DECOMPRESSION_ENGINE_MAP.get(this.option); diff --git a/data-prepper-plugins/decompress-processor/src/test/java/org/opensearch/dataprepper/plugins/processor/decompress/DecompressionTypeTest.java b/data-prepper-plugins/decompress-processor/src/test/java/org/opensearch/dataprepper/plugins/processor/decompress/DecompressionTypeTest.java index 287e0cdb1d..7eccd3dbf8 100644 --- a/data-prepper-plugins/decompress-processor/src/test/java/org/opensearch/dataprepper/plugins/processor/decompress/DecompressionTypeTest.java +++ b/data-prepper-plugins/decompress-processor/src/test/java/org/opensearch/dataprepper/plugins/processor/decompress/DecompressionTypeTest.java @@ -34,6 +34,12 @@ void getDecompressionEngine_returns_expected_DecompressionEngine(final Decompres assertThat(enumValue.getDecompressionEngine(), instanceOf(decompressionEngineClass)); } + @ParameterizedTest + @ArgumentsSource(EnumToStringNameArgumentsProvider.class) + void getOptionValue_returns_data_type_name(final DecompressionType decompressionType, final String optionValue) { + assertThat(decompressionType.getOptionValue(), equalTo(optionValue)); + } + private static class EnumToStringNameArgumentsProvider implements ArgumentsProvider { @Override public Stream provideArguments(final ExtensionContext context) { diff --git a/data-prepper-plugins/dissect-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/dissect/DissectProcessorConfig.java b/data-prepper-plugins/dissect-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/dissect/DissectProcessorConfig.java index 901bb98780..e7d2b2a489 100644 --- a/data-prepper-plugins/dissect-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/dissect/DissectProcessorConfig.java +++ b/data-prepper-plugins/dissect-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/dissect/DissectProcessorConfig.java @@ -10,23 +10,31 @@ import java.util.Map; @JsonPropertyOrder -@JsonClassDescription("The `dissect` processor extracts values from an event and maps them to individual fields " + - "based on user-defined `dissect` patterns. The processor is well suited for field extraction from log " + +@JsonClassDescription("The dissect processor extracts values from an event and maps them to individual fields " + + "based on user-defined dissect patterns. The processor is well suited for field extraction from log " + "messages with a known structure.") public class DissectProcessorConfig { @NotNull @JsonProperty("map") - @JsonPropertyDescription("Defines the dissect patterns for specific keys. For details on how to define fields " + - "in the dissect pattern, see (https://opensearch.org/docs/latest/data-prepper/pipelines/configuration/processors/dissect/#field-notations).") + @JsonPropertyDescription("Defines the dissect patterns for specific keys. " + + "Each key is a field name, and the value is the dissect pattern to use for dissecting it. " + + "For details on how to define fields " + + "in the dissect pattern, see (https://opensearch.org/docs/latest/data-prepper/pipelines/configuration/processors/dissect/#field-notations). " + + "An example dissect pattern is %{Date} %{Time} %{Log_Type}: %{Message}, which will dissect into four fields.") private Map map; + @JsonProperty("target_types") - @JsonPropertyDescription("Specifies the data types for extract fields. Valid options are integer, " + - "double, string, long, big_decimal, and boolean. By default, all fields are of the string type.") + @JsonPropertyDescription("Specifies the data types for extract fields. " + + "Each key is a field name, and the value is the data type to use for that field. " + + "Valid data types are integer, double, string, long, big_decimal, and boolean. " + + "By default, all fields are treated as string.") private Map targetTypes; + @JsonProperty("dissect_when") @JsonPropertyDescription("Specifies a condition for performing the dissect operation using a " + - "Data Prepper Expression Syntax. " + - "If specified, the dissect operation will only run when the expression evaluates to true.") + "conditional expression. " + + "If specified, the dissect operation will only run when the expression evaluates to true. " + + "For example, '/some_value == \"log\"'.") private String dissectWhen; public String getDissectWhen(){ diff --git a/data-prepper-plugins/drop-events-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/drop/DropEventProcessorConfig.java b/data-prepper-plugins/drop-events-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/drop/DropEventProcessorConfig.java index c866f608e7..7674675e8b 100644 --- a/data-prepper-plugins/drop-events-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/drop/DropEventProcessorConfig.java +++ b/data-prepper-plugins/drop-events-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/drop/DropEventProcessorConfig.java @@ -13,15 +13,16 @@ import org.opensearch.dataprepper.model.event.HandleFailedEventsOption; @JsonPropertyOrder -@JsonClassDescription("The `drop_events` processor drops all the events that are passed into it.") +@JsonClassDescription("The drop_events processor conditionally drops events.") public class DropEventProcessorConfig { - @JsonPropertyDescription("Accepts a Data Prepper conditional expression string following the Data Prepper Expression Syntax. Configuring drop_events with drop_when: true drops all the events received.") + @JsonPropertyDescription("A conditional expression such as '/log_type == \"DEBUG\"'. " + + "The drop_when processor will drop all events where the condition evaluates to true. Those events will not go to any further processors or sinks.") @JsonProperty("drop_when") @NotEmpty private String dropWhen; - @JsonPropertyDescription("Specifies how exceptions are handled when an exception occurs while evaluating an event. Default value is 'drop', which drops the event so that it is not sent to OpenSearch. Available options are 'drop', 'drop_silently', 'skip', and 'skip_silently'.") + @JsonPropertyDescription("Specifies how exceptions are handled when an exception occurs while evaluating an event. Default value is skip, which drops the event so that it is not sent to further processors or sinks.") @JsonProperty("handle_failed_events") private HandleFailedEventsOption handleFailedEventsOption = HandleFailedEventsOption.SKIP; diff --git a/data-prepper-plugins/geoip-processor/src/main/java/org/opensearch/dataprepper/plugins/geoip/processor/EntryConfig.java b/data-prepper-plugins/geoip-processor/src/main/java/org/opensearch/dataprepper/plugins/geoip/processor/EntryConfig.java index b425ce3bbb..ab6f4b72f7 100644 --- a/data-prepper-plugins/geoip-processor/src/main/java/org/opensearch/dataprepper/plugins/geoip/processor/EntryConfig.java +++ b/data-prepper-plugins/geoip-processor/src/main/java/org/opensearch/dataprepper/plugins/geoip/processor/EntryConfig.java @@ -23,15 +23,17 @@ public class EntryConfig { @NotEmpty private String source; - @JsonPropertyDescription("The key of the target field in which to save the geolocation data. Default is geo.") + @JsonPropertyDescription("The key of the target field in which to set the geolocation data. Default is geo.") @JsonProperty("target") private String target = DEFAULT_TARGET; - @JsonPropertyDescription("The list of geolocation fields to include in the target object. By default, this is all the fields provided by the configured databases.") + @JsonPropertyDescription("The list of geolocation fields to include in the target object. By default, this is all the fields provided by the configured databases. " + + "For example, if you wish to only obtain the actual location, you can specify location.") @JsonProperty("include_fields") private List includeFields; - @JsonPropertyDescription("The list of geolocation fields to exclude from the target object.") + @JsonPropertyDescription("The list of geolocation fields to exclude from the target object. " + + "For example, you can exclude ASN fields by including asn, asn_organization, network, ip.") @JsonProperty("exclude_fields") private List excludeFields; diff --git a/data-prepper-plugins/geoip-processor/src/main/java/org/opensearch/dataprepper/plugins/geoip/processor/GeoIPProcessorConfig.java b/data-prepper-plugins/geoip-processor/src/main/java/org/opensearch/dataprepper/plugins/geoip/processor/GeoIPProcessorConfig.java index ad1612d792..fd4cf9ebbc 100644 --- a/data-prepper-plugins/geoip-processor/src/main/java/org/opensearch/dataprepper/plugins/geoip/processor/GeoIPProcessorConfig.java +++ b/data-prepper-plugins/geoip-processor/src/main/java/org/opensearch/dataprepper/plugins/geoip/processor/GeoIPProcessorConfig.java @@ -19,7 +19,7 @@ * An implementation class of GeoIP Processor configuration */ @JsonPropertyOrder -@JsonClassDescription("The `geoip` processor enriches events with geographic information extracted from IP addresses " + +@JsonClassDescription("The geoip processor enriches events with geographic information extracted from IP addresses " + "contained in the events.") public class GeoIPProcessorConfig { @@ -31,21 +31,20 @@ public class GeoIPProcessorConfig { private List entries; @JsonProperty("tags_on_engine_failure") - @JsonPropertyDescription("The tags to add to the event metadata if the geoip processor is unable to enrich an event due to an engine failure.") + @JsonPropertyDescription("The tags to add to the event metadata if the geoip processor is unable to enrich an event due to an engine failure.") private List tagsOnEngineFailure; @JsonProperty("tags_on_ip_not_found") - @JsonPropertyDescription("The tags to add to the event metadata if the geoip processor is unable to find a location for the IP address.") + @JsonPropertyDescription("The tags to add to the event metadata if the geoip processor is unable to find a location for a valid IP address.") private List tagsOnIPNotFound; @JsonProperty("tags_on_no_valid_ip") - @JsonPropertyDescription("The tags to add to the event metadata if the source field is not a valid IP address. This includes the localhost IP address.") + @JsonPropertyDescription("The tags to add to the event metadata if the source field is not a valid IP address. A source field may not be valid because it is incorrectly formatted or is the loopback/localhost IP address.") private List tagsOnNoValidIp; @JsonProperty("geoip_when") - @JsonPropertyDescription("Specifies a condition for including Events in the geoip processor using a Data Prepper [conditional expression]" + - "(https://opensearch.org/docs/latest/data-prepper/pipelines/expression-syntax/)." + - " If specified, the geoip processor will only run when the expression evaluates to true.") + @JsonPropertyDescription("A conditional expression such as '/srcaddr != \"8.8.8.8\"'. " + + "If specified, the geoip processor will only run on events when the expression evaluates to true. ") private String whenCondition; /** diff --git a/data-prepper-plugins/grok-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/grok/GrokProcessorConfig.java b/data-prepper-plugins/grok-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/grok/GrokProcessorConfig.java index 7b51e81f52..4176f84129 100644 --- a/data-prepper-plugins/grok-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/grok/GrokProcessorConfig.java +++ b/data-prepper-plugins/grok-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/grok/GrokProcessorConfig.java @@ -15,7 +15,7 @@ import java.util.Map; @JsonPropertyOrder -@JsonClassDescription("The `grok` processor uses pattern matching to structure and extract important keys from " + +@JsonClassDescription("The grok processor uses pattern matching to structure and extract important keys from " + "unstructured data.") public class GrokProcessorConfig { @@ -50,52 +50,69 @@ public class GrokProcessorConfig { @JsonPropertyDescription("Specifies whether to match all patterns (false) or stop once the first successful " + "match is found (true). Default is true.") private boolean breakOnMatch = DEFAULT_BREAK_ON_MATCH; + @JsonProperty(KEEP_EMPTY_CAPTURES) @JsonPropertyDescription("Enables the preservation of null captures from the processed output. Default is false.") private boolean keepEmptyCaptures = DEFAULT_KEEP_EMPTY_CAPTURES; + @JsonProperty(MATCH) - @JsonPropertyDescription("Specifies which keys should match specific patterns. Default is an empty response body.") + @JsonPropertyDescription("Specifies which keys should match specific patterns. " + + "Each key is a source field. The value is a list of possible grok patterns to match on. " + + "The grok processor will extract values from the first match for each field. " + + "Default is an empty response body.") private Map> match = Collections.emptyMap(); + @JsonProperty(NAMED_CAPTURES_ONLY) @JsonPropertyDescription("Specifies whether to keep only named captures. Default is true.") private boolean namedCapturesOnly = DEFAULT_NAMED_CAPTURES_ONLY; + @JsonProperty(KEYS_TO_OVERWRITE) @JsonPropertyDescription("Specifies which existing keys will be overwritten if there is a capture with the same key value. " + - "Default is [].") + "Default is an empty list.") private List keysToOverwrite = Collections.emptyList(); + @JsonProperty(PATTERNS_DIRECTORIES) @JsonPropertyDescription("Specifies which directory paths contain the custom pattern files. Default is an empty list.") private List patternsDirectories = Collections.emptyList(); + @JsonProperty(PATTERNS_FILES_GLOB) @JsonPropertyDescription("Specifies which pattern files to use from the directories specified for " + "pattern_directories. Default is *.") private String patternsFilesGlob = DEFAULT_PATTERNS_FILES_GLOB; + @JsonProperty(PATTERN_DEFINITIONS) @JsonPropertyDescription("Allows for a custom pattern that can be used inline inside the response body. " + "Default is an empty response body.") private Map patternDefinitions = Collections.emptyMap(); + @JsonProperty(TIMEOUT_MILLIS) @JsonPropertyDescription("The maximum amount of time during which matching occurs. " + - "Setting to 0 prevents any matching from occurring. Default is 30,000.") + "Setting to 0 prevents any matching from occurring. Default is 30000.") private int timeoutMillis = DEFAULT_TIMEOUT_MILLIS; + @JsonProperty(TARGET_KEY) - @JsonPropertyDescription("Specifies a parent-level key used to store all captures. Default value is null.") + @JsonPropertyDescription("Specifies a parent-level key used to store all captures. Default value is null which will write captures into the root of the event.") private String targetKey = DEFAULT_TARGET_KEY; + @JsonProperty(GROK_WHEN) - @JsonPropertyDescription("Specifies under what condition the grok processor should perform matching. " + - "Default is no condition.") + @JsonPropertyDescription("A conditional expression such as '/test != false'. " + + "If specified, the grok processor will only run on events when the expression evaluates to true. ") private String grokWhen; + @JsonProperty(TAGS_ON_MATCH_FAILURE) @JsonPropertyDescription("A List of Strings that specifies the tags to be set in the event when grok fails to " + "match or an unknown exception occurs while matching. This tag may be used in conditional expressions in " + "other parts of the configuration") private List tagsOnMatchFailure = Collections.emptyList(); + @JsonProperty(TAGS_ON_TIMEOUT) - @JsonPropertyDescription("A List of Strings that specifies the tags to be set in the event when grok match times out.") + @JsonPropertyDescription("The tags to add to the event metadata if the grok match times out.") private List tagsOnTimeout = Collections.emptyList(); + @JsonProperty(INCLUDE_PERFORMANCE_METADATA) - @JsonPropertyDescription("A Boolean on whether to include performance metadata into event metadata, " + - "e.g. _total_grok_patterns_attempted, _total_grok_processing_time.") + @JsonPropertyDescription("A boolean value to determine whether to include performance metadata into event metadata. " + + "If set to true, the events coming out of grok will have new fields such as _total_grok_patterns_attempted and _total_grok_processing_time." + + "You can use this metadata to perform performance testing and tuning of your grok patterns. By default, it is not included.") private boolean includePerformanceMetadata = false; public boolean isBreakOnMatch() { diff --git a/data-prepper-plugins/obfuscate-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/obfuscation/ObfuscationProcessorConfig.java b/data-prepper-plugins/obfuscate-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/obfuscation/ObfuscationProcessorConfig.java index f0cc686606..4a39755d98 100644 --- a/data-prepper-plugins/obfuscate-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/obfuscation/ObfuscationProcessorConfig.java +++ b/data-prepper-plugins/obfuscate-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/obfuscation/ObfuscationProcessorConfig.java @@ -20,7 +20,7 @@ import java.util.List; @JsonPropertyOrder -@JsonClassDescription("The `obfuscate` process enables obfuscation of fields inside your documents in order to " + +@JsonClassDescription("The obfuscate process enables obfuscation of fields inside your documents in order to " + "protect sensitive data.") public class ObfuscationProcessorConfig { @@ -41,24 +41,23 @@ public class ObfuscationProcessorConfig { private String target; @JsonProperty("action") - @JsonPropertyDescription("The obfuscation action. Available actions include 'hash' and 'mask'.") + @JsonPropertyDescription("The obfuscation action. Available actions include hash and mask.") @UsesDataPrepperPlugin(pluginType = ObfuscationAction.class) private PluginModel action; @JsonProperty("obfuscate_when") - @JsonPropertyDescription("Specifies under what condition the Obfuscate processor should perform matching. " + - "Default is no condition.") + @JsonPropertyDescription("A conditional expression such as '/is_testing_data == true'. " + + "If specified, the obfuscate processor will only run on events when the expression evaluates to true. ") private String obfuscateWhen; @JsonProperty("tags_on_match_failure") - @JsonPropertyDescription("The tag to add to an event if the obfuscate processor fails to match the pattern.") + @JsonPropertyDescription("The tag to add to an event if the obfuscate processor fails to match the pattern.") private List tagsOnMatchFailure; @JsonProperty("single_word_only") @JsonPropertyDescription("When set to true, a word boundary \b is added to the pattern, " + "which causes obfuscation to be applied only to words that are standalone in the input text. " + - "By default, it is false, meaning obfuscation patterns are applied to all occurrences. " + - "Can be used for Data Prepper 2.8 or greater.") + "By default, it is false, meaning obfuscation patterns are applied to all occurrences.") private boolean singleWordOnly = false; public ObfuscationProcessorConfig() { diff --git a/data-prepper-plugins/obfuscate-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/obfuscation/action/OneWayHashActionConfig.java b/data-prepper-plugins/obfuscate-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/obfuscation/action/OneWayHashActionConfig.java index 73162fd3f3..492d04c93e 100644 --- a/data-prepper-plugins/obfuscate-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/obfuscation/action/OneWayHashActionConfig.java +++ b/data-prepper-plugins/obfuscate-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/obfuscation/action/OneWayHashActionConfig.java @@ -28,13 +28,13 @@ public class OneWayHashActionConfig { private String salt; @JsonProperty("format") - @Pattern(regexp = "SHA-512", message = "Valid values: SHA-512") - @JsonPropertyDescription("Format of one way hash to generate. Default to SHA-512.") + @Pattern(regexp = "SHA-512", message = "Valid values: SHA-512") + @JsonPropertyDescription("Format of one way hash to generate. Default to SHA-512.") private String format = "SHA-512"; @JsonProperty("salt_key") @JsonPropertyDescription("A key to compute salt based on a value provided as part of a record. " + - "If key or value was not found in the record(s), a salt defined in the pipeline configuration will be used instead.") + "If key or value was not found in the event, a salt defined in the pipeline configuration will be used instead.") @EventKeyConfiguration(EventKeyFactory.EventAction.GET) private EventKey saltKey; diff --git a/data-prepper-plugins/otel-metrics-raw-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/otelmetrics/OtelMetricsRawProcessorConfig.java b/data-prepper-plugins/otel-metrics-raw-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/otelmetrics/OtelMetricsRawProcessorConfig.java index 0023eb9087..a481f0a0ab 100644 --- a/data-prepper-plugins/otel-metrics-raw-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/otelmetrics/OtelMetricsRawProcessorConfig.java +++ b/data-prepper-plugins/otel-metrics-raw-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/otelmetrics/OtelMetricsRawProcessorConfig.java @@ -13,8 +13,8 @@ import com.fasterxml.jackson.annotation.JsonPropertyOrder; @JsonPropertyOrder -@JsonClassDescription("The `otel_metrics` processor serializes a collection of `ExportMetricsServiceRequest` records " + - "sent from the [OTel metrics source](https://opensearch.org/docs/latest/data-prepper/pipelines/configuration/sources/otel-metrics-source/) into a collection of string records.") +@JsonClassDescription("The otel_metrics processor serializes a collection of ExportMetricsServiceRequest records " + + "sent from the OTel metrics source into a collection of string records.") public class OtelMetricsRawProcessorConfig { @JsonProperty("flatten_attributes") @@ -27,7 +27,7 @@ public class OtelMetricsRawProcessorConfig { @JsonPropertyDescription("Whether or not to calculate exponential histogram buckets.") private Boolean calculateExponentialHistogramBuckets = true; - @JsonPropertyDescription("Maximum allowed scale in exponential histogram calculation.") + @JsonPropertyDescription("Maximum allowed scale in exponential histogram calculation. By default, the maximum allowed scale is 10.") private Integer exponentialHistogramMaxAllowedScale = DEFAULT_EXPONENTIAL_HISTOGRAM_MAX_ALLOWED_SCALE; public Boolean getCalculateExponentialHistogramBuckets() { diff --git a/data-prepper-plugins/otel-trace-raw-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/oteltrace/OtelTraceRawProcessorConfig.java b/data-prepper-plugins/otel-trace-raw-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/oteltrace/OtelTraceRawProcessorConfig.java index 16b3017a81..ddbad4b4d3 100644 --- a/data-prepper-plugins/otel-trace-raw-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/oteltrace/OtelTraceRawProcessorConfig.java +++ b/data-prepper-plugins/otel-trace-raw-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/oteltrace/OtelTraceRawProcessorConfig.java @@ -13,24 +13,27 @@ import java.time.Duration; @JsonPropertyOrder -@JsonClassDescription("The `otel_trace` processor completes trace-group-related fields in all incoming Data Prepper " + - "span records by state caching the root span information for each `traceId`.") +@JsonClassDescription("The otel_traces processor completes trace-group-related fields in all incoming " + + "span records by state caching the root span information for each traceId.") public class OtelTraceRawProcessorConfig { static final long DEFAULT_TG_FLUSH_INTERVAL_SEC = 180L; static final Duration DEFAULT_TRACE_ID_TTL = Duration.ofSeconds(15L); static final long MAX_TRACE_ID_CACHE_SIZE = 1_000_000L; + @JsonProperty("trace_flush_interval") @JsonPropertyDescription("Represents the time interval in seconds to flush all the descendant spans without any " + - "root span. Default is 180.") + "root span. Default is 180.") private long traceFlushInterval = DEFAULT_TG_FLUSH_INTERVAL_SEC; @JsonProperty("trace_group_cache_ttl") - @JsonPropertyDescription("Represents the time-to-live to cache a trace group details. Default is 15 seconds.") + @JsonPropertyDescription("Represents the time-to-live to cache a trace group details. " + + "The value may be an ISO 8601 notation such as PT1M30S or a duration and unit such as 45s" + + "Default is 15 seconds.") private Duration traceGroupCacheTimeToLive = DEFAULT_TRACE_ID_TTL; @JsonProperty("trace_group_cache_max_size") @JsonPropertyDescription("Represents the maximum size of the cache to store the trace group details from root spans. " + - "Default is 1000000.") + "Default is 1000000.") private long traceGroupCacheMaxSize = MAX_TRACE_ID_CACHE_SIZE; public long getTraceFlushIntervalSeconds() { diff --git a/data-prepper-plugins/service-map-stateful/src/main/java/org/opensearch/dataprepper/plugins/processor/ServiceMapProcessorConfig.java b/data-prepper-plugins/service-map-stateful/src/main/java/org/opensearch/dataprepper/plugins/processor/ServiceMapProcessorConfig.java index faf98b2133..606cf55773 100644 --- a/data-prepper-plugins/service-map-stateful/src/main/java/org/opensearch/dataprepper/plugins/processor/ServiceMapProcessorConfig.java +++ b/data-prepper-plugins/service-map-stateful/src/main/java/org/opensearch/dataprepper/plugins/processor/ServiceMapProcessorConfig.java @@ -11,7 +11,7 @@ import com.fasterxml.jackson.annotation.JsonPropertyOrder; @JsonPropertyOrder -@JsonClassDescription("The `service_map` processor uses OpenTelemetry data to create a distributed service map for " + +@JsonClassDescription("The service_map processor uses OpenTelemetry data to create a distributed service map for " + "visualization in OpenSearch Dashboards.") public class ServiceMapProcessorConfig { private static final String WINDOW_DURATION = "window_duration"; @@ -20,7 +20,7 @@ public class ServiceMapProcessorConfig { @JsonProperty(WINDOW_DURATION) @JsonPropertyDescription("Represents the fixed time window, in seconds, " + - "during which service map relationships are evaluated. Default value is 180.") + "during which service map relationships are evaluated. Default value is 180.") private int windowDuration = DEFAULT_WINDOW_DURATION; public int getWindowDuration() { diff --git a/data-prepper-plugins/split-event-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/splitevent/SplitEventProcessorConfig.java b/data-prepper-plugins/split-event-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/splitevent/SplitEventProcessorConfig.java index 140e280710..107c410eaf 100644 --- a/data-prepper-plugins/split-event-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/splitevent/SplitEventProcessorConfig.java +++ b/data-prepper-plugins/split-event-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/splitevent/SplitEventProcessorConfig.java @@ -19,21 +19,21 @@ import jakarta.validation.constraints.Size; @JsonPropertyOrder -@JsonClassDescription("The `split_event` processor is used to split events based on a delimiter and " + +@JsonClassDescription("The split_event processor is used to split events based on a delimiter and " + "generates multiple events from a user-specified field.") public class SplitEventProcessorConfig { @NotEmpty @NotNull @JsonProperty("field") - @JsonPropertyDescription("The event field to be split") + @JsonPropertyDescription("The event field to be split.") private String field; @JsonProperty("delimiter_regex") - @JsonPropertyDescription("The regular expression used as the delimiter for splitting the field") + @JsonPropertyDescription("The regular expression used as the delimiter for splitting the field.") private String delimiterRegex; @Size(min = 1, max = 1) - @JsonPropertyDescription("The delimiter used for splitting the field. If not specified, the default delimiter is used") + @JsonPropertyDescription("The delimiter used for splitting the field. If not specified, the default delimiter is used.") private String delimiter; public String getField() { diff --git a/data-prepper-plugins/trace-peer-forwarder-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/TracePeerForwarderProcessorConfig.java b/data-prepper-plugins/trace-peer-forwarder-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/TracePeerForwarderProcessorConfig.java index 2c53383606..b4b75ccae1 100644 --- a/data-prepper-plugins/trace-peer-forwarder-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/TracePeerForwarderProcessorConfig.java +++ b/data-prepper-plugins/trace-peer-forwarder-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/TracePeerForwarderProcessorConfig.java @@ -3,6 +3,6 @@ import com.fasterxml.jackson.annotation.JsonClassDescription; @JsonClassDescription("The trace_peer_forwarder processor is used with peer forwarder to reduce by half " + - "the number of events forwarded in a Trace Analytics pipeline. ") + "the number of events forwarded in a Trace Analytics pipeline.") public class TracePeerForwarderProcessorConfig { } diff --git a/data-prepper-plugins/truncate-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/truncate/TruncateProcessorConfig.java b/data-prepper-plugins/truncate-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/truncate/TruncateProcessorConfig.java index 65a9a479e1..bb4631dc3d 100644 --- a/data-prepper-plugins/truncate-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/truncate/TruncateProcessorConfig.java +++ b/data-prepper-plugins/truncate-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/truncate/TruncateProcessorConfig.java @@ -17,7 +17,7 @@ import java.util.List; @JsonPropertyOrder -@JsonClassDescription("The `truncate` processor truncates a key’s value at the beginning, the end, " + +@JsonClassDescription("The truncate processor truncates a key's value at the beginning, the end, " + "or on both sides of the value string, based on the processor’s configuration.") public class TruncateProcessorConfig { public static class Entry { @@ -27,7 +27,7 @@ public static class Entry { private List sourceKeys; @JsonProperty("start_at") - @JsonPropertyDescription("Where in the string value to start truncation. " + + @JsonPropertyDescription("The index into the string value to start truncation. " + "Default is 0, which specifies to start truncation at the beginning of each key's value.") private Integer startAt; @@ -37,11 +37,12 @@ public static class Entry { private Integer length; @JsonProperty("recursive") - @JsonPropertyDescription("Recursively truncates the fields. If the value of a field is a map (json object), then it recursively applies truncate operation on the fields in the map.") + @JsonPropertyDescription("Recursively truncates the fields. If the value of a field is a map, then it recursively applies truncate operation on the fields in the map.") private Boolean recurse = false; @JsonProperty("truncate_when") - @JsonPropertyDescription("A condition that, when met, determines when the truncate operation is performed.") + @JsonPropertyDescription("A conditional expression such as '/test != false'. " + + "If specified, the truncate processor will only run on events when the expression evaluates to true. ") private String truncateWhen; public Entry(final List sourceKeys, final Integer startAt, final Integer length, final String truncateWhen, final Boolean recurse) { diff --git a/data-prepper-plugins/user-agent-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/useragent/UserAgentProcessorConfig.java b/data-prepper-plugins/user-agent-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/useragent/UserAgentProcessorConfig.java index 4c65efed37..b985d585e6 100644 --- a/data-prepper-plugins/user-agent-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/useragent/UserAgentProcessorConfig.java +++ b/data-prepper-plugins/user-agent-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/useragent/UserAgentProcessorConfig.java @@ -18,8 +18,8 @@ import java.util.List; @JsonPropertyOrder -@JsonClassDescription("The `user_agent` processor parses any user agent (UA) string in an event and then adds the " + - "parsing results to the event’s write data.") +@JsonClassDescription("The user_agent processor parses any user agent (UA) string in an event and then adds the " + + "parsed results to the event.") public class UserAgentProcessorConfig { private static final int DEFAULT_CACHE_SIZE = 1000; diff --git a/data-prepper-plugins/write-json-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/write_json/WriteJsonProcessorConfig.java b/data-prepper-plugins/write-json-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/write_json/WriteJsonProcessorConfig.java index f93e53bc24..157a9ac074 100644 --- a/data-prepper-plugins/write-json-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/write_json/WriteJsonProcessorConfig.java +++ b/data-prepper-plugins/write-json-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/write_json/WriteJsonProcessorConfig.java @@ -12,7 +12,7 @@ import jakarta.validation.constraints.NotNull; @JsonPropertyOrder -@JsonClassDescription("The `write_json` processor converts an object in an event into a JSON string.") +@JsonClassDescription("The write_json processor converts an object in an event into a JSON string.") public class WriteJsonProcessorConfig { @JsonProperty("source") @JsonPropertyDescription("Specifies the name of the field in the event containing the message or object to be parsed.")