mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 01:38:56 -04:00
[Ingest Pipelines] Add descriptions for ingest processors A-D (#75975)
* Fixing formatting issues identified by Prettier, part 2. * Fixing helpText labels. * Adding {value} object for dissect processor. * Incorporating reviewer feedback. * fix dropdown not rendering * Fixing typo. * add support for FormattedMessage in help text * fix TS * Updating some strings and trying to add code formatting. * fix formatted message * Editing some field descriptions. * Apply suggestions from code review Co-authored-by: James Rodewig <40268737+jrodewig@users.noreply.github.com> * Trying to add EuiLink, plus edits. * fix help text for dissect processor * Incorporating reviewer feedback. * Trying to add another EUI element, plus edits. * fix date_index_name description text * Minor edit. * Fixing linter error. * Removing FunctionComponent, which was not read and caused build errors. Co-authored-by: Alison Goryachev <alisonmllr20@gmail.com> Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com> Co-authored-by: James Rodewig <40268737+jrodewig@users.noreply.github.com>
This commit is contained in:
parent
db67eb0b29
commit
6d4e772cec
13 changed files with 171 additions and 97 deletions
|
@ -28,13 +28,13 @@ const fieldsConfig: FieldsConfig = {
|
|||
defaultMessage: 'Value',
|
||||
}),
|
||||
helpText: i18n.translate('xpack.ingestPipelines.pipelineEditor.appendForm.valueFieldHelpText', {
|
||||
defaultMessage: 'The value to be appended by this processor.',
|
||||
defaultMessage: 'Values to append.',
|
||||
}),
|
||||
validations: [
|
||||
{
|
||||
validator: emptyField(
|
||||
i18n.translate('xpack.ingestPipelines.pipelineEditor.appendForm.valueRequiredError', {
|
||||
defaultMessage: 'A value to set is required.',
|
||||
defaultMessage: 'A value is required.',
|
||||
})
|
||||
),
|
||||
},
|
||||
|
@ -47,7 +47,7 @@ export const Append: FunctionComponent = () => {
|
|||
<>
|
||||
<FieldNameField
|
||||
helpText={i18n.translate('xpack.ingestPipelines.pipelineEditor.appendForm.fieldHelpText', {
|
||||
defaultMessage: 'The field to be appended to.',
|
||||
defaultMessage: 'Field to append values to.',
|
||||
})}
|
||||
/>
|
||||
|
||||
|
|
|
@ -17,7 +17,10 @@ export const Bytes: FunctionComponent = () => {
|
|||
<FieldNameField
|
||||
helpText={i18n.translate(
|
||||
'xpack.ingestPipelines.pipelineEditor.bytesForm.fieldNameHelpText',
|
||||
{ defaultMessage: 'The field to convert.' }
|
||||
{
|
||||
defaultMessage:
|
||||
'Field to convert. If the field contains an array, each array value is converted.',
|
||||
}
|
||||
)}
|
||||
/>
|
||||
|
||||
|
|
|
@ -5,7 +5,9 @@
|
|||
*/
|
||||
|
||||
import React, { FunctionComponent } from 'react';
|
||||
import { FormattedMessage } from '@kbn/i18n/react';
|
||||
import { i18n } from '@kbn/i18n';
|
||||
import { EuiCode } from '@elastic/eui';
|
||||
|
||||
import {
|
||||
FIELD_TYPES,
|
||||
|
@ -34,12 +36,15 @@ const fieldsConfig: FieldsConfig = {
|
|||
defaultMessage: 'Error distance',
|
||||
}
|
||||
),
|
||||
helpText: i18n.translate(
|
||||
'xpack.ingestPipelines.pipelineEditor.circleForm.errorDistanceHelpText',
|
||||
{
|
||||
defaultMessage:
|
||||
'The difference between the resulting inscribed distance from center to side and the circle’s radius (measured in meters for geo_shape, unit-less for shape).',
|
||||
}
|
||||
helpText: () => (
|
||||
<FormattedMessage
|
||||
id="xpack.ingestPipelines.pipelineEditor.circleForm.errorDistanceHelpText"
|
||||
defaultMessage="Difference between the side of the inscribed shape to the encompassing circle. Determines the accuracy of the output polygon. Measured in meters for {geo_shape}, but uses no units for {shape}."
|
||||
values={{
|
||||
geo_shape: <EuiCode>{'geo_shape'}</EuiCode>,
|
||||
shape: <EuiCode>{'shape'}</EuiCode>,
|
||||
}}
|
||||
/>
|
||||
),
|
||||
validations: [
|
||||
{
|
||||
|
@ -66,7 +71,7 @@ const fieldsConfig: FieldsConfig = {
|
|||
}),
|
||||
helpText: i18n.translate(
|
||||
'xpack.ingestPipelines.pipelineEditor.circleForm.shapeTypeFieldHelpText',
|
||||
{ defaultMessage: 'Which field mapping type is to be used.' }
|
||||
{ defaultMessage: 'Field mapping type to use when processing the output polygon.' }
|
||||
),
|
||||
validations: [
|
||||
{
|
||||
|
@ -86,7 +91,7 @@ export const Circle: FunctionComponent = () => {
|
|||
<FieldNameField
|
||||
helpText={i18n.translate(
|
||||
'xpack.ingestPipelines.pipelineEditor.circleForm.fieldNameHelpText',
|
||||
{ defaultMessage: 'The string-valued field to trim whitespace from.' }
|
||||
{ defaultMessage: 'Field to convert.' }
|
||||
)}
|
||||
/>
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@ const ifConfig: FieldConfig = {
|
|||
defaultMessage: 'Condition (optional)',
|
||||
}),
|
||||
helpText: i18n.translate('xpack.ingestPipelines.pipelineEditor.commonFields.ifFieldHelpText', {
|
||||
defaultMessage: 'Conditionally execute this processor.',
|
||||
defaultMessage: 'Conditionally run this processor.',
|
||||
}),
|
||||
type: FIELD_TYPES.TEXT,
|
||||
};
|
||||
|
@ -50,7 +50,7 @@ const tagConfig: FieldConfig = {
|
|||
defaultMessage: 'Tag (optional)',
|
||||
}),
|
||||
helpText: i18n.translate('xpack.ingestPipelines.pipelineEditor.commonFields.tagFieldHelpText', {
|
||||
defaultMessage: 'An identifier for this processor. Useful for debugging and metrics.',
|
||||
defaultMessage: 'Identifier for the processor. Useful for debugging and metrics.',
|
||||
}),
|
||||
type: FIELD_TYPES.TEXT,
|
||||
};
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
*/
|
||||
import { EuiComboBox, EuiComboBoxOptionOption, EuiFormRow } from '@elastic/eui';
|
||||
import { i18n } from '@kbn/i18n';
|
||||
import React, { FunctionComponent } from 'react';
|
||||
import React, { FunctionComponent, ReactNode } from 'react';
|
||||
import { flow } from 'fp-ts/lib/function';
|
||||
import { map } from 'fp-ts/lib/Array';
|
||||
|
||||
|
@ -68,13 +68,18 @@ export const ProcessorTypeField: FunctionComponent<Props> = ({ initialType }) =>
|
|||
<UseField<string> config={typeConfig} defaultValue={initialType} path="type">
|
||||
{(typeField) => {
|
||||
let selectedOptions: ProcessorTypeAndLabel[];
|
||||
let description: string | ReactNode = '';
|
||||
|
||||
if (typeField.value?.length) {
|
||||
const type = typeField.value;
|
||||
const descriptor = getProcessorDescriptor(type);
|
||||
selectedOptions = descriptor
|
||||
? [{ label: descriptor.label, value: type }]
|
||||
: // If there is no label for this processor type, just use the type as the label
|
||||
[{ label: type, value: type }];
|
||||
const processorDescriptor = getProcessorDescriptor(type);
|
||||
if (processorDescriptor) {
|
||||
description = processorDescriptor.description || '';
|
||||
selectedOptions = [{ label: processorDescriptor.label, value: type }];
|
||||
} else {
|
||||
// If there is no label for this processor type, just use the type as the label
|
||||
selectedOptions = [{ label: type, value: type }];
|
||||
}
|
||||
} else {
|
||||
selectedOptions = [];
|
||||
}
|
||||
|
@ -102,9 +107,7 @@ export const ProcessorTypeField: FunctionComponent<Props> = ({ initialType }) =>
|
|||
<EuiFormRow
|
||||
label={typeField.label}
|
||||
labelAppend={typeField.labelAppend}
|
||||
helpText={
|
||||
typeof typeField.helpText === 'function' ? typeField.helpText() : typeField.helpText
|
||||
}
|
||||
helpText={typeof description === 'function' ? description() : description}
|
||||
error={error}
|
||||
isInvalid={isInvalid}
|
||||
fullWidth
|
||||
|
|
|
@ -21,7 +21,7 @@ const fieldsConfig: FieldsConfig = {
|
|||
helpText: i18n.translate(
|
||||
'xpack.ingestPipelines.pipelineEditor.commonFields.targetFieldHelpText',
|
||||
{
|
||||
defaultMessage: 'Field to assign the value to. If empty, the field is updated in-place.',
|
||||
defaultMessage: 'Output field. If empty, the input field is updated in place.',
|
||||
}
|
||||
),
|
||||
},
|
||||
|
|
|
@ -30,7 +30,7 @@ const fieldsConfig: FieldsConfig = {
|
|||
defaultMessage: 'Type',
|
||||
}),
|
||||
helpText: i18n.translate('xpack.ingestPipelines.pipelineEditor.convertForm.typeFieldHelpText', {
|
||||
defaultMessage: 'The type to convert the existing value to.',
|
||||
defaultMessage: 'Field data type for the output.',
|
||||
}),
|
||||
validations: [
|
||||
{
|
||||
|
@ -50,7 +50,7 @@ export const Convert: FunctionComponent = () => {
|
|||
<FieldNameField
|
||||
helpText={i18n.translate(
|
||||
'xpack.ingestPipelines.pipelineEditor.convertForm.fieldNameHelpText',
|
||||
{ defaultMessage: 'The field whose value is to be converted.' }
|
||||
{ defaultMessage: 'Field to convert.' }
|
||||
)}
|
||||
/>
|
||||
|
||||
|
@ -115,14 +115,7 @@ export const Convert: FunctionComponent = () => {
|
|||
path="fields.type"
|
||||
/>
|
||||
|
||||
<TargetField
|
||||
helpText={i18n.translate(
|
||||
'xpack.ingestPipelines.pipelineEditor.convertForm.targetFieldHelpText',
|
||||
{
|
||||
defaultMessage: 'The field to assign the converted value to.',
|
||||
}
|
||||
)}
|
||||
/>
|
||||
<TargetField />
|
||||
|
||||
<IgnoreMissingField />
|
||||
</>
|
||||
|
|
|
@ -36,7 +36,7 @@ const isStringLengthOne: ValidationFunc = ({ value }) => {
|
|||
message: i18n.translate(
|
||||
'xpack.ingestPipelines.pipelineEditor.convertForm.separatorLengthError',
|
||||
{
|
||||
defaultMessage: 'A separator value must be 1 character.',
|
||||
defaultMessage: 'Must be a single character.',
|
||||
}
|
||||
),
|
||||
}
|
||||
|
@ -52,7 +52,7 @@ const fieldsConfig: FieldsConfig = {
|
|||
defaultMessage: 'Target fields',
|
||||
}),
|
||||
helpText: i18n.translate('xpack.ingestPipelines.pipelineEditor.csvForm.targetFieldsHelpText', {
|
||||
defaultMessage: 'The array of fields to assign extracted values to.',
|
||||
defaultMessage: 'Output fields. Extracted values are mapped to these fields.',
|
||||
}),
|
||||
validations: [
|
||||
{
|
||||
|
@ -83,7 +83,7 @@ const fieldsConfig: FieldsConfig = {
|
|||
helpText: (
|
||||
<FormattedMessage
|
||||
id="xpack.ingestPipelines.pipelineEditor.convertForm.separatorHelpText"
|
||||
defaultMessage="Separator used in CSV, has to be single character string. Default value is {value}."
|
||||
defaultMessage="Delimiter used in the CSV data. Defaults to {value}."
|
||||
values={{ value: <EuiCode inline>{','}</EuiCode> }}
|
||||
/>
|
||||
),
|
||||
|
@ -102,7 +102,7 @@ const fieldsConfig: FieldsConfig = {
|
|||
helpText: (
|
||||
<FormattedMessage
|
||||
id="xpack.ingestPipelines.pipelineEditor.convertForm.quoteHelpText"
|
||||
defaultMessage="Quote used in CSV, has to be single character string. Default value is {value}."
|
||||
defaultMessage="Escape character used in the CSV data. Defaults to {value}."
|
||||
values={{ value: <EuiCode inline>{'"'}</EuiCode> }}
|
||||
/>
|
||||
),
|
||||
|
@ -115,7 +115,7 @@ const fieldsConfig: FieldsConfig = {
|
|||
defaultMessage: 'Trim',
|
||||
}),
|
||||
helpText: i18n.translate('xpack.ingestPipelines.pipelineEditor.csvForm.trimFieldHelpText', {
|
||||
defaultMessage: 'Trim whitespaces in unquoted fields',
|
||||
defaultMessage: 'Remove whitespaces in unquoted CSV data.',
|
||||
}),
|
||||
},
|
||||
empty_value: {
|
||||
|
@ -127,7 +127,7 @@ const fieldsConfig: FieldsConfig = {
|
|||
'xpack.ingestPipelines.pipelineEditor.convertForm.emptyValueFieldHelpText',
|
||||
{
|
||||
defaultMessage:
|
||||
'Value used to fill empty fields, empty fields will be skipped if this is not provided.',
|
||||
'Used to fill empty fields. If no value is provided, empty fields are skipped.',
|
||||
}
|
||||
),
|
||||
},
|
||||
|
@ -138,7 +138,7 @@ export const CSV: FunctionComponent = () => {
|
|||
<>
|
||||
<FieldNameField
|
||||
helpText={i18n.translate('xpack.ingestPipelines.pipelineEditor.csvForm.fieldNameHelpText', {
|
||||
defaultMessage: 'The field to extract data from.',
|
||||
defaultMessage: 'Field containing CSV data.',
|
||||
})}
|
||||
/>
|
||||
|
||||
|
|
|
@ -33,7 +33,7 @@ const fieldsConfig: FieldsConfig = {
|
|||
}),
|
||||
helpText: i18n.translate('xpack.ingestPipelines.pipelineEditor.dateForm.formatsFieldHelpText', {
|
||||
defaultMessage:
|
||||
'An array of the expected date formats. Can be a java time pattern or one of the following formats: ISO8601, UNIX, UNIX_MS, or TAI64N.',
|
||||
'Expected date formats. Provided formats are applied sequentially. Accepts a Java time pattern, ISO8601, UNIX, UNIX_MS, or TAI64N formats.',
|
||||
}),
|
||||
validations: [
|
||||
{
|
||||
|
@ -59,7 +59,7 @@ const fieldsConfig: FieldsConfig = {
|
|||
helpText: (
|
||||
<FormattedMessage
|
||||
id="xpack.ingestPipelines.pipelineEditor.dateForm.timezoneHelpText"
|
||||
defaultMessage="The timezone to use when parsing the date. Default value is {timezone}."
|
||||
defaultMessage="Timezone for the date. Defaults to {timezone}."
|
||||
values={{ timezone: <EuiCode inline>{'UTC'}</EuiCode> }}
|
||||
/>
|
||||
),
|
||||
|
@ -73,7 +73,7 @@ const fieldsConfig: FieldsConfig = {
|
|||
helpText: (
|
||||
<FormattedMessage
|
||||
id="xpack.ingestPipelines.pipelineEditor.dateForm.localeHelpText"
|
||||
defaultMessage="The locale to use when parsing the date, relevant when parsing month names or week days. Default value is {timezone}."
|
||||
defaultMessage="Locale for the date. Useful when parsing month or day names. Defaults to {timezone}."
|
||||
values={{ timezone: <EuiCode inline>{'ENGLISH'}</EuiCode> }}
|
||||
/>
|
||||
),
|
||||
|
@ -89,7 +89,7 @@ export const DateProcessor: FunctionComponent = () => {
|
|||
<FieldNameField
|
||||
helpText={i18n.translate(
|
||||
'xpack.ingestPipelines.pipelineEditor.dateForm.fieldNameHelpText',
|
||||
{ defaultMessage: 'The field to get the date from.' }
|
||||
{ defaultMessage: 'Field to convert.' }
|
||||
)}
|
||||
/>
|
||||
|
||||
|
@ -99,7 +99,7 @@ export const DateProcessor: FunctionComponent = () => {
|
|||
helpText={
|
||||
<FormattedMessage
|
||||
id="xpack.ingestPipelines.pipelineEditor.dateForm.targetFieldHelpText"
|
||||
defaultMessage="The field that will hold the parsed date. Default field is {defaultField}."
|
||||
defaultMessage="Output field. If empty, the input field is updated in place. Defaults to {defaultField}."
|
||||
values={{
|
||||
defaultField: <EuiCode inline>{'@timestamp'}</EuiCode>,
|
||||
}}
|
||||
|
|
|
@ -36,7 +36,8 @@ const fieldsConfig: FieldsConfig = {
|
|||
helpText: i18n.translate(
|
||||
'xpack.ingestPipelines.pipelineEditor.dateIndexNameForm.dateRoundingFieldHelpText',
|
||||
{
|
||||
defaultMessage: 'How to round the date when formatting the date into the index name.',
|
||||
defaultMessage:
|
||||
'Time period used to round the date when formatting the date into the index name.',
|
||||
}
|
||||
),
|
||||
validations: [
|
||||
|
@ -64,7 +65,7 @@ const fieldsConfig: FieldsConfig = {
|
|||
),
|
||||
helpText: i18n.translate(
|
||||
'xpack.ingestPipelines.pipelineEditor.dateIndexNameForm.indexNamePrefixFieldHelpText',
|
||||
{ defaultMessage: 'A prefix of the index name to be prepended before the printed date.' }
|
||||
{ defaultMessage: 'Prefix to add before the printed date in the index name.' }
|
||||
),
|
||||
},
|
||||
index_name_format: {
|
||||
|
@ -79,7 +80,7 @@ const fieldsConfig: FieldsConfig = {
|
|||
helpText: (
|
||||
<FormattedMessage
|
||||
id="xpack.ingestPipelines.pipelineEditor.dateIndexNameForm.indexNameFormatFieldHelpText"
|
||||
defaultMessage="The format to be used when printing the parsed date into the index name. Default value is {value}."
|
||||
defaultMessage="Date format used to print the parsed date into the index name. Defaults to {value}."
|
||||
values={{ value: <EuiCode inline>{'yyyy-MM-dd'}</EuiCode> }}
|
||||
/>
|
||||
),
|
||||
|
@ -99,7 +100,7 @@ const fieldsConfig: FieldsConfig = {
|
|||
helpText: (
|
||||
<FormattedMessage
|
||||
id="xpack.ingestPipelines.pipelineEditor.dateIndexNameForm.dateFormatsHelpText"
|
||||
defaultMessage="An array of the expected date formats for parsing dates / timestamps in the document being preprocessed. Can be a java time pattern or one of the following formats: ISO8601, UNIX, UNIX_MS, or TAI64N. Default value is {value}."
|
||||
defaultMessage="Expected date formats. Provided formats are applied sequentially. Accepts a Java time pattern, ISO8601, UNIX, UNIX_MS, or TAI64N formats. Defaults to {value}."
|
||||
values={{ value: <EuiCode inline>{"yyyy-MM-dd'T'HH:mm:ss.SSSXX"}</EuiCode> }}
|
||||
/>
|
||||
),
|
||||
|
@ -116,7 +117,7 @@ const fieldsConfig: FieldsConfig = {
|
|||
helpText: (
|
||||
<FormattedMessage
|
||||
id="xpack.ingestPipelines.pipelineEditor.dateIndexNameForm.timezoneHelpText"
|
||||
defaultMessage="The timezone to use when parsing the date and when date math index supports resolves expressions into concrete index names. Default value is {timezone}."
|
||||
defaultMessage="Timezone used when parsing the date and constructing the index name expression. Defaults to {timezone}."
|
||||
values={{ timezone: <EuiCode inline>{'UTC'}</EuiCode> }}
|
||||
/>
|
||||
),
|
||||
|
@ -133,7 +134,7 @@ const fieldsConfig: FieldsConfig = {
|
|||
helpText: (
|
||||
<FormattedMessage
|
||||
id="xpack.ingestPipelines.pipelineEditor.dateIndexForm.localeHelpText"
|
||||
defaultMessage="The locale to use when parsing the date from the document being preprocessed, relevant when parsing month names or week days. Default value is {locale}."
|
||||
defaultMessage="Locale to use when parsing the date. Useful when parsing month or day names. Defaults to {locale}."
|
||||
values={{ locale: <EuiCode inline>{'ENGLISH'}</EuiCode> }}
|
||||
/>
|
||||
),
|
||||
|
@ -149,7 +150,7 @@ export const DateIndexName: FunctionComponent = () => {
|
|||
<FieldNameField
|
||||
helpText={i18n.translate(
|
||||
'xpack.ingestPipelines.pipelineEditor.dateIndexNameForm.fieldNameHelpText',
|
||||
{ defaultMessage: 'The field to get the date or timestamp from.' }
|
||||
{ defaultMessage: 'Field containing the date or timestamp.' }
|
||||
)}
|
||||
/>
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
*/
|
||||
|
||||
import React, { FunctionComponent } from 'react';
|
||||
import { EuiCode } from '@elastic/eui';
|
||||
import { EuiCode, EuiLink } from '@elastic/eui';
|
||||
import { i18n } from '@kbn/i18n';
|
||||
import { FormattedMessage } from '@kbn/i18n/react';
|
||||
import { TextEditor } from '../field_components';
|
||||
|
@ -16,6 +16,7 @@ import {
|
|||
fieldValidators,
|
||||
UseField,
|
||||
Field,
|
||||
useKibana,
|
||||
} from '../../../../../../shared_imports';
|
||||
|
||||
import { FieldNameField } from './common_fields/field_name_field';
|
||||
|
@ -24,55 +25,79 @@ import { EDITOR_PX_HEIGHT } from './shared';
|
|||
|
||||
const { emptyField } = fieldValidators;
|
||||
|
||||
const fieldsConfig: Record<string, FieldConfig> = {
|
||||
/* Required field config */
|
||||
pattern: {
|
||||
type: FIELD_TYPES.TEXT,
|
||||
label: i18n.translate('xpack.ingestPipelines.pipelineEditor.dissectForm.patternFieldLabel', {
|
||||
defaultMessage: 'Pattern',
|
||||
}),
|
||||
helpText: i18n.translate(
|
||||
'xpack.ingestPipelines.pipelineEditor.dissectForm.patternFieldHelpText',
|
||||
{
|
||||
defaultMessage: 'The pattern to apply to the field.',
|
||||
}
|
||||
),
|
||||
validations: [
|
||||
{
|
||||
validator: emptyField(
|
||||
i18n.translate('xpack.ingestPipelines.pipelineEditor.dissectForm.patternRequiredError', {
|
||||
defaultMessage: 'A pattern value is required.',
|
||||
})
|
||||
),
|
||||
},
|
||||
],
|
||||
},
|
||||
/* Optional field config */
|
||||
append_separator: {
|
||||
type: FIELD_TYPES.TEXT,
|
||||
label: i18n.translate(
|
||||
'xpack.ingestPipelines.pipelineEditor.dissectForm.appendSeparatorparaotrFieldLabel',
|
||||
{
|
||||
defaultMessage: 'Append separator (optional)',
|
||||
}
|
||||
),
|
||||
helpText: (
|
||||
<FormattedMessage
|
||||
id="xpack.ingestPipelines.pipelineEditor.dissectForm.appendSeparatorHelpText"
|
||||
defaultMessage="The character(s) that separate the appended fields. Default value is {value} (an empty string)."
|
||||
values={{ value: <EuiCode inline>{'""'}</EuiCode> }}
|
||||
/>
|
||||
),
|
||||
},
|
||||
const getFieldsConfig = (esDocUrl: string): Record<string, FieldConfig> => {
|
||||
return {
|
||||
/* Required field config */
|
||||
pattern: {
|
||||
type: FIELD_TYPES.TEXT,
|
||||
label: i18n.translate('xpack.ingestPipelines.pipelineEditor.dissectForm.patternFieldLabel', {
|
||||
defaultMessage: 'Pattern',
|
||||
}),
|
||||
helpText: (
|
||||
<FormattedMessage
|
||||
id="xpack.ingestPipelines.pipelineEditor.dissectForm.patternFieldHelpText"
|
||||
defaultMessage="Pattern used to dissect the specified field. The pattern is defined by the parts of the string to discard. Use a {keyModifier} to alter the dissection behavior."
|
||||
values={{
|
||||
keyModifier: (
|
||||
<EuiLink
|
||||
target="_blank"
|
||||
external
|
||||
href={esDocUrl + '/dissect-processor.html#dissect-key-modifiers'}
|
||||
>
|
||||
{i18n.translate(
|
||||
'xpack.ingestPipelines.pipelineEditor.dissectForm.patternFieldHelpText.dissectProcessorLink',
|
||||
{
|
||||
defaultMessage: 'key modifier',
|
||||
}
|
||||
)}
|
||||
</EuiLink>
|
||||
),
|
||||
}}
|
||||
/>
|
||||
),
|
||||
validations: [
|
||||
{
|
||||
validator: emptyField(
|
||||
i18n.translate(
|
||||
'xpack.ingestPipelines.pipelineEditor.dissectForm.patternRequiredError',
|
||||
{
|
||||
defaultMessage: 'A pattern value is required.',
|
||||
}
|
||||
)
|
||||
),
|
||||
},
|
||||
],
|
||||
},
|
||||
/* Optional field config */
|
||||
append_separator: {
|
||||
type: FIELD_TYPES.TEXT,
|
||||
label: i18n.translate(
|
||||
'xpack.ingestPipelines.pipelineEditor.dissectForm.appendSeparatorparaotrFieldLabel',
|
||||
{
|
||||
defaultMessage: 'Append separator (optional)',
|
||||
}
|
||||
),
|
||||
helpText: (
|
||||
<FormattedMessage
|
||||
id="xpack.ingestPipelines.pipelineEditor.dissectForm.appendSeparatorHelpText"
|
||||
defaultMessage="If you specify a key modifier, this character separates the fields when appending results. Defaults to {value}."
|
||||
values={{ value: <EuiCode inline>{'""'}</EuiCode> }}
|
||||
/>
|
||||
),
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
export const Dissect: FunctionComponent = () => {
|
||||
const { services } = useKibana();
|
||||
const fieldsConfig = getFieldsConfig(services.documentation.getEsDocsBasePath());
|
||||
|
||||
return (
|
||||
<>
|
||||
<FieldNameField
|
||||
helpText={i18n.translate(
|
||||
'xpack.ingestPipelines.pipelineEditor.dissectForm.fieldNameHelpText',
|
||||
{ defaultMessage: 'The field to dissect.' }
|
||||
{ defaultMessage: 'Field to dissect.' }
|
||||
)}
|
||||
/>
|
||||
|
||||
|
|
|
@ -18,7 +18,8 @@ const fieldsConfig: Record<string, FieldConfig> = {
|
|||
defaultMessage: 'Path',
|
||||
}),
|
||||
helpText: i18n.translate('xpack.ingestPipelines.pipelineEditor.dotExpanderForm.pathHelpText', {
|
||||
defaultMessage: 'Only required if the field to expand is part another object field.',
|
||||
defaultMessage:
|
||||
'Output field. Only required if the field to expand is part another object field.',
|
||||
}),
|
||||
},
|
||||
};
|
||||
|
@ -29,7 +30,7 @@ export const DotExpander: FunctionComponent = () => {
|
|||
<FieldNameField
|
||||
helpText={i18n.translate(
|
||||
'xpack.ingestPipelines.pipelineEditor.dotExpanderForm.fieldNameHelpText',
|
||||
{ defaultMessage: 'The field to expand into an object field.' }
|
||||
{ defaultMessage: 'Field containing dot notation.' }
|
||||
)}
|
||||
additionalValidations={[
|
||||
{
|
||||
|
|
|
@ -5,6 +5,9 @@
|
|||
*/
|
||||
|
||||
import { i18n } from '@kbn/i18n';
|
||||
import React, { ReactNode } from 'react';
|
||||
import { FormattedMessage } from '@kbn/i18n/react';
|
||||
import { EuiCode } from '@elastic/eui';
|
||||
|
||||
import {
|
||||
Append,
|
||||
|
@ -47,6 +50,7 @@ interface FieldDescriptor {
|
|||
* A sentence case label that can be displayed to users
|
||||
*/
|
||||
label: string;
|
||||
description?: string | ReactNode;
|
||||
}
|
||||
|
||||
type MapProcessorTypeToDescriptor = Record<string, FieldDescriptor>;
|
||||
|
@ -58,6 +62,10 @@ export const mapProcessorTypeToDescriptor: MapProcessorTypeToDescriptor = {
|
|||
label: i18n.translate('xpack.ingestPipelines.processors.label.append', {
|
||||
defaultMessage: 'Append',
|
||||
}),
|
||||
description: i18n.translate('xpack.ingestPipelines.processors.description.append', {
|
||||
defaultMessage:
|
||||
"Appends values to a field's array. If the field contains a single value, the processor first converts it to an array. If the field doesn't exist, the processor creates an array containing the appended values.",
|
||||
}),
|
||||
},
|
||||
bytes: {
|
||||
FieldsComponent: Bytes,
|
||||
|
@ -65,6 +73,10 @@ export const mapProcessorTypeToDescriptor: MapProcessorTypeToDescriptor = {
|
|||
label: i18n.translate('xpack.ingestPipelines.processors.label.bytes', {
|
||||
defaultMessage: 'Bytes',
|
||||
}),
|
||||
description: i18n.translate('xpack.ingestPipelines.processors.description.bytes', {
|
||||
defaultMessage:
|
||||
'Converts digital storage units to bytes. For example, 1KB becomes 1024 bytes.',
|
||||
}),
|
||||
},
|
||||
circle: {
|
||||
FieldsComponent: Circle,
|
||||
|
@ -72,6 +84,9 @@ export const mapProcessorTypeToDescriptor: MapProcessorTypeToDescriptor = {
|
|||
label: i18n.translate('xpack.ingestPipelines.processors.label.circle', {
|
||||
defaultMessage: 'Circle',
|
||||
}),
|
||||
description: i18n.translate('xpack.ingestPipelines.processors.description.circle', {
|
||||
defaultMessage: 'Converts a circle definition into an approximate polygon.',
|
||||
}),
|
||||
},
|
||||
convert: {
|
||||
FieldsComponent: Convert,
|
||||
|
@ -79,6 +94,10 @@ export const mapProcessorTypeToDescriptor: MapProcessorTypeToDescriptor = {
|
|||
label: i18n.translate('xpack.ingestPipelines.processors.label.convert', {
|
||||
defaultMessage: 'Convert',
|
||||
}),
|
||||
description: i18n.translate('xpack.ingestPipelines.processors.description.convert', {
|
||||
defaultMessage:
|
||||
'Converts a field to a different data type. For example, you can convert a string to an long.',
|
||||
}),
|
||||
},
|
||||
csv: {
|
||||
FieldsComponent: CSV,
|
||||
|
@ -86,6 +105,9 @@ export const mapProcessorTypeToDescriptor: MapProcessorTypeToDescriptor = {
|
|||
label: i18n.translate('xpack.ingestPipelines.processors.label.csv', {
|
||||
defaultMessage: 'CSV',
|
||||
}),
|
||||
description: i18n.translate('xpack.ingestPipelines.processors.description.csv', {
|
||||
defaultMessage: 'Extracts fields values from CSV data.',
|
||||
}),
|
||||
},
|
||||
date: {
|
||||
FieldsComponent: DateProcessor,
|
||||
|
@ -93,6 +115,9 @@ export const mapProcessorTypeToDescriptor: MapProcessorTypeToDescriptor = {
|
|||
label: i18n.translate('xpack.ingestPipelines.processors.label.date', {
|
||||
defaultMessage: 'Date',
|
||||
}),
|
||||
description: i18n.translate('xpack.ingestPipelines.processors.description.date', {
|
||||
defaultMessage: 'Converts a date to a document timestamp.',
|
||||
}),
|
||||
},
|
||||
date_index_name: {
|
||||
FieldsComponent: DateIndexName,
|
||||
|
@ -100,6 +125,13 @@ export const mapProcessorTypeToDescriptor: MapProcessorTypeToDescriptor = {
|
|||
label: i18n.translate('xpack.ingestPipelines.processors.label.dateIndexName', {
|
||||
defaultMessage: 'Date index name',
|
||||
}),
|
||||
description: () => (
|
||||
<FormattedMessage
|
||||
id="xpack.ingestPipelines.processors.description.dateIndexName"
|
||||
defaultMessage="Uses a date or timestamp to add documents to the correct time-based index. Index names must use a date math pattern, such as {value}."
|
||||
values={{ value: <EuiCode inline>{'my-index-yyyy-MM-dd'}</EuiCode> }}
|
||||
/>
|
||||
),
|
||||
},
|
||||
dissect: {
|
||||
FieldsComponent: Dissect,
|
||||
|
@ -107,6 +139,9 @@ export const mapProcessorTypeToDescriptor: MapProcessorTypeToDescriptor = {
|
|||
label: i18n.translate('xpack.ingestPipelines.processors.label.dissect', {
|
||||
defaultMessage: 'Dissect',
|
||||
}),
|
||||
description: i18n.translate('xpack.ingestPipelines.processors.description.dissect', {
|
||||
defaultMessage: 'Uses dissect patterns to extract matches from a field.',
|
||||
}),
|
||||
},
|
||||
dot_expander: {
|
||||
FieldsComponent: DotExpander,
|
||||
|
@ -114,6 +149,10 @@ export const mapProcessorTypeToDescriptor: MapProcessorTypeToDescriptor = {
|
|||
label: i18n.translate('xpack.ingestPipelines.processors.label.dotExpander', {
|
||||
defaultMessage: 'Dot expander',
|
||||
}),
|
||||
description: i18n.translate('xpack.ingestPipelines.processors.description.dotExpander', {
|
||||
defaultMessage:
|
||||
'Expands a field containing dot notation into an object field. The object field is then accessible by other processors in the pipeline.',
|
||||
}),
|
||||
},
|
||||
drop: {
|
||||
FieldsComponent: Drop,
|
||||
|
@ -121,6 +160,10 @@ export const mapProcessorTypeToDescriptor: MapProcessorTypeToDescriptor = {
|
|||
label: i18n.translate('xpack.ingestPipelines.processors.label.drop', {
|
||||
defaultMessage: 'Drop',
|
||||
}),
|
||||
description: i18n.translate('xpack.ingestPipelines.processors.description.drop', {
|
||||
defaultMessage:
|
||||
'Drops documents without returning an error. Used to only index documents that meet specified conditions.',
|
||||
}),
|
||||
},
|
||||
enrich: {
|
||||
FieldsComponent: Enrich,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue