[Rollups] Copy improvements (#24528) (#24790)

This commit is contained in:
CJ Cenizal 2018-10-29 15:17:27 -07:00 committed by GitHub
parent 23118dcc51
commit 691e3b5e0f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
20 changed files with 105 additions and 124 deletions

View file

@ -219,19 +219,12 @@ export class StepIndexPatternComponent extends Component {
<EuiCallOut
title={<FormattedMessage
id="kbn.management.createIndexPattern.step.warningHeader"
defaultMessage="Whoops!"
defaultMessage="There's already an index pattern called {query}"
values={{ query }}
/>}
iconType="help"
color="warning"
>
<p>
<FormattedMessage
id="kbn.management.createIndexPattern.step.warningLabel"
defaultMessage="There's already an index pattern called `{query}`"
values={{ query }}
/>
</p>
</EuiCallOut>
/>
);
}

View file

@ -54,6 +54,7 @@ export const FieldList = ({
toolsRight: addButton ? addButton : undefined,
box: {
incremental: true,
placeholder: 'Search',
},
};

View file

@ -6,3 +6,4 @@
export { FieldChooser } from './field_chooser';
export { CronEditor } from './cron_editor';
export { StepError } from './step_error';

View file

@ -0,0 +1,36 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License;
* you may not use this file except in compliance with the Elastic License.
*/
import React, { Fragment } from 'react';
import PropTypes from 'prop-types';
import { FormattedMessage } from '@kbn/i18n/react';
import {
EuiCallOut,
EuiSpacer,
} from '@elastic/eui';
export function StepError({ title = (
<FormattedMessage
id="xpack.rollupJobs.create.stepErrorTitle"
defaultMessage="Fix errors before continuing."
/>
) }) {
return (
<Fragment>
<EuiSpacer size="m" />
<EuiCallOut
title={title}
color="danger"
iconType="cross"
/>
</Fragment>
);
}
StepError.propTypes = {
title: PropTypes.node,
};

View file

@ -11,7 +11,6 @@ import moment from 'moment-timezone';
import {
EuiButtonEmpty,
EuiCallOut,
EuiDescribedFormGroup,
EuiFieldText,
EuiFlexGroup,
@ -34,6 +33,8 @@ import {
dateHistogramAggregationUrl,
} from '../../../services';
import { StepError } from './components';
const timeZoneOptions = moment.tz.names().map(name => ({
value: name,
text: name,
@ -85,7 +86,7 @@ export class StepDateHistogramUi extends Component {
<p>
<FormattedMessage
id="xpack.rollupJobs.create.stepDateHistogram.fieldInterval.preferFixedWarningDayLabel"
defaultMessage="Consider using 24h instead of 1d. This will allow for more flexible queries."
defaultMessage="Consider using 24h instead of 1d. This allows for more flexible queries."
/>
</p>
</EuiTextColor>
@ -98,7 +99,7 @@ export class StepDateHistogramUi extends Component {
<p>
<FormattedMessage
id="xpack.rollupJobs.create.stepDateHistogram.fieldInterval.preferFixedWarningHourLabel"
defaultMessage="Consider using 60m instead of 1h. This will allow for more flexible queries."
defaultMessage="Consider using 60m instead of 1h. This allows for more flexible queries."
/>
</p>
</EuiTextColor>
@ -114,7 +115,7 @@ export class StepDateHistogramUi extends Component {
<p>
<FormattedMessage
id="xpack.rollupJobs.create.stepDateHistogram.fieldInterval.preferFixedWarningYearLabel"
defaultMessage="Consider using the d unit instead of y. This will allow for more flexible queries."
defaultMessage="Consider using the d unit instead of y. This allows for more flexible queries."
/>
</p>
</EuiTextColor>
@ -127,7 +128,7 @@ export class StepDateHistogramUi extends Component {
<p>
<FormattedMessage
id="xpack.rollupJobs.create.stepDateHistogram.fieldInterval.preferFixedWarningMonthLabel"
defaultMessage="Consider using the d unit instead of M. This will allow for more flexible queries."
defaultMessage="Consider using the d unit instead of M. This allows for more flexible queries."
/>
</p>
</EuiTextColor>
@ -140,7 +141,7 @@ export class StepDateHistogramUi extends Component {
<p>
<FormattedMessage
id="xpack.rollupJobs.create.stepDateHistogram.fieldInterval.preferFixedWarningWeekLabel"
defaultMessage="Consider using the d unit instead of w. This will allow for more flexible queries."
defaultMessage="Consider using the d unit instead of w. This allows for more flexible queries."
/>
</p>
</EuiTextColor>
@ -158,7 +159,7 @@ export class StepDateHistogramUi extends Component {
<p>
<FormattedMessage
id="xpack.rollupJobs.create.stepDateHistogram.fieldInterval.helpExampleLabel"
defaultMessage="Example intervals: 1000ms, 30s, 20m, 24h, 2d, 1w, 1M, 1y"
defaultMessage="Example sizes: 1000ms, 30s, 20m, 24h, 2d, 1w, 1M, 1y"
/>
</p>
</Fragment>
@ -247,10 +248,7 @@ export class StepDateHistogramUi extends Component {
<FormattedMessage
id="xpack.rollupJobs.create.stepDateHistogram.sectionDataSourceDescription"
defaultMessage={`
Which field contains the date histogram data and how large should its time buckets be?
Note that smaller, more granular intervals take up proportionally more space.
You can also customize the time zone stored with the rolled-up documents.
The default time zone is UTC.
Note that smaller time buckets take up proportionally more space.
`}
/>
</p>
@ -282,7 +280,7 @@ export class StepDateHistogramUi extends Component {
label={(
<FormattedMessage
id="xpack.rollupJobs.create.stepDateHistogram.fieldIntervalLabel"
defaultMessage="Interval"
defaultMessage="Time bucket size"
/>
)}
error={errorDateHistogramInterval}
@ -331,21 +329,7 @@ export class StepDateHistogramUi extends Component {
return null;
}
return (
<Fragment>
<EuiSpacer size="m" />
<EuiCallOut
title={(
<FormattedMessage
id="xpack.rollupJobs.create.stepDateHistogram.stepErrorTitle"
defaultMessage="Fix errors before going to next step"
/>
)}
color="danger"
iconType="cross"
/>
</Fragment>
);
return <StepError />;
}
}

View file

@ -10,7 +10,6 @@ import { injectI18n, FormattedMessage } from '@kbn/i18n/react';
import {
EuiButtonEmpty,
EuiCallOut,
EuiDescribedFormGroup,
EuiFieldNumber,
EuiFlexGroup,
@ -31,6 +30,7 @@ import {
import {
FieldChooser,
StepError,
} from './components';
export class StepHistogramUi extends Component {
@ -98,7 +98,7 @@ export class StepHistogramUi extends Component {
<FormattedMessage
id="xpack.rollupJobs.create.stepHistogramDescription"
defaultMessage={`
Select the fields you want to bucket using numeric histogram intervals.
Select the fields you want to bucket using numeric intervals.
`}
/>
</p>
@ -230,21 +230,7 @@ export class StepHistogramUi extends Component {
return null;
}
return (
<Fragment>
<EuiSpacer size="m" />
<EuiCallOut
title={(
<FormattedMessage
id="xpack.rollupJobs.create.stepGroups.stepErrorTitle"
defaultMessage="Fix errors before going to next step"
/>
)}
color="danger"
iconType="cross"
/>
</Fragment>
);
return <StepError />;
}
}

View file

@ -10,7 +10,6 @@ import { injectI18n, FormattedMessage } from '@kbn/i18n/react';
import {
EuiButtonEmpty,
EuiCallOut,
EuiDescribedFormGroup,
EuiFieldNumber,
EuiFieldText,
@ -28,7 +27,7 @@ import {
import { INDEX_PATTERN_ILLEGAL_CHARACTERS_VISIBLE } from 'ui/index_patterns';
import { INDEX_ILLEGAL_CHARACTERS_VISIBLE } from 'ui/indices';
import { logisticalDetailsUrl, cronUrl } from '../../../services';
import { CronEditor } from './components';
import { CronEditor, StepError } from './components';
const indexPatternIllegalCharacters = INDEX_PATTERN_ILLEGAL_CHARACTERS_VISIBLE.join(' ');
const indexIllegalCharacters = INDEX_ILLEGAL_CHARACTERS_VISIBLE.join(' ');
@ -99,7 +98,7 @@ export class StepLogisticsUi extends Component {
<p>
<FormattedMessage
id="xpack.rollupJobs.create.stepLogistics.fieldIndexPattern.helpMustMatchLabel"
defaultMessage="Index pattern must match at least one non-rollup index."
defaultMessage="Index pattern must match at least one index that is not a rollup."
/>
</p>
);
@ -111,14 +110,14 @@ export class StepLogisticsUi extends Component {
<p>
<FormattedMessage
id="xpack.rollupJobs.create.stepLogistics.fieldIndexPattern.helpAllowLabel"
defaultMessage="You can use a {asterisk} as a wildcard in your index pattern."
defaultMessage="Use a wildcard ({asterisk}) to match multiple indices."
values={{ asterisk: <strong>*</strong> }}
/>
</p>
<p>
<FormattedMessage
id="xpack.rollupJobs.create.stepLogistics.fieldIndexPattern.helpDisallowLabel"
defaultMessage="You can't use spaces or the characters {characterList}"
defaultMessage="Spaces and the characters {characterList} are not allowed."
values={{ characterList: <strong>{indexPatternIllegalCharacters}</strong> }}
/>
</p>
@ -152,7 +151,7 @@ export class StepLogisticsUi extends Component {
label={(
<FormattedMessage
id="xpack.rollupJobs.create.stepLogistics.fieldCronLabel"
defaultMessage="Cron pattern"
defaultMessage="Cron expression"
/>
)}
error={errorRollupCron}
@ -167,7 +166,7 @@ export class StepLogisticsUi extends Component {
<EuiLink href={cronUrl} target="_blank">
<FormattedMessage
id="xpack.rollupJobs.create.stepLogistics.fieldCron.helpReference.link"
defaultMessage="Learn more about cron syntax"
defaultMessage="Learn more about cron expressions"
/>
</EuiLink>
) }}
@ -219,7 +218,7 @@ export class StepLogisticsUi extends Component {
<EuiLink onClick={this.showAdvancedCron}>
<FormattedMessage
id="xpack.rollupJobs.create.stepLogistics.sectionSchedule.buttonAdvancedLabel"
defaultMessage="Create advanced cron expression"
defaultMessage="Create cron expression"
/>
</EuiLink>
</EuiText >
@ -272,7 +271,7 @@ export class StepLogisticsUi extends Component {
<p>
<FormattedMessage
id="xpack.rollupJobs.create.stepLogisticsDescription"
defaultMessage="Define the manner in which data will be rolled up."
defaultMessage="Define how to run the rollup job and when to index the documents."
/>
</p>
</EuiText>
@ -350,7 +349,7 @@ export class StepLogisticsUi extends Component {
description={(
<FormattedMessage
id="xpack.rollupJobs.create.stepLogistics.sectionDataFlowDescription"
defaultMessage="Which indices do you want to pull data from and which rollup index should store this data?"
defaultMessage="Which indices do you want to roll up and where do you want to store the data?"
/>
)}
fullWidth
@ -388,7 +387,7 @@ export class StepLogisticsUi extends Component {
helpText={(
<FormattedMessage
id="xpack.rollupJobs.create.stepLogistics.fieldRollupIndex.helpDisallowLabel"
defaultMessage="You can't use spaces, commas, or the characters {characterList}"
defaultMessage="Spaces, commas, and the characters {characterList} are not allowed."
values={{ characterList: <strong>{indexIllegalCharacters}</strong> }}
/>
)}
@ -418,7 +417,7 @@ export class StepLogisticsUi extends Component {
<FormattedMessage
id="xpack.rollupJobs.create.stepLogistics.sectionScheduleDescription"
defaultMessage={`
How often should data be rolled up?
How often do you want to roll up the data?
`}
/>
)}
@ -433,7 +432,7 @@ export class StepLogisticsUi extends Component {
<h5>
<FormattedMessage
id="xpack.rollupJobs.create.stepLogistics.sectionPageSizeTitle"
defaultMessage="How many documents should be rolled up at a time?"
defaultMessage="How many documents do you want to roll up at a time?"
/>
</h5>
</EuiTitle>
@ -443,7 +442,7 @@ export class StepLogisticsUi extends Component {
id="xpack.rollupJobs.create.stepLogistics.sectionPageSizeDescription"
defaultMessage={`
A larger page size
will roll up data more quickly, but will require more memory during processing.
will roll up data quicker, but requires more memory.
`}
/>
)}
@ -485,8 +484,9 @@ export class StepLogisticsUi extends Component {
<FormattedMessage
id="xpack.rollupJobs.create.stepLogistics.sectionDelayDescription"
defaultMessage={`
Waiting will yield a higher-fidelity rollup by adjusting for variable ingest latency.
By default, the rollup job attempts to roll up all data that is available.
A latency buffer will delay rolling up data. This will yield a higher-fidelity
rollup by allowing for variable ingest latency. By default, the rollup job
attempts to roll up all data that is available.
`}
/>
)}
@ -496,7 +496,7 @@ export class StepLogisticsUi extends Component {
label={(
<FormattedMessage
id="xpack.rollupJobs.create.stepDateHistogram.fieldDelayLabel"
defaultMessage="Delay (optional)"
defaultMessage="Latency buffer (optional)"
/>
)}
error={errorRollupDelay}
@ -506,7 +506,7 @@ export class StepLogisticsUi extends Component {
<p>
<FormattedMessage
id="xpack.rollupJobs.create.stepDateHistogram.fieldDelay.helpExampleLabel"
defaultMessage="Example delay values: 30s, 20m, 24h, 2d, 1w, 1M"
defaultMessage="Example values: 30s, 20m, 24h, 2d, 1w, 1M"
/>
</p>
</Fragment>
@ -535,21 +535,7 @@ export class StepLogisticsUi extends Component {
return null;
}
return (
<Fragment>
<EuiSpacer size="m" />
<EuiCallOut
title={(
<FormattedMessage
id="xpack.rollupJobs.create.stepLogistics.stepErrorTitle"
defaultMessage="Fix errors before going to next step"
/>
)}
color="danger"
iconType="cross"
/>
</Fragment>
);
return <StepError />;
}
}

View file

@ -10,7 +10,6 @@ import { injectI18n, FormattedMessage } from '@kbn/i18n/react';
import {
EuiButtonEmpty,
EuiCallOut,
EuiCheckbox,
EuiFlexGroup,
EuiFlexItem,
@ -29,6 +28,7 @@ import {
import {
FieldChooser,
StepError,
} from './components';
export class StepMetricsUi extends Component {
@ -190,8 +190,8 @@ export class StepMetricsUi extends Component {
<FormattedMessage
id="xpack.rollupJobs.create.stepMetricsDescription"
defaultMessage={`
Select the metrics that should be collected while rolling up data. By default,
only the doc_counts are collected for each group.
Select the metrics to collect while rolling up data. By default,
only doc_counts are collected for each group.
`}
/>
</p>
@ -252,16 +252,7 @@ export class StepMetricsUi extends Component {
return null;
}
return (
<Fragment>
<EuiSpacer size="m" />
<EuiCallOut
title={errorMetrics}
color="danger"
iconType="cross"
/>
</Fragment>
);
return <StepError title={errorMetrics} />;
}
}

View file

@ -98,8 +98,8 @@ export class StepTermsUi extends Component {
id="xpack.rollupJobs.create.stepTermsDescription"
defaultMessage={`
Select the fields you want to bucket using terms aggregations. This can be
potentially costly for high-cardinality groups such as IP addresses, especially
if the time-bucket is particularly sparse.
costly for high-cardinality fields such as IP addresses,
if the time bucket is sparse.
`}
/>
</p>

View file

@ -44,7 +44,9 @@ export const stepIdToStepConfigMap = {
// Every week on Saturday, at 00:00:00
rollupCron: '0 0 0 ? * 7',
simpleRollupCron: '0 0 0 ? * 7',
rollupPageSize: '',
// The best page size boils down to how much memory the user has, e.g. how many buckets should
// be accumulated at one time. 1000 is probably a safe size without being too small.
rollupPageSize: 1000,
// Though the API doesn't require a delay, in many real-world cases, servers will go down for
// a few hours as they're being restarted. A delay of 1d would allow them that period to reboot
// and the "expense" is pretty negligible in most cases: 1 day of extra non-rolled-up data.

View file

@ -12,7 +12,7 @@ export function validateDateHistogramField(dateHistogramField) {
return [(
<FormattedMessage
id="xpack.rollupJobs.create.errors.dateHistogramFieldMissing"
defaultMessage="You must select a date field"
defaultMessage="Date field is required."
/>
)];
}

View file

@ -17,7 +17,7 @@ export function validateDateHistogramInterval(dateHistogramInterval) {
return [(
<FormattedMessage
id="xpack.rollupJobs.create.errors.dateHistogramIntervalMissing"
defaultMessage="You must provide an interval"
defaultMessage="Interval is required."
/>
)];
}
@ -29,7 +29,7 @@ export function validateDateHistogramInterval(dateHistogramInterval) {
return [(
<FormattedMessage
id="xpack.rollupJobs.create.errors.dateHistogramIntervalInvalidFormat"
defaultMessage="Invalid interval format"
defaultMessage="Invalid interval format."
/>
)];
}

View file

@ -17,7 +17,7 @@ export function validateHistogramInterval(histogram, histogramInterval) {
return [(
<FormattedMessage
id="xpack.rollupJobs.create.errors.histogramIntervalZero"
defaultMessage="Interval must be greater than zero"
defaultMessage="Interval must be greater than zero."
/>
)];
}
@ -26,7 +26,7 @@ export function validateHistogramInterval(histogram, histogramInterval) {
return [(
<FormattedMessage
id="xpack.rollupJobs.create.errors.histogramIntervalMissing"
defaultMessage="You must specify an interval to roll-up these histogram fields"
defaultMessage="An interval is required to roll up these histogram fields."
/>
)];
}

View file

@ -12,7 +12,7 @@ export function validateId(id) {
return [(
<FormattedMessage
id="xpack.rollupJobs.create.errors.idMissing"
defaultMessage="You must provide an ID"
defaultMessage="Name is required."
/>
)];
}

View file

@ -14,7 +14,7 @@ export function validateIndexPattern(indexPattern, rollupIndex) {
return [(
<FormattedMessage
id="xpack.rollupJobs.create.errors.indexPatternMissing"
defaultMessage="You must provide an index pattern"
defaultMessage="Index pattern is required."
/>
)];
}
@ -23,7 +23,7 @@ export function validateIndexPattern(indexPattern, rollupIndex) {
return [(
<FormattedMessage
id="xpack.rollupJobs.create.errors.indexPatternSameAsRollupIndex"
defaultMessage="Index pattern must not be the same as the rollup index"
defaultMessage="Index pattern cannot have the same as the rollup index."
/>
)];
}
@ -40,7 +40,7 @@ export function validateIndexPattern(indexPattern, rollupIndex) {
return [(
<FormattedMessage
id="xpack.rollupJobs.create.errors.indexPatternIllegalCharacters"
defaultMessage="You must remove these characters from your index pattern: {characterList}"
defaultMessage="Remove the characters {characterList} from your index pattern."
values={{ characterList: <strong>{illegalCharacters.join(' ')}</strong> }}
/>
)];
@ -50,7 +50,7 @@ export function validateIndexPattern(indexPattern, rollupIndex) {
return [(
<FormattedMessage
id="xpack.rollupJobs.create.errors.indexPatternSpaces"
defaultMessage="You must remove spaces from your index pattern"
defaultMessage="Remove the spaces from your index pattern."
/>
)];
}

View file

@ -22,7 +22,8 @@ export function validateMetrics(metrics) {
return [(
<FormattedMessage
id="xpack.rollupJobs.create.errors.metricsTypesMissing"
defaultMessage="You must select metrics types for these fields or remove them: {allMissingTypes}"
key="xpack.rollupJobs.create.errors.metricsTypesMissing"
defaultMessage="Select metrics types for these fields or remove them: {allMissingTypes}."
values={{ allMissingTypes }}
/>
)];

View file

@ -13,7 +13,7 @@ export function validateRollupCron(rollupCron) {
return [(
<FormattedMessage
id="xpack.rollupJobs.create.errors.rollupCronMissing"
defaultMessage="You must provide an interval"
defaultMessage="Cron pattern or basic interval is required."
/>
)];
}

View file

@ -25,7 +25,7 @@ export function validateRollupDelay(rollupDelay) {
return [(
<FormattedMessage
id="xpack.rollupJobs.create.errors.rollupDelayInvalidFormat"
defaultMessage="Invalid delay format"
defaultMessage="Invalid delay format."
/>
)];
}

View file

@ -14,7 +14,7 @@ export function validateRollupIndex(rollupIndex, indexPattern) {
return [(
<FormattedMessage
id="xpack.rollupJobs.create.errors.rollupIndexMissing"
defaultMessage="You must provide a rollup index"
defaultMessage="Rollup index is required."
/>
)];
}
@ -23,7 +23,7 @@ export function validateRollupIndex(rollupIndex, indexPattern) {
return [(
<FormattedMessage
id="xpack.rollupJobs.create.errors.rollupIndexSameAsIndexPattern"
defaultMessage="Rollup index must not be the same as the index pattern"
defaultMessage="Rollup index cannot have the same as the index pattern."
/>
)];
}
@ -40,7 +40,7 @@ export function validateRollupIndex(rollupIndex, indexPattern) {
return [(
<FormattedMessage
id="xpack.rollupJobs.create.errors.rollupIndexIllegalCharacters"
defaultMessage="You must remove these characters from your rollup index name: {characterList}"
defaultMessage="Remove the characters {characterList} from your rollup index name."
values={{ characterList: <strong>{illegalCharacters.join(' ')}</strong> }}
/>
)];
@ -50,7 +50,7 @@ export function validateRollupIndex(rollupIndex, indexPattern) {
return [(
<FormattedMessage
id="xpack.rollupJobs.create.errors.rollupIndexCommas"
defaultMessage="You must remove commas from your rollup index name"
defaultMessage="Remove the commas from your rollup index name."
/>
)];
}
@ -59,7 +59,7 @@ export function validateRollupIndex(rollupIndex, indexPattern) {
return [(
<FormattedMessage
id="xpack.rollupJobs.create.errors.rollupIndexSpaces"
defaultMessage="You must remove spaces from your rollup index name"
defaultMessage="Remove the spaces from your rollup index name."
/>
)];
}
@ -68,7 +68,7 @@ export function validateRollupIndex(rollupIndex, indexPattern) {
return [(
<FormattedMessage
id="xpack.rollupJobs.create.errors.rollupIndexSpaces"
defaultMessage="Index names can't begin with periods"
defaultMessage="Index names cannot begin with periods."
/>
)];
}

View file

@ -12,7 +12,7 @@ export function validateRollupPageSize(rollupPageSize) {
return [(
<FormattedMessage
id="xpack.rollupJobs.create.errors.rollupPageSizeMissing"
defaultMessage="You must provide a page size"
defaultMessage="Page size is required."
/>
)];
}
@ -21,7 +21,7 @@ export function validateRollupPageSize(rollupPageSize) {
return [(
<FormattedMessage
id="xpack.rollupJobs.create.errors.rollupPageSizeGreaterThanZero"
defaultMessage="Page size must be greater than zero"
defaultMessage="Page size must be greater than zero."
/>
)];
}