Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/update vertical domain #372

Merged
Show file tree
Hide file tree
Changes from 13 commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
f78f8dd
[FEATURE] Detector must have at least one alert set #288
jovancvetkovic3006 Jan 9, 2023
1ea796c
Merge branch 'main' of https://github.com/opensearch-project/security…
jovancvetkovic3006 Jan 11, 2023
0d514d8
Merge branch 'main' of https://github.com/opensearch-project/security…
jovancvetkovic3006 Jan 16, 2023
09ede34
[FEATURE] Expand the chart's vertical domain so that top positioning …
jovancvetkovic3006 Jan 17, 2023
2a152eb
Merge branch 'main' of https://github.com/opensearch-project/security…
jovancvetkovic3006 Jan 17, 2023
f900666
Feature/update vertical domain #638
jovancvetkovic3006 Jan 18, 2023
2bf8edf
Merge branch 'main' of https://github.com/opensearch-project/security…
jovancvetkovic3006 Jan 18, 2023
0b63d29
Feature/update vertical domain #638
jovancvetkovic3006 Jan 18, 2023
d6fb9e0
Feature/update vertical domain #638
jovancvetkovic3006 Jan 18, 2023
aac122b
Merge branch 'main' of https://github.com/opensearch-project/security…
jovancvetkovic3006 Jan 23, 2023
0f31144
Merge branch 'main' of https://github.com/opensearch-project/security…
jovancvetkovic3006 Jan 25, 2023
ad1ac60
testing github-action v5
jovancvetkovic3006 Jan 25, 2023
1b4e918
Merge branch 'main' of https://github.com/opensearch-project/security…
jovancvetkovic3006 Jan 31, 2023
99daddd
Merge branch 'main' of https://github.com/opensearch-project/security…
jovancvetkovic3006 Feb 3, 2023
31a5d5c
Feature/update vertical domain #372
jovancvetkovic3006 Feb 3, 2023
e6055f5
Unit tests for public components #383
jovancvetkovic3006 Feb 11, 2023
4f27277
Merge branch 'main' into feature/update_vertical_domain
AWSHurneyt Feb 16, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 11 additions & 4 deletions cypress/integration/1_detectors.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@

import { OPENSEARCH_DASHBOARDS_URL } from '../support/constants';
import sample_index_settings from '../fixtures/sample_index_settings.json';
import { recurse } from 'cypress-recurse';

