|
@ -19,9 +19,10 @@
|
|||
|
||||
import _ from 'lodash';
|
||||
import moment from 'moment';
|
||||
import { esFilters } from '../../../../../../../plugins/data/public';
|
||||
import { esFilters } from '../../../../../../plugins/data/public';
|
||||
import { deserializeAggConfig } from '../../search/expressions/utils';
|
||||
|
||||
export function onBrushEvent(event) {
|
||||
export async function onBrushEvent(event, getIndexPatterns) {
|
||||
const isNumber = event.data.ordered;
|
||||
const isDate = isNumber && event.data.ordered.date;
|
||||
|
||||
|
@ -29,9 +30,12 @@ export function onBrushEvent(event) {
|
|||
if (!xRaw) return [];
|
||||
const column = xRaw.table.columns[xRaw.column];
|
||||
if (!column) return [];
|
||||
const aggConfig = event.aggConfigs[xRaw.column];
|
||||
if (!aggConfig) return [];
|
||||
const indexPattern = aggConfig.getIndexPattern();
|
||||
if (!column.meta) return [];
|
||||
const indexPattern = await getIndexPatterns().get(column.meta.indexPatternId);
|
||||
const aggConfig = deserializeAggConfig({
|
||||
...column.meta,
|
||||
indexPattern,
|
||||
});
|
||||
const field = aggConfig.params.field;
|
||||
if (!field) return [];
|
||||
|
|
@ -20,21 +20,36 @@
|
|||
import _ from 'lodash';
|
||||
import moment from 'moment';
|
||||
import expect from '@kbn/expect';
|
||||
|
||||
jest.mock('../../../../../ui/public/agg_types/agg_configs', () => ({
|
||||
AggConfigs: function AggConfigs() {
|
||||
return {
|
||||
createAggConfig: ({ params }) => ({
|
||||
params,
|
||||
getIndexPattern: () => ({
|
||||
timeFieldName: 'time',
|
||||
}),
|
||||
}),
|
||||
};
|
||||
},
|
||||
}));
|
||||
|
||||
import { onBrushEvent } from './brush_event';
|
||||
|
||||
describe('brushEvent', () => {
|
||||
const DAY_IN_MS = 24 * 60 * 60 * 1000;
|
||||
const JAN_01_2014 = 1388559600000;
|
||||
|
||||
const aggConfigs = [
|
||||
{
|
||||
params: {},
|
||||
getIndexPattern: () => ({
|
||||
timeFieldName: 'time',
|
||||
}),
|
||||
},
|
||||
];
|
||||
|
||||
const baseEvent = {
|
||||
aggConfigs: [
|
||||
{
|
||||
params: {},
|
||||
getIndexPattern: () => ({
|
||||
timeFieldName: 'time',
|
||||
}),
|
||||
},
|
||||
],
|
||||
data: {
|
||||
fieldFormatter: _.constant({}),
|
||||
series: [
|
||||
|
@ -47,6 +62,11 @@ describe('brushEvent', () => {
|
|||
columns: [
|
||||
{
|
||||
id: '1',
|
||||
meta: {
|
||||
type: 'histogram',
|
||||
indexPatternId: 'indexPatternId',
|
||||
aggConfigParams: aggConfigs[0].params,
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
|
@ -69,9 +89,11 @@ describe('brushEvent', () => {
|
|||
expect(onBrushEvent).to.be.a(Function);
|
||||
});
|
||||
|
||||
test('ignores event when data.xAxisField not provided', () => {
|
||||
test('ignores event when data.xAxisField not provided', async () => {
|
||||
const event = _.cloneDeep(baseEvent);
|
||||
const filters = onBrushEvent(event);
|
||||
const filters = await onBrushEvent(event, () => ({
|
||||
get: () => baseEvent.data.indexPattern,
|
||||
}));
|
||||
expect(filters.length).to.equal(0);
|
||||
});
|
||||
|
||||
|
@ -84,22 +106,26 @@ describe('brushEvent', () => {
|
|||
};
|
||||
|
||||
beforeEach(() => {
|
||||
aggConfigs[0].params.field = dateField;
|
||||
dateEvent = _.cloneDeep(baseEvent);
|
||||
dateEvent.aggConfigs[0].params.field = dateField;
|
||||
dateEvent.data.ordered = { date: true };
|
||||
});
|
||||
|
||||
test('by ignoring the event when range spans zero time', () => {
|
||||
test('by ignoring the event when range spans zero time', async () => {
|
||||
const event = _.cloneDeep(dateEvent);
|
||||
event.range = [JAN_01_2014, JAN_01_2014];
|
||||
const filters = onBrushEvent(event);
|
||||
const filters = await onBrushEvent(event, () => ({
|
||||
get: () => dateEvent.data.indexPattern,
|
||||
}));
|
||||
expect(filters.length).to.equal(0);
|
||||
});
|
||||
|
||||
test('by updating the timefilter', () => {
|
||||
test('by updating the timefilter', async () => {
|
||||
const event = _.cloneDeep(dateEvent);
|
||||
event.range = [JAN_01_2014, JAN_01_2014 + DAY_IN_MS];
|
||||
const filters = onBrushEvent(event);
|
||||
const filters = await onBrushEvent(event, () => ({
|
||||
get: async () => dateEvent.data.indexPattern,
|
||||
}));
|
||||
expect(filters[0].range.time.gte).to.be(new Date(JAN_01_2014).toISOString());
|
||||
// Set to a baseline timezone for comparison.
|
||||
expect(filters[0].range.time.lt).to.be(new Date(JAN_01_2014 + DAY_IN_MS).toISOString());
|
||||
|
@ -114,17 +140,19 @@ describe('brushEvent', () => {
|
|||
};
|
||||
|
||||
beforeEach(() => {
|
||||
aggConfigs[0].params.field = dateField;
|
||||
dateEvent = _.cloneDeep(baseEvent);
|
||||
dateEvent.aggConfigs[0].params.field = dateField;
|
||||
dateEvent.data.ordered = { date: true };
|
||||
});
|
||||
|
||||
test('creates a new range filter', () => {
|
||||
test('creates a new range filter', async () => {
|
||||
const event = _.cloneDeep(dateEvent);
|
||||
const rangeBegin = JAN_01_2014;
|
||||
const rangeEnd = rangeBegin + DAY_IN_MS;
|
||||
event.range = [rangeBegin, rangeEnd];
|
||||
const filters = onBrushEvent(event);
|
||||
const filters = await onBrushEvent(event, () => ({
|
||||
get: () => dateEvent.data.indexPattern,
|
||||
}));
|
||||
expect(filters.length).to.equal(1);
|
||||
expect(filters[0].range.anotherTimeField.gte).to.equal(moment(rangeBegin).toISOString());
|
||||
expect(filters[0].range.anotherTimeField.lt).to.equal(moment(rangeEnd).toISOString());
|
||||
|
@ -142,22 +170,26 @@ describe('brushEvent', () => {
|
|||
};
|
||||
|
||||
beforeEach(() => {
|
||||
aggConfigs[0].params.field = numberField;
|
||||
numberEvent = _.cloneDeep(baseEvent);
|
||||
numberEvent.aggConfigs[0].params.field = numberField;
|
||||
numberEvent.data.ordered = { date: false };
|
||||
});
|
||||
|
||||
test('by ignoring the event when range does not span at least 2 values', () => {
|
||||
test('by ignoring the event when range does not span at least 2 values', async () => {
|
||||
const event = _.cloneDeep(numberEvent);
|
||||
event.range = [1];
|
||||
const filters = onBrushEvent(event);
|
||||
const filters = await onBrushEvent(event, () => ({
|
||||
get: () => numberEvent.data.indexPattern,
|
||||
}));
|
||||
expect(filters.length).to.equal(0);
|
||||
});
|
||||
|
||||
test('by creating a new filter', () => {
|
||||
test('by creating a new filter', async () => {
|
||||
const event = _.cloneDeep(numberEvent);
|
||||
event.range = [1, 2, 3, 4];
|
||||
const filters = onBrushEvent(event);
|
||||
const filters = await onBrushEvent(event, () => ({
|
||||
get: () => numberEvent.data.indexPattern,
|
||||
}));
|
||||
expect(filters.length).to.equal(1);
|
||||
expect(filters[0].range.numberField.gte).to.equal(1);
|
||||
expect(filters[0].range.numberField.lt).to.equal(4);
|
|
@ -17,7 +17,7 @@
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import { chromeServiceMock } from '../../../../../../../core/public/mocks';
|
||||
import { chromeServiceMock } from '../../../../../../core/public/mocks';
|
||||
|
||||
jest.doMock('ui/new_platform', () => ({
|
||||
npStart: {
|
|
@ -17,8 +17,10 @@
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import { onBrushEvent } from './brush_event';
|
||||
import { esFilters } from '../../../../../../../plugins/data/public';
|
||||
import { esFilters } from '../../../../../../plugins/data/public';
|
||||
import { deserializeAggConfig } from '../../search/expressions/utils';
|
||||
// eslint-disable-next-line @kbn/eslint/no-restricted-paths
|
||||
import { getIndexPatterns } from '../../../../../../plugins/data/public/services';
|
||||
|
||||
/**
|
||||
* For terms aggregations on `__other__` buckets, this assembles a list of applicable filter
|
||||
|
@ -63,11 +65,16 @@ const getOtherBucketFilterTerms = (table, columnIndex, rowIndex) => {
|
|||
* @param {string} cellValue - value of the current cell
|
||||
* @return {array|string} - filter or list of filters to provide to queryFilter.addFilters()
|
||||
*/
|
||||
const createFilter = (aggConfigs, table, columnIndex, rowIndex, cellValue) => {
|
||||
const createFilter = async (table, columnIndex, rowIndex) => {
|
||||
if (!table || !table.columns || !table.columns[columnIndex]) return;
|
||||
const column = table.columns[columnIndex];
|
||||
const aggConfig = aggConfigs[columnIndex];
|
||||
const aggConfig = deserializeAggConfig({
|
||||
type: column.meta.type,
|
||||
aggConfigParams: column.meta.aggConfigParams,
|
||||
indexPattern: await getIndexPatterns().get(column.meta.indexPatternId),
|
||||
});
|
||||
let filter = [];
|
||||
const value = rowIndex > -1 ? table.rows[rowIndex][column.id] : cellValue;
|
||||
const value = rowIndex > -1 ? table.rows[rowIndex][column.id] : null;
|
||||
if (value === null || value === undefined || !aggConfig.isFilterable()) {
|
||||
return;
|
||||
}
|
||||
|
@ -85,26 +92,28 @@ const createFilter = (aggConfigs, table, columnIndex, rowIndex, cellValue) => {
|
|||
return filter;
|
||||
};
|
||||
|
||||
const createFiltersFromEvent = event => {
|
||||
const createFiltersFromEvent = async event => {
|
||||
const filters = [];
|
||||
const dataPoints = event.data || [event];
|
||||
|
||||
dataPoints
|
||||
.filter(point => point)
|
||||
.forEach(val => {
|
||||
const { table, column, row, value } = val;
|
||||
const filter = createFilter(event.aggConfigs, table, column, row, value);
|
||||
if (filter) {
|
||||
filter.forEach(f => {
|
||||
if (event.negate) {
|
||||
f = esFilters.toggleFilterNegated(f);
|
||||
}
|
||||
filters.push(f);
|
||||
});
|
||||
}
|
||||
});
|
||||
await Promise.all(
|
||||
dataPoints
|
||||
.filter(point => point)
|
||||
.map(async val => {
|
||||
const { table, column, row } = val;
|
||||
const filter = await createFilter(table, column, row);
|
||||
if (filter) {
|
||||
filter.forEach(f => {
|
||||
if (event.negate) {
|
||||
f = esFilters.toggleFilterNegated(f);
|
||||
}
|
||||
filters.push(f);
|
||||
});
|
||||
}
|
||||
})
|
||||
);
|
||||
|
||||
return filters;
|
||||
};
|
||||
|
||||
export { createFilter, createFiltersFromEvent, onBrushEvent };
|
||||
export { createFilter, createFiltersFromEvent };
|
|
@ -0,0 +1,91 @@
|
|||
/*
|
||||
* Licensed to Elasticsearch B.V. under one or more contributor
|
||||
* license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright
|
||||
* ownership. Elasticsearch B.V. licenses this file to you under
|
||||
* the Apache License, Version 2.0 (the "License"); you may
|
||||
* not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
import { i18n } from '@kbn/i18n';
|
||||
import {
|
||||
IAction,
|
||||
createAction,
|
||||
IncompatibleActionError,
|
||||
} from '../../../../../plugins/ui_actions/public';
|
||||
// @ts-ignore
|
||||
import { onBrushEvent } from './filters/brush_event';
|
||||
import {
|
||||
esFilters,
|
||||
FilterManager,
|
||||
TimefilterContract,
|
||||
changeTimeFilter,
|
||||
extractTimeFilter,
|
||||
mapAndFlattenFilters,
|
||||
} from '../../../../../plugins/data/public';
|
||||
// eslint-disable-next-line @kbn/eslint/no-restricted-paths
|
||||
import { getIndexPatterns } from '../../../../../plugins/data/public/services';
|
||||
|
||||
export const SELECT_RANGE_ACTION = 'SELECT_RANGE_ACTION';
|
||||
|
||||
interface ActionContext {
|
||||
data: any;
|
||||
timeFieldName: string;
|
||||
}
|
||||
|
||||
async function isCompatible(context: ActionContext) {
|
||||
try {
|
||||
const filters: esFilters.Filter[] = (await onBrushEvent(context.data, getIndexPatterns)) || [];
|
||||
return filters.length > 0;
|
||||
} catch {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
export function selectRangeAction(
|
||||
filterManager: FilterManager,
|
||||
timeFilter: TimefilterContract
|
||||
): IAction<ActionContext> {
|
||||
return createAction<ActionContext>({
|
||||
type: SELECT_RANGE_ACTION,
|
||||
id: SELECT_RANGE_ACTION,
|
||||
getDisplayName: () => {
|
||||
return i18n.translate('data.filter.applyFilterActionTitle', {
|
||||
defaultMessage: 'Apply filter to current view',
|
||||
});
|
||||
},
|
||||
isCompatible,
|
||||
execute: async ({ timeFieldName, data }: ActionContext) => {
|
||||
if (!(await isCompatible({ timeFieldName, data }))) {
|
||||
throw new IncompatibleActionError();
|
||||
}
|
||||
|
||||
const filters: esFilters.Filter[] = (await onBrushEvent(data, getIndexPatterns)) || [];
|
||||
|
||||
const selectedFilters: esFilters.Filter[] = mapAndFlattenFilters(filters);
|
||||
|
||||
if (timeFieldName) {
|
||||
const { timeRangeFilter, restOfFilters } = extractTimeFilter(
|
||||
timeFieldName,
|
||||
selectedFilters
|
||||
);
|
||||
filterManager.addFilters(restOfFilters);
|
||||
if (timeRangeFilter) {
|
||||
changeTimeFilter(timeFilter, timeRangeFilter);
|
||||
}
|
||||
} else {
|
||||
filterManager.addFilters(selectedFilters);
|
||||
}
|
||||
},
|
||||
});
|
||||
}
|
|
@ -0,0 +1,126 @@
|
|||
/*
|
||||
* Licensed to Elasticsearch B.V. under one or more contributor
|
||||
* license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright
|
||||
* ownership. Elasticsearch B.V. licenses this file to you under
|
||||
* the Apache License, Version 2.0 (the "License"); you may
|
||||
* not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
import { i18n } from '@kbn/i18n';
|
||||
import { toMountPoint } from '../../../../../plugins/kibana_react/public';
|
||||
import {
|
||||
IAction,
|
||||
createAction,
|
||||
IncompatibleActionError,
|
||||
} from '../../../../../plugins/ui_actions/public';
|
||||
// eslint-disable-next-line @kbn/eslint/no-restricted-paths
|
||||
import { getOverlays, getIndexPatterns } from '../../../../../plugins/data/public/services';
|
||||
// eslint-disable-next-line @kbn/eslint/no-restricted-paths
|
||||
import { applyFiltersPopover } from '../../../../../plugins/data/public/ui/apply_filters';
|
||||
// @ts-ignore
|
||||
import { createFiltersFromEvent } from './filters/create_filters_from_event';
|
||||
import {
|
||||
esFilters,
|
||||
FilterManager,
|
||||
TimefilterContract,
|
||||
changeTimeFilter,
|
||||
extractTimeFilter,
|
||||
mapAndFlattenFilters,
|
||||
} from '../../../../../plugins/data/public';
|
||||
|
||||
export const VALUE_CLICK_ACTION = 'VALUE_CLICK_ACTION';
|
||||
|
||||
interface ActionContext {
|
||||
data: any;
|
||||
timeFieldName: string;
|
||||
}
|
||||
|
||||
async function isCompatible(context: ActionContext) {
|
||||
try {
|
||||
const filters: esFilters.Filter[] = (await createFiltersFromEvent(context.data)) || [];
|
||||
return filters.length > 0;
|
||||
} catch {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
export function valueClickAction(
|
||||
filterManager: FilterManager,
|
||||
timeFilter: TimefilterContract
|
||||
): IAction<ActionContext> {
|
||||
return createAction<ActionContext>({
|
||||
type: VALUE_CLICK_ACTION,
|
||||
id: VALUE_CLICK_ACTION,
|
||||
getDisplayName: () => {
|
||||
return i18n.translate('data.filter.applyFilterActionTitle', {
|
||||
defaultMessage: 'Apply filter to current view',
|
||||
});
|
||||
},
|
||||
isCompatible,
|
||||
execute: async ({ timeFieldName, data }: ActionContext) => {
|
||||
if (!(await isCompatible({ timeFieldName, data }))) {
|
||||
throw new IncompatibleActionError();
|
||||
}
|
||||
|
||||
const filters: esFilters.Filter[] = (await createFiltersFromEvent(data)) || [];
|
||||
|
||||
let selectedFilters: esFilters.Filter[] = mapAndFlattenFilters(filters);
|
||||
|
||||
if (selectedFilters.length > 1) {
|
||||
const indexPatterns = await Promise.all(
|
||||
filters.map(filter => {
|
||||
return getIndexPatterns().get(filter.meta.index!);
|
||||
})
|
||||
);
|
||||
|
||||
const filterSelectionPromise: Promise<esFilters.Filter[]> = new Promise(resolve => {
|
||||
const overlay = getOverlays().openModal(
|
||||
toMountPoint(
|
||||
applyFiltersPopover(
|
||||
filters,
|
||||
indexPatterns,
|
||||
() => {
|
||||
overlay.close();
|
||||
resolve([]);
|
||||
},
|
||||
(filterSelection: esFilters.Filter[]) => {
|
||||
overlay.close();
|
||||
resolve(filterSelection);
|
||||
}
|
||||
)
|
||||
),
|
||||
{
|
||||
'data-test-subj': 'selectFilterOverlay',
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
selectedFilters = await filterSelectionPromise;
|
||||
}
|
||||
|
||||
if (timeFieldName) {
|
||||
const { timeRangeFilter, restOfFilters } = extractTimeFilter(
|
||||
timeFieldName,
|
||||
selectedFilters
|
||||
);
|
||||
filterManager.addFilters(restOfFilters);
|
||||
if (timeRangeFilter) {
|
||||
changeTimeFilter(timeFilter, timeRangeFilter);
|
||||
}
|
||||
} else {
|
||||
filterManager.addFilters(selectedFilters);
|
||||
}
|
||||
},
|
||||
});
|
||||
}
|
|
@ -39,8 +39,6 @@ import { plugin } from '.';
|
|||
|
||||
const dataPlugin = plugin();
|
||||
|
||||
export const setup = dataPlugin.setup(npSetup.core);
|
||||
export const setup = dataPlugin.setup(npSetup.core, npSetup.plugins);
|
||||
|
||||
export const start = dataPlugin.start(npStart.core, {
|
||||
data: npStart.plugins.data,
|
||||
});
|
||||
export const start = dataPlugin.start(npStart.core, npStart.plugins);
|
||||
|
|
|
@ -22,6 +22,7 @@ import {
|
|||
DataPublicPluginStart,
|
||||
addSearchStrategy,
|
||||
defaultSearchStrategy,
|
||||
DataPublicPluginSetup,
|
||||
} from '../../../../plugins/data/public';
|
||||
import { ExpressionsSetup } from '../../../../plugins/expressions/public';
|
||||
|
||||
|
@ -32,15 +33,27 @@ import {
|
|||
setInjectedMetadata,
|
||||
setFieldFormats,
|
||||
setSearchService,
|
||||
setOverlays,
|
||||
// eslint-disable-next-line @kbn/eslint/no-restricted-paths
|
||||
} from '../../../../plugins/data/public/services';
|
||||
import { SELECT_RANGE_ACTION, selectRangeAction } from './actions/select_range_action';
|
||||
import { VALUE_CLICK_ACTION, valueClickAction } from './actions/value_click_action';
|
||||
import {
|
||||
SELECT_RANGE_TRIGGER,
|
||||
VALUE_CLICK_TRIGGER,
|
||||
// eslint-disable-next-line @kbn/eslint/no-restricted-paths
|
||||
} from '../../../../plugins/embeddable/public/lib/triggers';
|
||||
import { IUiActionsSetup, IUiActionsStart } from '../../../../plugins/ui_actions/public';
|
||||
|
||||
export interface DataPluginSetupDependencies {
|
||||
data: DataPublicPluginSetup;
|
||||
expressions: ExpressionsSetup;
|
||||
uiActions: IUiActionsSetup;
|
||||
}
|
||||
|
||||
export interface DataPluginStartDependencies {
|
||||
data: DataPublicPluginStart;
|
||||
uiActions: IUiActionsStart;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -64,19 +77,30 @@ export interface DataStart {} // eslint-disable-line @typescript-eslint/no-empty
|
|||
|
||||
export class DataPlugin
|
||||
implements Plugin<void, DataStart, DataPluginSetupDependencies, DataPluginStartDependencies> {
|
||||
public setup(core: CoreSetup) {
|
||||
public setup(core: CoreSetup, { data, uiActions }: DataPluginSetupDependencies) {
|
||||
setInjectedMetadata(core.injectedMetadata);
|
||||
|
||||
// This is to be deprecated once we switch to the new search service fully
|
||||
addSearchStrategy(defaultSearchStrategy);
|
||||
|
||||
uiActions.registerAction(
|
||||
selectRangeAction(data.query.filterManager, data.query.timefilter.timefilter)
|
||||
);
|
||||
uiActions.registerAction(
|
||||
valueClickAction(data.query.filterManager, data.query.timefilter.timefilter)
|
||||
);
|
||||
}
|
||||
|
||||
public start(core: CoreStart, { data }: DataPluginStartDependencies): DataStart {
|
||||
public start(core: CoreStart, { data, uiActions }: DataPluginStartDependencies): DataStart {
|
||||
setUiSettings(core.uiSettings);
|
||||
setQueryService(data.query);
|
||||
setIndexPatterns(data.indexPatterns);
|
||||
setFieldFormats(data.fieldFormats);
|
||||
setSearchService(data.search);
|
||||
setOverlays(core.overlays);
|
||||
|
||||
uiActions.attachAction(SELECT_RANGE_TRIGGER, SELECT_RANGE_ACTION);
|
||||
uiActions.attachAction(VALUE_CLICK_TRIGGER, VALUE_CLICK_ACTION);
|
||||
|
||||
return {};
|
||||
}
|
||||
|
|
|
@ -19,9 +19,9 @@
|
|||
|
||||
import { set } from 'lodash';
|
||||
// @ts-ignore
|
||||
import { createFilter } from '../../../../visualizations/public';
|
||||
import { FormattedData } from '../../../../../../plugins/inspector/public';
|
||||
|
||||
// @ts-ignore
|
||||
import { createFilter } from './create_filter';
|
||||
interface Column {
|
||||
id: string;
|
||||
name: string;
|
||||
|
|
|
@ -0,0 +1,66 @@
|
|||
/*
|
||||
* Licensed to Elasticsearch B.V. under one or more contributor
|
||||
* license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright
|
||||
* ownership. Elasticsearch B.V. licenses this file to you under
|
||||
* the Apache License, Version 2.0 (the "License"); you may
|
||||
* not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
const getOtherBucketFilterTerms = (table, columnIndex, rowIndex) => {
|
||||
if (rowIndex === -1) {
|
||||
return [];
|
||||
}
|
||||
|
||||
// get only rows where cell value matches current row for all the fields before columnIndex
|
||||
const rows = table.rows.filter(row => {
|
||||
return table.columns.every((column, i) => {
|
||||
return row[column.id] === table.rows[rowIndex][column.id] || i >= columnIndex;
|
||||
});
|
||||
});
|
||||
const terms = rows.map(row => row[table.columns[columnIndex].id]);
|
||||
|
||||
return [
|
||||
...new Set(
|
||||
terms.filter(term => {
|
||||
const notOther = term !== '__other__';
|
||||
const notMissing = term !== '__missing__';
|
||||
return notOther && notMissing;
|
||||
})
|
||||
),
|
||||
];
|
||||
};
|
||||
|
||||
const createFilter = (aggConfigs, table, columnIndex, rowIndex, cellValue) => {
|
||||
const column = table.columns[columnIndex];
|
||||
const aggConfig = aggConfigs[columnIndex];
|
||||
let filter = [];
|
||||
const value = rowIndex > -1 ? table.rows[rowIndex][column.id] : cellValue;
|
||||
if (value === null || value === undefined || !aggConfig.isFilterable()) {
|
||||
return;
|
||||
}
|
||||
if (aggConfig.type.name === 'terms' && aggConfig.params.otherBucket) {
|
||||
const terms = getOtherBucketFilterTerms(table, columnIndex, rowIndex);
|
||||
filter = aggConfig.createFilter(value, { terms });
|
||||
} else {
|
||||
filter = aggConfig.createFilter(value);
|
||||
}
|
||||
|
||||
if (!Array.isArray(filter)) {
|
||||
filter = [filter];
|
||||
}
|
||||
|
||||
return filter;
|
||||
};
|
||||
|
||||
export { createFilter };
|
|
@ -46,6 +46,7 @@ import { Adapters } from '../../../../../../plugins/inspector/public';
|
|||
// eslint-disable-next-line @kbn/eslint/no-restricted-paths
|
||||
import { getQueryService, getIndexPatterns } from '../../../../../../plugins/data/public/services';
|
||||
import { getRequestInspectorStats, getResponseInspectorStats } from '../..';
|
||||
import { serializeAggConfig } from './utils';
|
||||
|
||||
export interface RequestHandlerParams {
|
||||
searchSource: ISearchSource;
|
||||
|
@ -289,6 +290,7 @@ export const esaggs = (): ExpressionFunction<typeof name, Context, Arguments, Re
|
|||
const cleanedColumn: KibanaDatatableColumn = {
|
||||
id: column.id,
|
||||
name: column.name,
|
||||
meta: serializeAggConfig(column.aggConfig),
|
||||
};
|
||||
if (args.includeFormatHints) {
|
||||
cleanedColumn.formatHint = createFormat(column.aggConfig);
|
||||
|
|
|
@ -0,0 +1,51 @@
|
|||
/*
|
||||
* Licensed to Elasticsearch B.V. under one or more contributor
|
||||
* license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright
|
||||
* ownership. Elasticsearch B.V. licenses this file to you under
|
||||
* the Apache License, Version 2.0 (the "License"); you may
|
||||
* not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
import { AggConfig } from 'ui/agg_types/agg_config';
|
||||
import { AggConfigs } from '../../../../../ui/public/agg_types/agg_configs';
|
||||
import { KibanaDatatableColumnMeta } from '../../../../../../plugins/expressions/common/expression_types';
|
||||
import { IndexPattern } from '../../../../../../plugins/data/public';
|
||||
|
||||
export const serializeAggConfig = (aggConfig: AggConfig): KibanaDatatableColumnMeta => {
|
||||
return {
|
||||
type: aggConfig.type.name,
|
||||
indexPatternId: aggConfig.getIndexPattern().id,
|
||||
aggConfigParams: aggConfig.toJSON().params,
|
||||
};
|
||||
};
|
||||
|
||||
interface DeserializeAggConfigParams {
|
||||
type: string;
|
||||
aggConfigParams: Record<string, any>;
|
||||
indexPattern: IndexPattern;
|
||||
}
|
||||
|
||||
export const deserializeAggConfig = ({
|
||||
type,
|
||||
aggConfigParams,
|
||||
indexPattern,
|
||||
}: DeserializeAggConfigParams) => {
|
||||
const aggConfigs = new AggConfigs(indexPattern);
|
||||
const aggConfig = aggConfigs.createAggConfig({
|
||||
enabled: true,
|
||||
type,
|
||||
params: aggConfigParams,
|
||||
});
|
||||
return aggConfig;
|
||||
};
|
|
@ -18,3 +18,4 @@
|
|||
*/
|
||||
|
||||
export { getRequestInspectorStats, getResponseInspectorStats } from './utils';
|
||||
export { serializeAggConfig } from './expressions/utils';
|
||||
|
|
|
@ -34,8 +34,8 @@ jest.mock('@elastic/eui', () => ({
|
|||
jest.mock('../../../legacy_imports', () => ({
|
||||
getTableAggs: jest.fn(),
|
||||
}));
|
||||
jest.mock('../../../../../visualizations/public', () => ({
|
||||
createFiltersFromEvent: jest.fn().mockReturnValue(['yes']),
|
||||
jest.mock('../../../../../data/public/actions/filters/create_filters_from_event', () => ({
|
||||
createFiltersFromEvent: jest.fn().mockResolvedValue(['yes']),
|
||||
}));
|
||||
|
||||
const vis = {
|
||||
|
@ -95,8 +95,8 @@ const uiState = {
|
|||
setSilent: jest.fn(),
|
||||
};
|
||||
|
||||
const getWrapper = (props?: Partial<VisLegendProps>) =>
|
||||
mount(
|
||||
const getWrapper = async (props?: Partial<VisLegendProps>) => {
|
||||
const wrapper = mount(
|
||||
<I18nProvider>
|
||||
<VisLegend
|
||||
position="top"
|
||||
|
@ -109,6 +109,11 @@ const getWrapper = (props?: Partial<VisLegendProps>) =>
|
|||
</I18nProvider>
|
||||
);
|
||||
|
||||
await (wrapper.find(VisLegend).instance() as VisLegend).refresh();
|
||||
wrapper.update();
|
||||
return wrapper;
|
||||
};
|
||||
|
||||
const getLegendItems = (wrapper: ReactWrapper) => wrapper.find('.visLegend__button');
|
||||
|
||||
describe('VisLegend Component', () => {
|
||||
|
@ -120,9 +125,9 @@ describe('VisLegend Component', () => {
|
|||
});
|
||||
|
||||
describe('Legend open', () => {
|
||||
beforeEach(() => {
|
||||
beforeEach(async () => {
|
||||
mockState.set('vis.legendOpen', true);
|
||||
wrapper = getWrapper();
|
||||
wrapper = await getWrapper();
|
||||
});
|
||||
|
||||
it('should match the snapshot', () => {
|
||||
|
@ -131,9 +136,9 @@ describe('VisLegend Component', () => {
|
|||
});
|
||||
|
||||
describe('Legend closed', () => {
|
||||
beforeEach(() => {
|
||||
beforeEach(async () => {
|
||||
mockState.set('vis.legendOpen', false);
|
||||
wrapper = getWrapper();
|
||||
wrapper = await getWrapper();
|
||||
});
|
||||
|
||||
it('should match the snapshot', () => {
|
||||
|
@ -142,25 +147,26 @@ describe('VisLegend Component', () => {
|
|||
});
|
||||
|
||||
describe('Highlighting', () => {
|
||||
beforeEach(() => {
|
||||
wrapper = getWrapper();
|
||||
beforeEach(async () => {
|
||||
wrapper = await getWrapper();
|
||||
});
|
||||
|
||||
it('should call highlight handler when legend item is focused', () => {
|
||||
it('should call highlight handler when legend item is focused', async () => {
|
||||
const first = getLegendItems(wrapper).first();
|
||||
|
||||
first.simulate('focus');
|
||||
|
||||
expect(vislibVis.handler.highlight).toHaveBeenCalledTimes(1);
|
||||
});
|
||||
|
||||
it('should call highlight handler when legend item is hovered', () => {
|
||||
it('should call highlight handler when legend item is hovered', async () => {
|
||||
const first = getLegendItems(wrapper).first();
|
||||
first.simulate('mouseEnter');
|
||||
|
||||
expect(vislibVis.handler.highlight).toHaveBeenCalledTimes(1);
|
||||
});
|
||||
|
||||
it('should call unHighlight handler when legend item is blurred', () => {
|
||||
it('should call unHighlight handler when legend item is blurred', async () => {
|
||||
let first = getLegendItems(wrapper).first();
|
||||
first.simulate('focus');
|
||||
first = getLegendItems(wrapper).first();
|
||||
|
@ -169,7 +175,7 @@ describe('VisLegend Component', () => {
|
|||
expect(vislibVis.handler.unHighlight).toHaveBeenCalledTimes(1);
|
||||
});
|
||||
|
||||
it('should call unHighlight handler when legend item is unhovered', () => {
|
||||
it('should call unHighlight handler when legend item is unhovered', async () => {
|
||||
const first = getLegendItems(wrapper).first();
|
||||
|
||||
first.simulate('mouseEnter');
|
||||
|
@ -187,8 +193,8 @@ describe('VisLegend Component', () => {
|
|||
},
|
||||
};
|
||||
|
||||
expect(() => {
|
||||
wrapper = getWrapper({ vis: newVis });
|
||||
expect(async () => {
|
||||
wrapper = await getWrapper({ vis: newVis });
|
||||
const first = getLegendItems(wrapper).first();
|
||||
first.simulate('focus');
|
||||
first.simulate('blur');
|
||||
|
@ -197,8 +203,8 @@ describe('VisLegend Component', () => {
|
|||
});
|
||||
|
||||
describe('Filtering', () => {
|
||||
beforeEach(() => {
|
||||
wrapper = getWrapper();
|
||||
beforeEach(async () => {
|
||||
wrapper = await getWrapper();
|
||||
});
|
||||
|
||||
it('should filter out when clicked', () => {
|
||||
|
@ -223,8 +229,8 @@ describe('VisLegend Component', () => {
|
|||
});
|
||||
|
||||
describe('Toggles details', () => {
|
||||
beforeEach(() => {
|
||||
wrapper = getWrapper();
|
||||
beforeEach(async () => {
|
||||
wrapper = await getWrapper();
|
||||
});
|
||||
|
||||
it('should show details when clicked', () => {
|
||||
|
@ -236,8 +242,8 @@ describe('VisLegend Component', () => {
|
|||
});
|
||||
|
||||
describe('setColor', () => {
|
||||
beforeEach(() => {
|
||||
wrapper = getWrapper();
|
||||
beforeEach(async () => {
|
||||
wrapper = await getWrapper();
|
||||
});
|
||||
|
||||
it('sets the color in the UI state', () => {
|
||||
|
@ -255,18 +261,18 @@ describe('VisLegend Component', () => {
|
|||
});
|
||||
|
||||
describe('toggleLegend function', () => {
|
||||
it('click should show legend once toggled from hidden', () => {
|
||||
it('click should show legend once toggled from hidden', async () => {
|
||||
mockState.set('vis.legendOpen', false);
|
||||
wrapper = getWrapper();
|
||||
wrapper = await getWrapper();
|
||||
const toggleButton = wrapper.find('.visLegend__toggle').first();
|
||||
toggleButton.simulate('click');
|
||||
|
||||
expect(wrapper.exists('.visLegend__list')).toBe(true);
|
||||
});
|
||||
|
||||
it('click should hide legend once toggled from shown', () => {
|
||||
it('click should hide legend once toggled from shown', async () => {
|
||||
mockState.set('vis.legendOpen', true);
|
||||
wrapper = getWrapper();
|
||||
wrapper = await getWrapper();
|
||||
const toggleButton = wrapper.find('.visLegend__toggle').first();
|
||||
toggleButton.simulate('click');
|
||||
|
||||
|
|
|
@ -24,7 +24,8 @@ import { i18n } from '@kbn/i18n';
|
|||
import { EuiPopoverProps, EuiIcon, keyCodes, htmlIdGenerator } from '@elastic/eui';
|
||||
|
||||
// @ts-ignore
|
||||
import { createFiltersFromEvent } from '../../../../../visualizations/public';
|
||||
// eslint-disable-next-line @kbn/eslint/no-restricted-paths
|
||||
import { createFiltersFromEvent } from '../../../../../data/public/actions/filters/create_filters_from_event';
|
||||
import { CUSTOM_LEGEND_VIS_TYPES, LegendItem } from './models';
|
||||
import { VisLegendItem } from './legend_item';
|
||||
import { getPieNames } from './pie_utils';
|
||||
|
@ -94,11 +95,11 @@ export class VisLegend extends PureComponent<VisLegendProps, VisLegendState> {
|
|||
this.props.vis.API.events.filter({ data, negate });
|
||||
};
|
||||
|
||||
canFilter = (item: LegendItem): boolean => {
|
||||
canFilter = async (item: LegendItem): Promise<boolean> => {
|
||||
if (CUSTOM_LEGEND_VIS_TYPES.includes(this.props.vislibVis.visConfigArgs.type)) {
|
||||
return false;
|
||||
}
|
||||
const filters = createFiltersFromEvent({ aggConfigs: this.state.tableAggs, data: item.values });
|
||||
const filters = await createFiltersFromEvent({ data: item.values });
|
||||
return Boolean(filters.length);
|
||||
};
|
||||
|
||||
|
@ -123,16 +124,39 @@ export class VisLegend extends PureComponent<VisLegendProps, VisLegendState> {
|
|||
};
|
||||
|
||||
// Most of these functions were moved directly from the old Legend class. Not a fan of this.
|
||||
getLabels = (data: any, type: string) => {
|
||||
if (!data) return [];
|
||||
data = data.columns || data.rows || [data];
|
||||
setLabels = (data: any, type: string): Promise<void> =>
|
||||
new Promise(async resolve => {
|
||||
let labels = [];
|
||||
if (CUSTOM_LEGEND_VIS_TYPES.includes(type)) {
|
||||
const legendLabels = this.props.vislibVis.getLegendLabels();
|
||||
if (legendLabels) {
|
||||
labels = map(legendLabels, label => {
|
||||
return { label };
|
||||
});
|
||||
}
|
||||
} else {
|
||||
if (!data) return [];
|
||||
data = data.columns || data.rows || [data];
|
||||
|
||||
if (type === 'pie') return getPieNames(data);
|
||||
labels = type === 'pie' ? getPieNames(data) : this.getSeriesLabels(data);
|
||||
}
|
||||
|
||||
return this.getSeriesLabels(data);
|
||||
};
|
||||
const labelsConfig = await Promise.all(
|
||||
labels.map(async label => ({
|
||||
...label,
|
||||
canFilter: await this.canFilter(label),
|
||||
}))
|
||||
);
|
||||
|
||||
refresh = () => {
|
||||
this.setState(
|
||||
{
|
||||
labels: labelsConfig,
|
||||
},
|
||||
resolve
|
||||
);
|
||||
});
|
||||
|
||||
refresh = async () => {
|
||||
const vislibVis = this.props.vislibVis;
|
||||
if (!vislibVis || !vislibVis.visConfig) {
|
||||
this.setState({
|
||||
|
@ -154,24 +178,12 @@ export class VisLegend extends PureComponent<VisLegendProps, VisLegendState> {
|
|||
this.setState({ open: this.props.vis.params.addLegend });
|
||||
}
|
||||
|
||||
if (CUSTOM_LEGEND_VIS_TYPES.includes(vislibVis.visConfigArgs.type)) {
|
||||
const legendLabels = this.props.vislibVis.getLegendLabels();
|
||||
if (legendLabels) {
|
||||
this.setState({
|
||||
labels: map(legendLabels, label => {
|
||||
return { label };
|
||||
}),
|
||||
});
|
||||
}
|
||||
} else {
|
||||
this.setState({ labels: this.getLabels(this.props.visData, vislibVis.visConfigArgs.type) });
|
||||
}
|
||||
|
||||
if (vislibVis.visConfig) {
|
||||
this.getColor = this.props.vislibVis.visConfig.data.getColorFunc();
|
||||
}
|
||||
|
||||
this.setState({ tableAggs: getTableAggs(this.props.vis) });
|
||||
await this.setLabels(this.props.visData, vislibVis.visConfigArgs.type);
|
||||
};
|
||||
|
||||
highlight = (event: BaseSyntheticEvent) => {
|
||||
|
@ -219,7 +231,7 @@ export class VisLegend extends PureComponent<VisLegendProps, VisLegendState> {
|
|||
key={item.label}
|
||||
anchorPosition={anchorPosition}
|
||||
selected={this.state.selectedLabel === item.label}
|
||||
canFilter={this.canFilter(item)}
|
||||
canFilter={item.canFilter}
|
||||
onFilter={this.filter}
|
||||
onSelect={this.toggleDetails}
|
||||
legendId={this.legendId}
|
||||
|
|
|
@ -17,13 +17,12 @@
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import _, { forEach } from 'lodash';
|
||||
import _ from 'lodash';
|
||||
import { PersistedState } from 'ui/persisted_state';
|
||||
import { Subscription } from 'rxjs';
|
||||
import * as Rx from 'rxjs';
|
||||
import { buildPipeline } from 'ui/visualize/loader/pipeline_helpers';
|
||||
import { SavedObject } from 'ui/saved_objects/types';
|
||||
import { getTableAggs } from 'ui/visualize/loader/pipeline_helpers/utilities';
|
||||
import { AppState } from 'ui/state_management/app_state';
|
||||
import { npStart } from 'ui/new_platform';
|
||||
import { IExpressionLoaderParams } from 'src/plugins/expressions/public';
|
||||
|
@ -34,7 +33,6 @@ import {
|
|||
Query,
|
||||
onlyDisabledFiltersChanged,
|
||||
esFilters,
|
||||
mapAndFlattenFilters,
|
||||
ISearchSource,
|
||||
} from '../../../../../plugins/data/public';
|
||||
import {
|
||||
|
@ -42,7 +40,8 @@ import {
|
|||
EmbeddableOutput,
|
||||
Embeddable,
|
||||
Container,
|
||||
APPLY_FILTER_TRIGGER,
|
||||
VALUE_CLICK_TRIGGER,
|
||||
SELECT_RANGE_TRIGGER,
|
||||
} from '../../../../../plugins/embeddable/public';
|
||||
import { dispatchRenderComplete } from '../../../../../plugins/kibana_utils/public';
|
||||
import { SavedSearch } from '../../../kibana/public/discover/np_ready/types';
|
||||
|
@ -105,7 +104,6 @@ export class VisualizeEmbeddable extends Embeddable<VisualizeInput, VisualizeOut
|
|||
private visCustomizations: VisualizeInput['vis'];
|
||||
private subscriptions: Subscription[] = [];
|
||||
private expression: string = '';
|
||||
private actions: any = {};
|
||||
private vis: Vis;
|
||||
private domNode: any;
|
||||
public readonly type = VISUALIZE_EMBEDDABLE_TYPE;
|
||||
|
@ -255,15 +253,6 @@ export class VisualizeEmbeddable extends Embeddable<VisualizeInput, VisualizeOut
|
|||
this.savedVisualization.vis._setUiState(this.uiState);
|
||||
this.uiState = this.savedVisualization.vis.getUiState();
|
||||
|
||||
// init default actions
|
||||
forEach(this.vis.type.events, (event, eventName) => {
|
||||
if (event.disabled || !eventName) {
|
||||
return;
|
||||
} else {
|
||||
this.actions[eventName] = event.defaultAction;
|
||||
}
|
||||
});
|
||||
|
||||
// This is a hack to give maps visualizations access to data in the
|
||||
// globalState, since they can no longer access it via searchSource.
|
||||
// TODO: Remove this as a part of elastic/kibana#30593
|
||||
|
@ -301,18 +290,13 @@ export class VisualizeEmbeddable extends Embeddable<VisualizeInput, VisualizeOut
|
|||
|
||||
this.subscriptions.push(
|
||||
this.handler.events$.subscribe(async event => {
|
||||
if (this.actions[event.name]) {
|
||||
event.data.aggConfigs = getTableAggs(this.vis);
|
||||
const filters: esFilters.Filter[] = this.actions[event.name](event.data) || [];
|
||||
const mappedFilters = mapAndFlattenFilters(filters);
|
||||
const timeFieldName = this.vis.indexPattern.timeFieldName;
|
||||
const eventName = event.name === 'brush' ? SELECT_RANGE_TRIGGER : VALUE_CLICK_TRIGGER;
|
||||
|
||||
npStart.plugins.uiActions.executeTriggerActions(APPLY_FILTER_TRIGGER, {
|
||||
embeddable: this,
|
||||
filters: mappedFilters,
|
||||
timeFieldName,
|
||||
});
|
||||
}
|
||||
npStart.plugins.uiActions.executeTriggerActions(eventName, {
|
||||
embeddable: this,
|
||||
timeFieldName: this.vis.indexPattern.timeFieldName,
|
||||
data: event.data,
|
||||
});
|
||||
})
|
||||
);
|
||||
|
||||
|
|
|
@ -1,21 +0,0 @@
|
|||
/*
|
||||
* Licensed to Elasticsearch B.V. under one or more contributor
|
||||
* license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright
|
||||
* ownership. Elasticsearch B.V. licenses this file to you under
|
||||
* the Apache License, Version 2.0 (the "License"); you may
|
||||
* not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
// @ts-ignore
|
||||
export * from './vis_filters';
|
|
@ -44,7 +44,6 @@ export function plugin(initializerContext: PluginInitializerContext) {
|
|||
|
||||
/** @public static code */
|
||||
export { Vis, VisParams, VisState } from './vis';
|
||||
export * from './filters';
|
||||
export { TypesService } from './types/types_service';
|
||||
|
||||
export { Status } from './legacy/update_status';
|
||||
|
@ -53,6 +52,4 @@ export { buildPipeline, buildVislibDimensions, SchemaConfig } from './legacy/bui
|
|||
// @ts-ignore
|
||||
export { updateOldState } from './legacy/vis_update_state';
|
||||
export { calculateObjectHash } from './legacy/calculate_object_hash';
|
||||
// @ts-ignore
|
||||
export { createFiltersFromEvent } from './filters/vis_filters';
|
||||
export { createSavedVisLoader } from '../../saved_visualizations/saved_visualizations';
|
||||
|
|
|
@ -19,7 +19,6 @@
|
|||
|
||||
import _ from 'lodash';
|
||||
|
||||
import { createFiltersFromEvent, onBrushEvent } from '../filters';
|
||||
import { DefaultEditorController } from '../../../../../vis_default_editor/public';
|
||||
|
||||
export class BaseVisType {
|
||||
|
@ -60,15 +59,6 @@ export class BaseVisType {
|
|||
showIndexSelection: true,
|
||||
hierarchicalData: false, // we should get rid of this i guess ?
|
||||
},
|
||||
events: {
|
||||
filterBucket: {
|
||||
defaultAction: createFiltersFromEvent,
|
||||
},
|
||||
brush: {
|
||||
defaultAction: onBrushEvent,
|
||||
disabled: true,
|
||||
},
|
||||
},
|
||||
stage: 'production',
|
||||
feedbackMessage: '',
|
||||
hidden: false,
|
||||
|
|
|
@ -63,7 +63,7 @@ const unknownSchema: Schema = {
|
|||
const getTypeFromRegistry = (type: string): AggType => {
|
||||
// We need to inline require here, since we're having a cyclic dependency
|
||||
// from somewhere inside agg_types back to AggConfig.
|
||||
const aggTypes = require('../agg_types').aggTypes;
|
||||
const aggTypes = require('./agg_types').aggTypes;
|
||||
const registeredType =
|
||||
aggTypes.metrics.find((agg: AggType) => agg.name === type) ||
|
||||
aggTypes.buckets.find((agg: AggType) => agg.name === type);
|
||||
|
|
92
src/legacy/ui/public/agg_types/agg_types.ts
Normal file
|
@ -0,0 +1,92 @@
|
|||
/*
|
||||
* Licensed to Elasticsearch B.V. under one or more contributor
|
||||
* license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright
|
||||
* ownership. Elasticsearch B.V. licenses this file to you under
|
||||
* the Apache License, Version 2.0 (the "License"); you may
|
||||
* not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
import { countMetricAgg } from './metrics/count';
|
||||
import { avgMetricAgg } from './metrics/avg';
|
||||
import { sumMetricAgg } from './metrics/sum';
|
||||
import { medianMetricAgg } from './metrics/median';
|
||||
import { minMetricAgg } from './metrics/min';
|
||||
import { maxMetricAgg } from './metrics/max';
|
||||
import { topHitMetricAgg } from './metrics/top_hit';
|
||||
import { stdDeviationMetricAgg } from './metrics/std_deviation';
|
||||
import { cardinalityMetricAgg } from './metrics/cardinality';
|
||||
import { percentilesMetricAgg } from './metrics/percentiles';
|
||||
import { geoBoundsMetricAgg } from './metrics/geo_bounds';
|
||||
import { geoCentroidMetricAgg } from './metrics/geo_centroid';
|
||||
import { percentileRanksMetricAgg } from './metrics/percentile_ranks';
|
||||
import { derivativeMetricAgg } from './metrics/derivative';
|
||||
import { cumulativeSumMetricAgg } from './metrics/cumulative_sum';
|
||||
import { movingAvgMetricAgg } from './metrics/moving_avg';
|
||||
import { serialDiffMetricAgg } from './metrics/serial_diff';
|
||||
import { dateHistogramBucketAgg } from './buckets/date_histogram';
|
||||
import { histogramBucketAgg } from './buckets/histogram';
|
||||
import { rangeBucketAgg } from './buckets/range';
|
||||
import { dateRangeBucketAgg } from './buckets/date_range';
|
||||
import { ipRangeBucketAgg } from './buckets/ip_range';
|
||||
import { termsBucketAgg } from './buckets/terms';
|
||||
import { filterBucketAgg } from './buckets/filter';
|
||||
import { filtersBucketAgg } from './buckets/filters';
|
||||
import { significantTermsBucketAgg } from './buckets/significant_terms';
|
||||
import { geoHashBucketAgg } from './buckets/geo_hash';
|
||||
import { geoTileBucketAgg } from './buckets/geo_tile';
|
||||
import { bucketSumMetricAgg } from './metrics/bucket_sum';
|
||||
import { bucketAvgMetricAgg } from './metrics/bucket_avg';
|
||||
import { bucketMinMetricAgg } from './metrics/bucket_min';
|
||||
import { bucketMaxMetricAgg } from './metrics/bucket_max';
|
||||
|
||||
export { AggType } from './agg_type';
|
||||
|
||||
export const aggTypes = {
|
||||
metrics: [
|
||||
countMetricAgg,
|
||||
avgMetricAgg,
|
||||
sumMetricAgg,
|
||||
medianMetricAgg,
|
||||
minMetricAgg,
|
||||
maxMetricAgg,
|
||||
stdDeviationMetricAgg,
|
||||
cardinalityMetricAgg,
|
||||
percentilesMetricAgg,
|
||||
percentileRanksMetricAgg,
|
||||
topHitMetricAgg,
|
||||
derivativeMetricAgg,
|
||||
cumulativeSumMetricAgg,
|
||||
movingAvgMetricAgg,
|
||||
serialDiffMetricAgg,
|
||||
bucketAvgMetricAgg,
|
||||
bucketSumMetricAgg,
|
||||
bucketMinMetricAgg,
|
||||
bucketMaxMetricAgg,
|
||||
geoBoundsMetricAgg,
|
||||
geoCentroidMetricAgg,
|
||||
],
|
||||
buckets: [
|
||||
dateHistogramBucketAgg,
|
||||
histogramBucketAgg,
|
||||
rangeBucketAgg,
|
||||
dateRangeBucketAgg,
|
||||
ipRangeBucketAgg,
|
||||
termsBucketAgg,
|
||||
filterBucketAgg,
|
||||
filtersBucketAgg,
|
||||
significantTermsBucketAgg,
|
||||
geoHashBucketAgg,
|
||||
geoTileBucketAgg,
|
||||
],
|
||||
};
|
|
@ -17,80 +17,7 @@
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import { countMetricAgg } from './metrics/count';
|
||||
import { avgMetricAgg } from './metrics/avg';
|
||||
import { sumMetricAgg } from './metrics/sum';
|
||||
import { medianMetricAgg } from './metrics/median';
|
||||
import { minMetricAgg } from './metrics/min';
|
||||
import { maxMetricAgg } from './metrics/max';
|
||||
import { topHitMetricAgg } from './metrics/top_hit';
|
||||
import { stdDeviationMetricAgg } from './metrics/std_deviation';
|
||||
import { cardinalityMetricAgg } from './metrics/cardinality';
|
||||
import { percentilesMetricAgg } from './metrics/percentiles';
|
||||
import { geoBoundsMetricAgg } from './metrics/geo_bounds';
|
||||
import { geoCentroidMetricAgg } from './metrics/geo_centroid';
|
||||
import { percentileRanksMetricAgg } from './metrics/percentile_ranks';
|
||||
import { derivativeMetricAgg } from './metrics/derivative';
|
||||
import { cumulativeSumMetricAgg } from './metrics/cumulative_sum';
|
||||
import { movingAvgMetricAgg } from './metrics/moving_avg';
|
||||
import { serialDiffMetricAgg } from './metrics/serial_diff';
|
||||
import { dateHistogramBucketAgg, setBounds } from './buckets/date_histogram';
|
||||
import { histogramBucketAgg } from './buckets/histogram';
|
||||
import { rangeBucketAgg } from './buckets/range';
|
||||
import { dateRangeBucketAgg } from './buckets/date_range';
|
||||
import { ipRangeBucketAgg } from './buckets/ip_range';
|
||||
import { termsBucketAgg, termsAggFilter } from './buckets/terms';
|
||||
import { filterBucketAgg } from './buckets/filter';
|
||||
import { filtersBucketAgg } from './buckets/filters';
|
||||
import { significantTermsBucketAgg } from './buckets/significant_terms';
|
||||
import { geoHashBucketAgg } from './buckets/geo_hash';
|
||||
import { geoTileBucketAgg } from './buckets/geo_tile';
|
||||
import { bucketSumMetricAgg } from './metrics/bucket_sum';
|
||||
import { bucketAvgMetricAgg } from './metrics/bucket_avg';
|
||||
import { bucketMinMetricAgg } from './metrics/bucket_min';
|
||||
import { bucketMaxMetricAgg } from './metrics/bucket_max';
|
||||
|
||||
export { AggType } from './agg_type';
|
||||
|
||||
export const aggTypes = {
|
||||
metrics: [
|
||||
countMetricAgg,
|
||||
avgMetricAgg,
|
||||
sumMetricAgg,
|
||||
medianMetricAgg,
|
||||
minMetricAgg,
|
||||
maxMetricAgg,
|
||||
stdDeviationMetricAgg,
|
||||
cardinalityMetricAgg,
|
||||
percentilesMetricAgg,
|
||||
percentileRanksMetricAgg,
|
||||
topHitMetricAgg,
|
||||
derivativeMetricAgg,
|
||||
cumulativeSumMetricAgg,
|
||||
movingAvgMetricAgg,
|
||||
serialDiffMetricAgg,
|
||||
bucketAvgMetricAgg,
|
||||
bucketSumMetricAgg,
|
||||
bucketMinMetricAgg,
|
||||
bucketMaxMetricAgg,
|
||||
geoBoundsMetricAgg,
|
||||
geoCentroidMetricAgg,
|
||||
],
|
||||
buckets: [
|
||||
dateHistogramBucketAgg,
|
||||
histogramBucketAgg,
|
||||
rangeBucketAgg,
|
||||
dateRangeBucketAgg,
|
||||
ipRangeBucketAgg,
|
||||
termsBucketAgg,
|
||||
filterBucketAgg,
|
||||
filtersBucketAgg,
|
||||
significantTermsBucketAgg,
|
||||
geoHashBucketAgg,
|
||||
geoTileBucketAgg,
|
||||
],
|
||||
};
|
||||
|
||||
export { aggTypes } from './agg_types';
|
||||
export { AggParam } from './agg_params';
|
||||
export { AggConfig } from './agg_config';
|
||||
export { AggConfigs } from './agg_configs';
|
||||
|
@ -99,5 +26,6 @@ export { FieldParamType } from './param_types';
|
|||
export { BUCKET_TYPES } from './buckets/bucket_agg_types';
|
||||
export { METRIC_TYPES } from './metrics/metric_agg_types';
|
||||
export { ISchemas, Schema, Schemas } from './schemas';
|
||||
|
||||
export { setBounds, termsAggFilter };
|
||||
export { AggType } from './agg_type';
|
||||
export { setBounds } from './buckets/date_histogram';
|
||||
export { termsAggFilter } from './buckets/terms';
|
||||
|
|
|
@ -22,7 +22,7 @@ import { i18n } from '@kbn/i18n';
|
|||
import { AggConfig } from '../agg_config';
|
||||
import { SavedObjectNotFound } from '../../../../../plugins/kibana_utils/public';
|
||||
import { BaseParamType } from './base';
|
||||
import { toastNotifications } from '../../notify';
|
||||
import { npStart } from '../../new_platform';
|
||||
import { propFilter } from '../filter';
|
||||
import { Field, IFieldList } from '../../../../../plugins/data/public';
|
||||
import { isNestedField } from '../../../../../plugins/data/public';
|
||||
|
@ -89,7 +89,7 @@ export class FieldParamType extends BaseParamType {
|
|||
(f: any) => f.name === fieldName
|
||||
);
|
||||
if (!validField) {
|
||||
toastNotifications.addDanger(
|
||||
npStart.core.notifications.toasts.addDanger(
|
||||
i18n.translate(
|
||||
'common.ui.aggTypes.paramTypes.field.invalidSavedFieldParameterErrorMessage',
|
||||
{
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import { isValidEsInterval } from '../../../core_plugins/data/public';
|
||||
import { isValidEsInterval } from '../../../core_plugins/data/common/parse_es_interval/is_valid_es_interval';
|
||||
import { leastCommonInterval } from '../vis/lib/least_common_interval';
|
||||
|
||||
/**
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
|
||||
import dateMath from '@elastic/datemath';
|
||||
import { leastCommonMultiple } from './least_common_multiple';
|
||||
import { parseEsInterval } from '../../../../core_plugins/data/public';
|
||||
import { parseEsInterval } from '../../../../core_plugins/data/common/parse_es_interval/parse_es_interval';
|
||||
|
||||
/**
|
||||
* Finds the lowest common interval between two given ES date histogram intervals
|
||||
|
|
|
@ -23,6 +23,8 @@ import {
|
|||
APPLY_FILTER_TRIGGER,
|
||||
createFilterAction,
|
||||
PANEL_BADGE_TRIGGER,
|
||||
SELECT_RANGE_TRIGGER,
|
||||
VALUE_CLICK_TRIGGER,
|
||||
} from './lib';
|
||||
|
||||
/**
|
||||
|
@ -50,11 +52,25 @@ export const bootstrap = (uiActions: IUiActionsSetup) => {
|
|||
description: 'Actions appear in title bar when an embeddable loads in a panel',
|
||||
actionIds: [],
|
||||
};
|
||||
const selectRangeTrigger = {
|
||||
id: SELECT_RANGE_TRIGGER,
|
||||
title: 'Select range',
|
||||
description: 'Applies a range filter',
|
||||
actionIds: [],
|
||||
};
|
||||
const valueClickTrigger = {
|
||||
id: VALUE_CLICK_TRIGGER,
|
||||
title: 'Value clicked',
|
||||
description: 'Value was clicked',
|
||||
actionIds: [],
|
||||
};
|
||||
const actionApplyFilter = createFilterAction();
|
||||
|
||||
uiActions.registerTrigger(triggerContext);
|
||||
uiActions.registerTrigger(triggerFilter);
|
||||
uiActions.registerAction(actionApplyFilter);
|
||||
uiActions.registerTrigger(triggerBadge);
|
||||
uiActions.registerTrigger(selectRangeTrigger);
|
||||
uiActions.registerTrigger(valueClickTrigger);
|
||||
// uiActions.attachAction(triggerFilter.id, actionApplyFilter.id);
|
||||
};
|
||||
|
|
|
@ -25,6 +25,8 @@ export {
|
|||
APPLY_FILTER_ACTION,
|
||||
APPLY_FILTER_TRIGGER,
|
||||
PANEL_BADGE_TRIGGER,
|
||||
SELECT_RANGE_TRIGGER,
|
||||
VALUE_CLICK_TRIGGER,
|
||||
Adapters,
|
||||
AddPanelAction,
|
||||
CONTEXT_MENU_TRIGGER,
|
||||
|
|
|
@ -19,4 +19,6 @@
|
|||
|
||||
export const CONTEXT_MENU_TRIGGER = 'CONTEXT_MENU_TRIGGER';
|
||||
export const APPLY_FILTER_TRIGGER = 'FILTER_TRIGGER';
|
||||
export const SELECT_RANGE_TRIGGER = 'SELECT_RANGE_TRIGGER';
|
||||
export const VALUE_CLICK_TRIGGER = 'VALUE_CLICK_TRIGGER';
|
||||
export const PANEL_BADGE_TRIGGER = 'PANEL_BADGE_TRIGGER';
|
||||
|
|
|
@ -23,9 +23,16 @@ import { Datatable, PointSeries } from '.';
|
|||
|
||||
const name = 'kibana_datatable';
|
||||
|
||||
export interface KibanaDatatableColumnMeta {
|
||||
type: string;
|
||||
indexPatternId?: string;
|
||||
aggConfigParams?: Record<string, any>;
|
||||
}
|
||||
|
||||
export interface KibanaDatatableColumn {
|
||||
id: string;
|
||||
name: string;
|
||||
meta?: KibanaDatatableColumnMeta;
|
||||
formatHint?: SerializedFieldFormat;
|
||||
}
|
||||
|
||||
|
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 6.9 KiB After Width: | Height: | Size: 6.9 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 8.9 KiB After Width: | Height: | Size: 6.6 KiB |
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 15 KiB |
|
@ -1 +1 @@
|
|||
{"columns":[{"id":"col-0-2","name":"response.raw: Descending"},{"id":"col-1-1","name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"kibana_datatable"}
|
||||
{"columns":[{"id":"col-0-2","meta":{"aggConfigParams":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"indexPatternId":"logstash-*","type":"terms"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"aggConfigParams":{},"indexPatternId":"logstash-*","type":"count"},"name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"kibana_datatable"}
|
|
@ -1 +1 @@
|
|||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"dimensions":{"bucket":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"metrics":[{"accessor":1,"format":{"id":"number","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","name":"response.raw: Descending"},{"id":"col-1-1","name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"kibana_datatable"},"visType":"metric"}}
|
||||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"dimensions":{"bucket":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"metrics":[{"accessor":1,"format":{"id":"number","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"aggConfigParams":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"indexPatternId":"logstash-*","type":"terms"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"aggConfigParams":{},"indexPatternId":"logstash-*","type":"count"},"name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"kibana_datatable"},"visType":"metric"}}
|
|
@ -1 +1 @@
|
|||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"dimensions":{"bucket":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"metrics":[{"accessor":1,"format":{"id":"number","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","name":"response.raw: Descending"},{"id":"col-1-1","name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"kibana_datatable"},"visType":"metric"}}
|
||||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"dimensions":{"bucket":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"metrics":[{"accessor":1,"format":{"id":"number","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"aggConfigParams":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"indexPatternId":"logstash-*","type":"terms"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"aggConfigParams":{},"indexPatternId":"logstash-*","type":"count"},"name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"kibana_datatable"},"visType":"metric"}}
|
|
@ -1 +1 @@
|
|||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"dimensions":{"bucket":{"accessor":2,"format":{"id":"string","params":{}},"type":"vis_dimension"},"metrics":[{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","name":"response.raw: Descending"},{"id":"col-1-1","name":"Count"},{"id":"col-2-1","name":"Max bytes"}],"rows":[{"col-0-2":"200","col-1-1":12891,"col-2-1":19986},{"col-0-2":"404","col-1-1":696,"col-2-1":19881},{"col-0-2":"503","col-1-1":417,"col-2-1":0}],"type":"kibana_datatable"},"visType":"metric"}}
|
||||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"dimensions":{"bucket":{"accessor":2,"format":{"id":"string","params":{}},"type":"vis_dimension"},"metrics":[{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"aggConfigParams":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"indexPatternId":"logstash-*","type":"terms"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"aggConfigParams":{},"indexPatternId":"logstash-*","type":"count"},"name":"Count"},{"id":"col-2-1","meta":{"aggConfigParams":{"field":"bytes"},"indexPatternId":"logstash-*","type":"max"},"name":"Max bytes"}],"rows":[{"col-0-2":"200","col-1-1":12891,"col-2-1":19986},{"col-0-2":"404","col-1-1":696,"col-2-1":19881},{"col-0-2":"503","col-1-1":417,"col-2-1":0}],"type":"kibana_datatable"},"visType":"metric"}}
|
|
@ -1 +1 @@
|
|||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"dimensions":{"metrics":[{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},{"accessor":1,"format":{"id":"string","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","name":"response.raw: Descending"},{"id":"col-1-1","name":"Count"},{"id":"col-2-1","name":"Max bytes"}],"rows":[{"col-0-2":"200","col-1-1":12891,"col-2-1":19986},{"col-0-2":"404","col-1-1":696,"col-2-1":19881},{"col-0-2":"503","col-1-1":417,"col-2-1":0}],"type":"kibana_datatable"},"visType":"metric"}}
|
||||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"dimensions":{"metrics":[{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},{"accessor":1,"format":{"id":"string","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"aggConfigParams":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"indexPatternId":"logstash-*","type":"terms"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"aggConfigParams":{},"indexPatternId":"logstash-*","type":"count"},"name":"Count"},{"id":"col-2-1","meta":{"aggConfigParams":{"field":"bytes"},"indexPatternId":"logstash-*","type":"max"},"name":"Max bytes"}],"rows":[{"col-0-2":"200","col-1-1":12891,"col-2-1":19986},{"col-0-2":"404","col-1-1":696,"col-2-1":19881},{"col-0-2":"503","col-1-1":417,"col-2-1":0}],"type":"kibana_datatable"},"visType":"metric"}}
|
|
@ -1 +1 @@
|
|||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"dimensions":{"metrics":[{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":1000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":true,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","name":"response.raw: Descending"},{"id":"col-1-1","name":"Count"},{"id":"col-2-1","name":"Max bytes"}],"rows":[{"col-0-2":"200","col-1-1":12891,"col-2-1":19986},{"col-0-2":"404","col-1-1":696,"col-2-1":19881},{"col-0-2":"503","col-1-1":417,"col-2-1":0}],"type":"kibana_datatable"},"visType":"metric"}}
|
||||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"dimensions":{"metrics":[{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":1000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":true,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"aggConfigParams":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"indexPatternId":"logstash-*","type":"terms"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"aggConfigParams":{},"indexPatternId":"logstash-*","type":"count"},"name":"Count"},{"id":"col-2-1","meta":{"aggConfigParams":{"field":"bytes"},"indexPatternId":"logstash-*","type":"max"},"name":"Max bytes"}],"rows":[{"col-0-2":"200","col-1-1":12891,"col-2-1":19986},{"col-0-2":"404","col-1-1":696,"col-2-1":19881},{"col-0-2":"503","col-1-1":417,"col-2-1":0}],"type":"kibana_datatable"},"visType":"metric"}}
|
|
@ -1 +1 @@
|
|||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"dimensions":{"metrics":[{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","name":"response.raw: Descending"},{"id":"col-1-1","name":"Count"},{"id":"col-2-1","name":"Max bytes"}],"rows":[{"col-0-2":"200","col-1-1":12891,"col-2-1":19986},{"col-0-2":"404","col-1-1":696,"col-2-1":19881},{"col-0-2":"503","col-1-1":417,"col-2-1":0}],"type":"kibana_datatable"},"visType":"metric"}}
|
||||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"dimensions":{"metrics":[{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"aggConfigParams":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"indexPatternId":"logstash-*","type":"terms"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"aggConfigParams":{},"indexPatternId":"logstash-*","type":"count"},"name":"Count"},{"id":"col-2-1","meta":{"aggConfigParams":{"field":"bytes"},"indexPatternId":"logstash-*","type":"max"},"name":"Max bytes"}],"rows":[{"col-0-2":"200","col-1-1":12891,"col-2-1":19986},{"col-0-2":"404","col-1-1":696,"col-2-1":19881},{"col-0-2":"503","col-1-1":417,"col-2-1":0}],"type":"kibana_datatable"},"visType":"metric"}}
|
|
@ -1 +1 @@
|
|||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"bucket":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"maxFontSize":72,"metric":{"accessor":1,"format":{"id":"number","params":{}},"type":"vis_dimension"},"minFontSize":18,"orientation":"single","scale":"linear","showLabel":true},"visData":{"columns":[{"id":"col-0-2","name":"response.raw: Descending"},{"id":"col-1-1","name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"kibana_datatable"},"visType":"tagcloud"}}
|
||||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"bucket":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"maxFontSize":72,"metric":{"accessor":1,"format":{"id":"number","params":{}},"type":"vis_dimension"},"minFontSize":18,"orientation":"single","scale":"linear","showLabel":true},"visData":{"columns":[{"id":"col-0-2","meta":{"aggConfigParams":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"indexPatternId":"logstash-*","type":"terms"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"aggConfigParams":{},"indexPatternId":"logstash-*","type":"count"},"name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"kibana_datatable"},"visType":"tagcloud"}}
|
|
@ -1 +1 @@
|
|||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"dimensions":{"bucket":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"metrics":[{"accessor":1,"format":{"id":"number","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","name":"response.raw: Descending"},{"id":"col-1-1","name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"kibana_datatable"},"visType":"metric"}}
|
||||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"dimensions":{"bucket":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"metrics":[{"accessor":1,"format":{"id":"number","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"aggConfigParams":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"indexPatternId":"logstash-*","type":"terms"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"aggConfigParams":{},"indexPatternId":"logstash-*","type":"count"},"name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"kibana_datatable"},"visType":"metric"}}
|
|
@ -1 +1 @@
|
|||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"bucket":{"accessor":0},"metric":{"accessor":1,"format":{"id":"number"}}},"visData":{"columns":[{"id":"col-0-2","name":"response.raw: Descending"},{"id":"col-1-1","name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"kibana_datatable"},"visType":"region_map"}}
|
||||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"bucket":{"accessor":0},"metric":{"accessor":1,"format":{"id":"number"}}},"visData":{"columns":[{"id":"col-0-2","meta":{"aggConfigParams":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"indexPatternId":"logstash-*","type":"terms"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"aggConfigParams":{},"indexPatternId":"logstash-*","type":"count"},"name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"kibana_datatable"},"visType":"region_map"}}
|
|
@ -1 +1 @@
|
|||
{"columns":[{"id":"col-0-2","name":"response.raw: Descending"},{"id":"col-1-1","name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"kibana_datatable"}
|
||||
{"columns":[{"id":"col-0-2","meta":{"aggConfigParams":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"indexPatternId":"logstash-*","type":"terms"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"aggConfigParams":{},"indexPatternId":"logstash-*","type":"count"},"name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"kibana_datatable"}
|
|
@ -1 +1 @@
|
|||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"dimensions":{"bucket":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"metrics":[{"accessor":1,"format":{"id":"number","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","name":"response.raw: Descending"},{"id":"col-1-1","name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"kibana_datatable"},"visType":"metric"}}
|
||||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"dimensions":{"bucket":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"metrics":[{"accessor":1,"format":{"id":"number","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"aggConfigParams":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"indexPatternId":"logstash-*","type":"terms"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"aggConfigParams":{},"indexPatternId":"logstash-*","type":"count"},"name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"kibana_datatable"},"visType":"metric"}}
|
|
@ -1 +1 @@
|
|||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"bucket":{"accessor":1,"format":{"id":"string","params":{}},"type":"vis_dimension"},"maxFontSize":72,"metric":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"minFontSize":18,"orientation":"single","scale":"linear","showLabel":true},"visData":{"columns":[{"id":"col-0-2","name":"response.raw: Descending"},{"id":"col-1-1","name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"kibana_datatable"},"visType":"tagcloud"}}
|
||||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"bucket":{"accessor":1,"format":{"id":"string","params":{}},"type":"vis_dimension"},"maxFontSize":72,"metric":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"minFontSize":18,"orientation":"single","scale":"linear","showLabel":true},"visData":{"columns":[{"id":"col-0-2","meta":{"aggConfigParams":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"indexPatternId":"logstash-*","type":"terms"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"aggConfigParams":{},"indexPatternId":"logstash-*","type":"count"},"name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"kibana_datatable"},"visType":"tagcloud"}}
|
|
@ -1 +1 @@
|
|||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"bucket":{"accessor":1,"format":{"id":"string","params":{}},"type":"vis_dimension"},"maxFontSize":40,"metric":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"minFontSize":20,"orientation":"single","scale":"linear","showLabel":true},"visData":{"columns":[{"id":"col-0-2","name":"response.raw: Descending"},{"id":"col-1-1","name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"kibana_datatable"},"visType":"tagcloud"}}
|
||||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"bucket":{"accessor":1,"format":{"id":"string","params":{}},"type":"vis_dimension"},"maxFontSize":40,"metric":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"minFontSize":20,"orientation":"single","scale":"linear","showLabel":true},"visData":{"columns":[{"id":"col-0-2","meta":{"aggConfigParams":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"indexPatternId":"logstash-*","type":"terms"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"aggConfigParams":{},"indexPatternId":"logstash-*","type":"count"},"name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"kibana_datatable"},"visType":"tagcloud"}}
|
|
@ -1 +1 @@
|
|||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"maxFontSize":72,"metric":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"minFontSize":18,"orientation":"single","scale":"linear","showLabel":true},"visData":{"columns":[{"id":"col-0-2","name":"response.raw: Descending"},{"id":"col-1-1","name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"kibana_datatable"},"visType":"tagcloud"}}
|
||||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"maxFontSize":72,"metric":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"minFontSize":18,"orientation":"single","scale":"linear","showLabel":true},"visData":{"columns":[{"id":"col-0-2","meta":{"aggConfigParams":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"indexPatternId":"logstash-*","type":"terms"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"aggConfigParams":{},"indexPatternId":"logstash-*","type":"count"},"name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"kibana_datatable"},"visType":"tagcloud"}}
|
|
@ -1 +1 @@
|
|||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"bucket":{"accessor":1,"format":{"id":"string","params":{}},"type":"vis_dimension"},"maxFontSize":72,"metric":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"minFontSize":18,"orientation":"multiple","scale":"log","showLabel":true},"visData":{"columns":[{"id":"col-0-2","name":"response.raw: Descending"},{"id":"col-1-1","name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"kibana_datatable"},"visType":"tagcloud"}}
|
||||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"bucket":{"accessor":1,"format":{"id":"string","params":{}},"type":"vis_dimension"},"maxFontSize":72,"metric":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"minFontSize":18,"orientation":"multiple","scale":"log","showLabel":true},"visData":{"columns":[{"id":"col-0-2","meta":{"aggConfigParams":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"indexPatternId":"logstash-*","type":"terms"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"aggConfigParams":{},"indexPatternId":"logstash-*","type":"count"},"name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"kibana_datatable"},"visType":"tagcloud"}}
|
|
@ -1 +1 @@
|
|||
{"columns":[{"id":"col-0-2","name":"response.raw: Descending"},{"id":"col-1-1","name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"kibana_datatable"}
|
||||
{"columns":[{"id":"col-0-2","meta":{"aggConfigParams":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"indexPatternId":"logstash-*","type":"terms"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"aggConfigParams":{},"indexPatternId":"logstash-*","type":"count"},"name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"kibana_datatable"}
|
|
@ -1 +1 @@
|
|||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"dimensions":{"bucket":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"metrics":[{"accessor":1,"format":{"id":"number","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","name":"response.raw: Descending"},{"id":"col-1-1","name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"kibana_datatable"},"visType":"metric"}}
|
||||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"dimensions":{"bucket":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"metrics":[{"accessor":1,"format":{"id":"number","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"aggConfigParams":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"indexPatternId":"logstash-*","type":"terms"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"aggConfigParams":{},"indexPatternId":"logstash-*","type":"count"},"name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"kibana_datatable"},"visType":"metric"}}
|
|
@ -1 +1 @@
|
|||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"dimensions":{"bucket":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"metrics":[{"accessor":1,"format":{"id":"number","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","name":"response.raw: Descending"},{"id":"col-1-1","name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"kibana_datatable"},"visType":"metric"}}
|
||||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"dimensions":{"bucket":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"metrics":[{"accessor":1,"format":{"id":"number","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"aggConfigParams":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"indexPatternId":"logstash-*","type":"terms"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"aggConfigParams":{},"indexPatternId":"logstash-*","type":"count"},"name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"kibana_datatable"},"visType":"metric"}}
|
|
@ -1 +1 @@
|
|||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"dimensions":{"bucket":{"accessor":2,"format":{"id":"string","params":{}},"type":"vis_dimension"},"metrics":[{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","name":"response.raw: Descending"},{"id":"col-1-1","name":"Count"},{"id":"col-2-1","name":"Max bytes"}],"rows":[{"col-0-2":"200","col-1-1":12891,"col-2-1":19986},{"col-0-2":"404","col-1-1":696,"col-2-1":19881},{"col-0-2":"503","col-1-1":417,"col-2-1":0}],"type":"kibana_datatable"},"visType":"metric"}}
|
||||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"dimensions":{"bucket":{"accessor":2,"format":{"id":"string","params":{}},"type":"vis_dimension"},"metrics":[{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"aggConfigParams":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"indexPatternId":"logstash-*","type":"terms"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"aggConfigParams":{},"indexPatternId":"logstash-*","type":"count"},"name":"Count"},{"id":"col-2-1","meta":{"aggConfigParams":{"field":"bytes"},"indexPatternId":"logstash-*","type":"max"},"name":"Max bytes"}],"rows":[{"col-0-2":"200","col-1-1":12891,"col-2-1":19986},{"col-0-2":"404","col-1-1":696,"col-2-1":19881},{"col-0-2":"503","col-1-1":417,"col-2-1":0}],"type":"kibana_datatable"},"visType":"metric"}}
|
|
@ -1 +1 @@
|
|||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"dimensions":{"metrics":[{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},{"accessor":1,"format":{"id":"string","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","name":"response.raw: Descending"},{"id":"col-1-1","name":"Count"},{"id":"col-2-1","name":"Max bytes"}],"rows":[{"col-0-2":"200","col-1-1":12891,"col-2-1":19986},{"col-0-2":"404","col-1-1":696,"col-2-1":19881},{"col-0-2":"503","col-1-1":417,"col-2-1":0}],"type":"kibana_datatable"},"visType":"metric"}}
|
||||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"dimensions":{"metrics":[{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},{"accessor":1,"format":{"id":"string","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"aggConfigParams":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"indexPatternId":"logstash-*","type":"terms"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"aggConfigParams":{},"indexPatternId":"logstash-*","type":"count"},"name":"Count"},{"id":"col-2-1","meta":{"aggConfigParams":{"field":"bytes"},"indexPatternId":"logstash-*","type":"max"},"name":"Max bytes"}],"rows":[{"col-0-2":"200","col-1-1":12891,"col-2-1":19986},{"col-0-2":"404","col-1-1":696,"col-2-1":19881},{"col-0-2":"503","col-1-1":417,"col-2-1":0}],"type":"kibana_datatable"},"visType":"metric"}}
|
|
@ -1 +1 @@
|
|||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"dimensions":{"metrics":[{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":1000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":true,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","name":"response.raw: Descending"},{"id":"col-1-1","name":"Count"},{"id":"col-2-1","name":"Max bytes"}],"rows":[{"col-0-2":"200","col-1-1":12891,"col-2-1":19986},{"col-0-2":"404","col-1-1":696,"col-2-1":19881},{"col-0-2":"503","col-1-1":417,"col-2-1":0}],"type":"kibana_datatable"},"visType":"metric"}}
|
||||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"dimensions":{"metrics":[{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":1000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":true,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"aggConfigParams":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"indexPatternId":"logstash-*","type":"terms"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"aggConfigParams":{},"indexPatternId":"logstash-*","type":"count"},"name":"Count"},{"id":"col-2-1","meta":{"aggConfigParams":{"field":"bytes"},"indexPatternId":"logstash-*","type":"max"},"name":"Max bytes"}],"rows":[{"col-0-2":"200","col-1-1":12891,"col-2-1":19986},{"col-0-2":"404","col-1-1":696,"col-2-1":19881},{"col-0-2":"503","col-1-1":417,"col-2-1":0}],"type":"kibana_datatable"},"visType":"metric"}}
|
|
@ -1 +1 @@
|
|||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"dimensions":{"metrics":[{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","name":"response.raw: Descending"},{"id":"col-1-1","name":"Count"},{"id":"col-2-1","name":"Max bytes"}],"rows":[{"col-0-2":"200","col-1-1":12891,"col-2-1":19986},{"col-0-2":"404","col-1-1":696,"col-2-1":19881},{"col-0-2":"503","col-1-1":417,"col-2-1":0}],"type":"kibana_datatable"},"visType":"metric"}}
|
||||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"dimensions":{"metrics":[{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"aggConfigParams":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"indexPatternId":"logstash-*","type":"terms"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"aggConfigParams":{},"indexPatternId":"logstash-*","type":"count"},"name":"Count"},{"id":"col-2-1","meta":{"aggConfigParams":{"field":"bytes"},"indexPatternId":"logstash-*","type":"max"},"name":"Max bytes"}],"rows":[{"col-0-2":"200","col-1-1":12891,"col-2-1":19986},{"col-0-2":"404","col-1-1":696,"col-2-1":19881},{"col-0-2":"503","col-1-1":417,"col-2-1":0}],"type":"kibana_datatable"},"visType":"metric"}}
|
|
@ -1 +1 @@
|
|||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"bucket":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"maxFontSize":72,"metric":{"accessor":1,"format":{"id":"number","params":{}},"type":"vis_dimension"},"minFontSize":18,"orientation":"single","scale":"linear","showLabel":true},"visData":{"columns":[{"id":"col-0-2","name":"response.raw: Descending"},{"id":"col-1-1","name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"kibana_datatable"},"visType":"tagcloud"}}
|
||||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"bucket":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"maxFontSize":72,"metric":{"accessor":1,"format":{"id":"number","params":{}},"type":"vis_dimension"},"minFontSize":18,"orientation":"single","scale":"linear","showLabel":true},"visData":{"columns":[{"id":"col-0-2","meta":{"aggConfigParams":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"indexPatternId":"logstash-*","type":"terms"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"aggConfigParams":{},"indexPatternId":"logstash-*","type":"count"},"name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"kibana_datatable"},"visType":"tagcloud"}}
|
|
@ -1 +1 @@
|
|||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"dimensions":{"bucket":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"metrics":[{"accessor":1,"format":{"id":"number","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","name":"response.raw: Descending"},{"id":"col-1-1","name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"kibana_datatable"},"visType":"metric"}}
|
||||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"dimensions":{"bucket":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"metrics":[{"accessor":1,"format":{"id":"number","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"aggConfigParams":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"indexPatternId":"logstash-*","type":"terms"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"aggConfigParams":{},"indexPatternId":"logstash-*","type":"count"},"name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"kibana_datatable"},"visType":"metric"}}
|
|
@ -1 +1 @@
|
|||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"bucket":{"accessor":0},"metric":{"accessor":1,"format":{"id":"number"}}},"visData":{"columns":[{"id":"col-0-2","name":"response.raw: Descending"},{"id":"col-1-1","name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"kibana_datatable"},"visType":"region_map"}}
|
||||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"bucket":{"accessor":0},"metric":{"accessor":1,"format":{"id":"number"}}},"visData":{"columns":[{"id":"col-0-2","meta":{"aggConfigParams":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"indexPatternId":"logstash-*","type":"terms"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"aggConfigParams":{},"indexPatternId":"logstash-*","type":"count"},"name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"kibana_datatable"},"visType":"region_map"}}
|
|
@ -1 +1 @@
|
|||
{"columns":[{"id":"col-0-2","name":"response.raw: Descending"},{"id":"col-1-1","name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"kibana_datatable"}
|
||||
{"columns":[{"id":"col-0-2","meta":{"aggConfigParams":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"indexPatternId":"logstash-*","type":"terms"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"aggConfigParams":{},"indexPatternId":"logstash-*","type":"count"},"name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"kibana_datatable"}
|
|
@ -1 +1 @@
|
|||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"dimensions":{"bucket":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"metrics":[{"accessor":1,"format":{"id":"number","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","name":"response.raw: Descending"},{"id":"col-1-1","name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"kibana_datatable"},"visType":"metric"}}
|
||||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"dimensions":{"bucket":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"metrics":[{"accessor":1,"format":{"id":"number","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"aggConfigParams":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"indexPatternId":"logstash-*","type":"terms"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"aggConfigParams":{},"indexPatternId":"logstash-*","type":"count"},"name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"kibana_datatable"},"visType":"metric"}}
|
|
@ -1 +1 @@
|
|||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"bucket":{"accessor":1,"format":{"id":"string","params":{}},"type":"vis_dimension"},"maxFontSize":72,"metric":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"minFontSize":18,"orientation":"single","scale":"linear","showLabel":true},"visData":{"columns":[{"id":"col-0-2","name":"response.raw: Descending"},{"id":"col-1-1","name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"kibana_datatable"},"visType":"tagcloud"}}
|
||||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"bucket":{"accessor":1,"format":{"id":"string","params":{}},"type":"vis_dimension"},"maxFontSize":72,"metric":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"minFontSize":18,"orientation":"single","scale":"linear","showLabel":true},"visData":{"columns":[{"id":"col-0-2","meta":{"aggConfigParams":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"indexPatternId":"logstash-*","type":"terms"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"aggConfigParams":{},"indexPatternId":"logstash-*","type":"count"},"name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"kibana_datatable"},"visType":"tagcloud"}}
|
|
@ -1 +1 @@
|
|||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"bucket":{"accessor":1,"format":{"id":"string","params":{}},"type":"vis_dimension"},"maxFontSize":40,"metric":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"minFontSize":20,"orientation":"single","scale":"linear","showLabel":true},"visData":{"columns":[{"id":"col-0-2","name":"response.raw: Descending"},{"id":"col-1-1","name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"kibana_datatable"},"visType":"tagcloud"}}
|
||||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"bucket":{"accessor":1,"format":{"id":"string","params":{}},"type":"vis_dimension"},"maxFontSize":40,"metric":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"minFontSize":20,"orientation":"single","scale":"linear","showLabel":true},"visData":{"columns":[{"id":"col-0-2","meta":{"aggConfigParams":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"indexPatternId":"logstash-*","type":"terms"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"aggConfigParams":{},"indexPatternId":"logstash-*","type":"count"},"name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"kibana_datatable"},"visType":"tagcloud"}}
|
|
@ -1 +1 @@
|
|||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"maxFontSize":72,"metric":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"minFontSize":18,"orientation":"single","scale":"linear","showLabel":true},"visData":{"columns":[{"id":"col-0-2","name":"response.raw: Descending"},{"id":"col-1-1","name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"kibana_datatable"},"visType":"tagcloud"}}
|
||||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"maxFontSize":72,"metric":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"minFontSize":18,"orientation":"single","scale":"linear","showLabel":true},"visData":{"columns":[{"id":"col-0-2","meta":{"aggConfigParams":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"indexPatternId":"logstash-*","type":"terms"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"aggConfigParams":{},"indexPatternId":"logstash-*","type":"count"},"name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"kibana_datatable"},"visType":"tagcloud"}}
|
|
@ -1 +1 @@
|
|||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"bucket":{"accessor":1,"format":{"id":"string","params":{}},"type":"vis_dimension"},"maxFontSize":72,"metric":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"minFontSize":18,"orientation":"multiple","scale":"log","showLabel":true},"visData":{"columns":[{"id":"col-0-2","name":"response.raw: Descending"},{"id":"col-1-1","name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"kibana_datatable"},"visType":"tagcloud"}}
|
||||
{"as":"visualization","type":"render","value":{"params":{"listenOnChange":true},"visConfig":{"bucket":{"accessor":1,"format":{"id":"string","params":{}},"type":"vis_dimension"},"maxFontSize":72,"metric":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"minFontSize":18,"orientation":"multiple","scale":"log","showLabel":true},"visData":{"columns":[{"id":"col-0-2","meta":{"aggConfigParams":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"indexPatternId":"logstash-*","type":"terms"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"aggConfigParams":{},"indexPatternId":"logstash-*","type":"count"},"name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"kibana_datatable"},"visType":"tagcloud"}}
|