diff --git a/global-setup.js b/global-setup.js
index 3c578000..67ca0db6 100644
--- a/global-setup.js
+++ b/global-setup.js
@@ -1,3 +1,3 @@
export default () => {
- process.env.TZ = 'UTC';
- }
\ No newline at end of file
+ process.env.TZ = 'UTC';
+};
diff --git a/public/components/FormattedFormRow/FormattedFormRow.tsx b/public/components/FormattedFormRow/FormattedFormRow.tsx
index 7a125664..20cf8daa 100644
--- a/public/components/FormattedFormRow/FormattedFormRow.tsx
+++ b/public/components/FormattedFormRow/FormattedFormRow.tsx
@@ -35,7 +35,7 @@ export const FormattedFormRow = (props: FormattedFormRowProps) => {
{props.hintLink ? ' ' : null}
{props.hintLink ? (
- Learn more
+ Learn more
) : null}
diff --git a/public/models/interfaces.ts b/public/models/interfaces.ts
index e2eea176..f8fbc248 100644
--- a/public/models/interfaces.ts
+++ b/public/models/interfaces.ts
@@ -82,27 +82,27 @@ export type FeatureAttributes = {
// all possible valid units accepted by the backend
export enum UNITS {
- NANOS = "Nanos",
- MICROS = "Micros",
- MILLIS = "Millis",
- SECONDS = "Seconds",
+ NANOS = 'Nanos',
+ MICROS = 'Micros',
+ MILLIS = 'Millis',
+ SECONDS = 'Seconds',
MINUTES = 'Minutes',
- HOURS = "Hours",
- HALF_DAYS = "HalfDays",
- DAYS = "Days",
- WEEKS = "Weeks",
- MONTHS = "Months",
- YEARS = "Years",
- DECADES = "Decades",
- CENTURIES = "Centuries",
- MILLENNIA = "Millennia",
- ERAS = "Eras",
- FOREVER = "Forever"
+ HOURS = 'Hours',
+ HALF_DAYS = 'HalfDays',
+ DAYS = 'Days',
+ WEEKS = 'Weeks',
+ MONTHS = 'Months',
+ YEARS = 'Years',
+ DECADES = 'Decades',
+ CENTURIES = 'Centuries',
+ MILLENNIA = 'Millennia',
+ ERAS = 'Eras',
+ FOREVER = 'Forever',
}
// cannot create a method in enum, have to write function separately
export function toDuration(units: UNITS): Duration {
- switch(units) {
+ switch (units) {
case UNITS.NANOS: {
// Duration in moment library does not support
return moment.duration(0.000000001, 'seconds');
@@ -155,7 +155,7 @@ export function toDuration(units: UNITS): Duration {
default:
break;
}
- throw new Error("Unexpected unit: " + units);
+ throw new Error('Unexpected unit: ' + units);
}
export type Schedule = {
@@ -235,7 +235,7 @@ export type AnomalyData = {
entity?: EntityData[];
features?: { [key: string]: FeatureAggregationData };
contributions?: { [key: string]: FeatureContributionData };
- aggInterval?: string;
+ aggInterval?: string;
};
export type FeatureAggregationData = {
diff --git a/public/pages/AnomalyCharts/components/AnomaliesStat/AnomalyStat.tsx b/public/pages/AnomalyCharts/components/AnomaliesStat/AnomalyStat.tsx
index 56c4db8c..2f82cccf 100644
--- a/public/pages/AnomalyCharts/components/AnomaliesStat/AnomalyStat.tsx
+++ b/public/pages/AnomalyCharts/components/AnomaliesStat/AnomalyStat.tsx
@@ -91,7 +91,7 @@ export const AlertsStat = (props: {
target="_blank"
style={{ fontSize: '14px' }}
>
- View monitor
+ View monitor
) : null}
diff --git a/public/pages/AnomalyCharts/components/AnomaliesStat/__tests__/__snapshots__/AnomalyStat.test.tsx.snap b/public/pages/AnomalyCharts/components/AnomaliesStat/__tests__/__snapshots__/AnomalyStat.test.tsx.snap
index fbc59913..4577f90a 100644
--- a/public/pages/AnomalyCharts/components/AnomaliesStat/__tests__/__snapshots__/AnomalyStat.test.tsx.snap
+++ b/public/pages/AnomalyCharts/components/AnomaliesStat/__tests__/__snapshots__/AnomalyStat.test.tsx.snap
@@ -38,21 +38,7 @@ exports[` spec Alert Stat renders component with monitor and loadi
style="font-size: 14px;"
target="_blank"
>
- View monitor
-
+ View monitor
spec Alert Stat renders component with monitor and not l
style="font-size: 14px;"
target="_blank"
>
- View monitor
-
+ View monitor
- ) : null}
+
+
+ {featureAttributionList}
+
+ ) : null}
);
};
-
const generateContributionAnomalyAnnotations = (
anomalies: AnomalyData[][]
): any[][] => {
let annotations = [] as any[];
anomalies.forEach((anomalyTimeSeries: AnomalyData[]) => {
annotations.push(
- Array.isArray(anomalyTimeSeries) ? (
- anomalyTimeSeries
- .filter((anomaly: AnomalyData) => anomaly.anomalyGrade > 0)
- .map((anomaly: AnomalyData) => (
- {
- coordinates: {
- x0: anomaly.startTime,
- x1: anomaly.endTime + (anomaly.endTime - anomaly.startTime),
- },
- details: `${JSON.stringify(anomaly)}`
- }))
- ) : []
+ Array.isArray(anomalyTimeSeries)
+ ? anomalyTimeSeries
+ .filter((anomaly: AnomalyData) => anomaly.anomalyGrade > 0)
+ .map((anomaly: AnomalyData) => ({
+ coordinates: {
+ x0: anomaly.startTime,
+ x1: anomaly.endTime + (anomaly.endTime - anomaly.startTime),
+ },
+ details: `${JSON.stringify(anomaly)}`,
+ }))
+ : []
);
});
return annotations;
@@ -601,7 +602,9 @@ export const AnomalyDetailsChart = React.memo(
/>
)}
-
+ />
+
{alertAnnotations ? (
- )
+ : props.anomalyGradeSeriesName;
+ return (
+
+ );
}
)}
diff --git a/public/pages/AnomalyCharts/containers/FeatureBreakDown.tsx b/public/pages/AnomalyCharts/containers/FeatureBreakDown.tsx
index 51dd1318..e939e64d 100644
--- a/public/pages/AnomalyCharts/containers/FeatureBreakDown.tsx
+++ b/public/pages/AnomalyCharts/containers/FeatureBreakDown.tsx
@@ -176,11 +176,9 @@ export const FeatureBreakDown = React.memo((props: FeatureBreakDownProps) => {
detectorEnabledTime={props.detector.enabledTime}
entityData={getEntityDataForChart(props.anomalyAndFeatureResults)}
isHCDetector={props.isHCDetector}
- windowDelay={
- get(props, `detector.windowDelay.period`, {
- period: { interval: 0, unit: UNITS.MINUTES },
- })
- }
+ windowDelay={get(props, `detector.windowDelay.period`, {
+ period: { interval: 0, unit: UNITS.MINUTES },
+ })}
/>
{index + 1 ===
get(props, 'detector.featureAttributes', []).length ? null : (
diff --git a/public/pages/AnomalyCharts/utils/anomalyChartUtils.tsx b/public/pages/AnomalyCharts/utils/anomalyChartUtils.tsx
index 23c7031d..b2603ada 100644
--- a/public/pages/AnomalyCharts/utils/anomalyChartUtils.tsx
+++ b/public/pages/AnomalyCharts/utils/anomalyChartUtils.tsx
@@ -640,9 +640,7 @@ export const getFeatureBreakdownWording = (
return isNotSample ? 'Feature breakdown' : 'Sample feature breakdown';
};
-export const getFeatureDataWording = (
- isNotSample: boolean | undefined
-) => {
+export const getFeatureDataWording = (isNotSample: boolean | undefined) => {
return isNotSample ? 'Feature output' : 'Sample feature output';
};
diff --git a/public/pages/AnomalyCharts/utils/constants.ts b/public/pages/AnomalyCharts/utils/constants.ts
index 5b699a1b..88afc988 100644
--- a/public/pages/AnomalyCharts/utils/constants.ts
+++ b/public/pages/AnomalyCharts/utils/constants.ts
@@ -24,7 +24,7 @@ export enum CHART_FIELDS {
CONFIDENCE = 'confidence',
DATA = 'data',
AGG_INTERVAL = 'aggInterval',
- EXPECTED_VALUE = 'expectedValue'
+ EXPECTED_VALUE = 'expectedValue',
}
export enum CHART_COLORS {
@@ -91,7 +91,7 @@ export const DEFAULT_ANOMALY_SUMMARY = {
maxAnomalyGrade: 0,
minConfidence: 0,
maxConfidence: 0,
- lastAnomalyOccurrence: '-'
+ lastAnomalyOccurrence: '-',
};
export const HEATMAP_CHART_Y_AXIS_WIDTH = 30;
diff --git a/public/pages/ConfigureModel/components/CategoryField/CategoryField.tsx b/public/pages/ConfigureModel/components/CategoryField/CategoryField.tsx
index 9afe53a1..130e64d5 100644
--- a/public/pages/ConfigureModel/components/CategoryField/CategoryField.tsx
+++ b/public/pages/ConfigureModel/components/CategoryField/CategoryField.tsx
@@ -76,7 +76,7 @@ export function CategoryField(props: CategoryFieldProps) {
Split a single time series into multiple time series based on
categorical fields. You can select up to 2.{' '}
- Learn more
+ Learn more
}
diff --git a/public/pages/ConfigureModel/components/CategoryField/__tests__/__snapshots__/CategoryField.test.tsx.snap b/public/pages/ConfigureModel/components/CategoryField/__tests__/__snapshots__/CategoryField.test.tsx.snap
index a1117607..557d3b8d 100644
--- a/public/pages/ConfigureModel/components/CategoryField/__tests__/__snapshots__/CategoryField.test.tsx.snap
+++ b/public/pages/ConfigureModel/components/CategoryField/__tests__/__snapshots__/CategoryField.test.tsx.snap
@@ -50,17 +50,7 @@ exports[` spec renders the component when disabled 1`] = `
rel="noopener noreferrer"
target="_blank"
>
- Learn more
-
+ Learn more
spec renders the component when enabled 1`] = `
rel="noopener noreferrer"
target="_blank"
>
- Learn more
-
+ Learn more