const testMappings = {
properties: {
Expand Down Expand Up @@ -227,10 +228,16 @@ describe('Detectors', () => {
});

// Change detector name
cy.get(`input[placeholder="Enter a name for the detector."]`)
.realClick()
.ospClear()
.realType('test detector edited');
const detectorNameText = 'test detector edited';
const detectorNameSelector = 'input[placeholder="Enter a name for the detector."]';
cy.get(detectorNameSelector).should('have.value', 'test detector');

recurse(
() => cy.get(detectorNameSelector).clear().type(detectorNameText),
($input) => $input.val() === detectorNameText
).then(() => {
cy.get(detectorNameSelector).should('have.value', 'test detector edited');
});

// Change detector description
cy.get(`[data-test-subj="define-detector-detector-description"]`)
Expand Down
5 changes: 3 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -55,14 +55,15 @@
"@types/react-dom": "^16.9.8",
"@types/react-router-dom": "^5.3.2",
"cypress": "^6.0.0",
"cypress-real-events": "1.7.6",
"cypress-recurse": "^1.27.0",
"eslint-plugin-no-unsanitized": "^3.0.2",
"eslint-plugin-prefer-object-spread": "^1.2.1",
"husky": "^3.0.0",
"jest-cli": "^27.5.1",
"jest-environment-jsdom": "^27.5.1",
"lint-staged": "^9.2.0",
"ts-loader": "^6.2.1",
"cypress-real-events": "1.7.6"
"ts-loader": "^6.2.1"
},
"engines": {
"yarn": "^1.21.1"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -335,6 +335,12 @@ Object {
"grid": true,
},
"field": "finding",
"scale": Object {
"domain": Array [
0,
0.1,
],
},
"title": "Count",
"type": "quantitative",
},
Expand Down
37 changes: 29 additions & 8 deletions public/pages/Overview/utils/helpers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import dateMath from '@elastic/datemath';
import _ from 'lodash';
import { DEFAULT_DATE_RANGE } from '../../../utils/constants';
import { severityOptions } from '../../Alerts/utils/constants';
import moment from 'moment';

export interface TimeUnit {
unit: string;
Expand Down Expand Up @@ -67,13 +68,14 @@ export const defaultScaleDomain = [
parseDateString(DEFAULT_DATE_RANGE.end),
];

export const getYAxis = (field: string, title: string, axisGrid: boolean = true) => ({
aggregate: 'sum',
field: field,
type: 'quantitative',
title: title,
axis: { grid: axisGrid },
});
export const getYAxis = (field: string, title: string, axisGrid: boolean = true, opts: any = {}) =>
_.defaultsDeep(opts, {
aggregate: 'sum',
field: field,
type: 'quantitative',
title: title,
axis: { grid: axisGrid },
});

export const getXAxis = (dateOpts: DateOpts, opts: any = {}) =>
_.defaultsDeep(opts, {
Expand Down Expand Up @@ -121,6 +123,21 @@ export function getVisualizationSpec(description: string, data: any, layers: any
};
}

export const getYDomainRange = (data: any[], timeUnit: string): number[] => {
amsiglan marked this conversation as resolved.
Show resolved Hide resolved
data = data.filter((item) => item.finding === 1);

let dateFormat = 'mm';
const timeUnitSize = timeUnit.match(/.*(seconds|minutes|hours|date|month|year)$/);
if (timeUnitSize) {
if (timeUnitSize && timeUnitSize[1]) {
amsiglan marked this conversation as resolved.
Show resolved Hide resolved
dateFormat = `${timeUnitSize[1][0]}${timeUnitSize[1][0]}`;
amsiglan marked this conversation as resolved.
Show resolved Hide resolved
}
}
let dataGroups = _.groupBy(data, (item) => moment(item.time).format(dateFormat));
const domainMax = _.maxBy(Object.values(dataGroups), (group) => group.length) || [];
return [0, domainMax.length + 0.1];
};

export function getOverviewVisualizationSpec(
visualizationData: SummaryData[],
groupBy: string,
Expand All @@ -132,7 +149,11 @@ export function getOverviewVisualizationSpec(
): TopLevelSpec {
const findingsEncoding: { [x: string]: any } = {
x: getXAxis(dateOpts),
y: getYAxis('finding', 'Count'),
y: getYAxis('finding', 'Count', true, {
scale: {
domain: getYDomainRange(visualizationData, dateOpts.timeUnit.unit),
},
}),
tooltip: [getYAxis('finding', 'Findings'), getTimeTooltip(dateOpts)],
color: {
field: 'fieldType',
Expand Down
12 changes: 12 additions & 0 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2046,6 +2046,13 @@ [email protected]:
resolved "https://registry.yarnpkg.com/cypress-real-events/-/cypress-real-events-1.7.6.tgz#6f17e0b2ceea1d6dc60f6737d8f84cc517bbbb4c"
integrity sha512-yP6GnRrbm6HK5q4DH6Nnupz37nOfZu/xn1xFYqsE2o4G73giPWQOdu6375QYpwfU1cvHNCgyD2bQ2hPH9D7NMw==

cypress-recurse@^1.27.0:
version "1.27.0"
resolved "https://registry.yarnpkg.com/cypress-recurse/-/cypress-recurse-1.27.0.tgz#0c61e809c5f7740a7e907714614c49c72dcb5c1f"
integrity sha512-BCD83UqaxlD+JiqZn1PvIhHRXasgfCt57vLC1Fcyifvxh4QklELRcYUJV3MdhKamMkmajaErLfnCNbZ8VJ5SIg==
dependencies:
humanize-duration "^3.27.3"

cypress@^6.0.0:
version "6.9.1"
resolved "https://registry.yarnpkg.com/cypress/-/cypress-6.9.1.tgz#ce1106bfdc47f8d76381dba63f943447883f864c"
Expand Down Expand Up @@ -3143,6 +3150,11 @@ human-signals@^2.1.0:
resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==

humanize-duration@^3.27.3:
version "3.28.0"
resolved "https://registry.yarnpkg.com/humanize-duration/-/humanize-duration-3.28.0.tgz#f79770c0bec34d3bfd4899338cc40643bc04df72"
integrity sha512-jMAxraOOmHuPbffLVDKkEKi/NeG8dMqP8lGRd6Tbf7JgAeG33jjgPWDbXXU7ypCI0o+oNKJFgbSB9FKVdWNI2A==

husky@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/husky/-/husky-3.1.0.tgz#5faad520ab860582ed94f0c1a77f0f04c90b57c0"
Expand Down