From 4bf41a77725655b7c321f1245995faff3b4c9307 Mon Sep 17 00:00:00 2001 From: Abhishek Katiyar Date: Tue, 9 Mar 2021 09:35:17 +0530 Subject: [PATCH 1/3] INFRA-675 | Abhishek | Add option to configure service monitor from portal --- src/coreform/BaseForm.tsx | 7 ++++++ src/coreform/DeploymentBasicTab.tsx | 5 ++-- src/coreform/ServiceMonitorForm.tsx | 37 +++++++++++++++++++++++++++++ src/models/Manifest.ts | 15 +++++++++++- 4 files changed, 61 insertions(+), 3 deletions(-) create mode 100644 src/coreform/ServiceMonitorForm.tsx diff --git a/src/coreform/BaseForm.tsx b/src/coreform/BaseForm.tsx index 953513a..77296fc 100644 --- a/src/coreform/BaseForm.tsx +++ b/src/coreform/BaseForm.tsx @@ -14,6 +14,7 @@ import {Button, Divider, Snackbar, Typography} from '@material-ui/core'; import {Alert} from "@material-ui/lab"; import DeploymentForm from './DeploymentForm'; import AWSAccessForm from './AWSAccessForm'; +import ServiceMonitorForm from "./ServiceMonitorForm"; const useStyles = makeStyles((theme: Theme) => ({ root: { @@ -69,6 +70,12 @@ const tabList: Array = [ component: , errorCheckFn: _m.hasAwsAccess }, + { + name: 'Service Monitor', + displayName: 'service monitor', + component: , + errorCheckFn: _m.hasServiceMonitor + }, ] const tabHasErrors = (tab: FormTab, errors: any) => { diff --git a/src/coreform/DeploymentBasicTab.tsx b/src/coreform/DeploymentBasicTab.tsx index 3352bed..3689c7d 100644 --- a/src/coreform/DeploymentBasicTab.tsx +++ b/src/coreform/DeploymentBasicTab.tsx @@ -4,12 +4,13 @@ import { toMenuItems } from './FormUtil'; import * as _m from '../models/Manifest' import { FormikTextField } from '../components/common/FormikTextField'; import { useFormikContext } from 'formik'; -import { makeStyles, TableCell } from '@material-ui/core'; +import {Box, makeStyles, TableCell, Typography} from '@material-ui/core'; import { FormikTable } from '../components/common/FormikTable'; import HealthCheckCard from './HealthCheckCard'; -import { cardStyles } from './Styles'; +import {boxStyleProps, cardStyles} from './Styles'; import AutoscalingCard from './AutoscalingCard'; import CardLayout from '../components/common/CardLayout'; +import {FormikCardList} from "../components/common/FormikCardList"; const useStyles = makeStyles({ ...cardStyles, diff --git a/src/coreform/ServiceMonitorForm.tsx b/src/coreform/ServiceMonitorForm.tsx new file mode 100644 index 0000000..721b8b4 --- /dev/null +++ b/src/coreform/ServiceMonitorForm.tsx @@ -0,0 +1,37 @@ +import CardLayout from "../components/common/CardLayout"; +import {FormikTextField} from "../components/common/FormikTextField"; +import * as React from "react"; +import {makeStyles} from "@material-ui/core"; +import {cardStyles} from "./Styles"; +import NotConfigured from "./NotConfiguredPanel"; +import * as _m from '../models/Manifest' +import {useFormikContext} from "formik"; + +const useStyles = makeStyles({ + ...cardStyles, + spacer: { + marginTop: 5, + marginBottom: 10 + } +}); + +const ServiceMonitorForm = () => { + const { values, setValues }: { values: any, setValues: any } = useFormikContext() + const classes = useStyles(); + + return ( + setValues(_m.addServiceMonitor(values))} + removeAction={()=>setValues(_m.removeServiceMonitor(values))} + name="Service Monitor"> + + + + + + + ) +} + +export default ServiceMonitorForm; \ No newline at end of file diff --git a/src/models/Manifest.ts b/src/models/Manifest.ts index adbfcc8..50e0987 100644 --- a/src/models/Manifest.ts +++ b/src/models/Manifest.ts @@ -9,7 +9,8 @@ export const path = { s3Buckets: 'extraResources.s3_buckets', loadBalancers: 'deployment.loadBalancers', additionalIpWhitelisting: 'deployment.securityGroup', - alerts: 'deployment.alerts' + alerts: 'deployment.alerts', + serviceMonitor: 'deployment.serviceMonitor' } // Constants @@ -57,6 +58,10 @@ export const hasEnvironmentVariables = (manifest: any) => { return has(manifest, path.environmentVariables) } +export const hasServiceMonitor = (manifest: any) => { + return (has(manifest, path.serviceMonitor) && has(manifest,path.deployment)) +} + export const addDeployment = (manifest: any) => { return setIn(manifest, path.deployment, { cluster: '', @@ -131,10 +136,18 @@ export const addAwsAccess = (manifest: any) => { return setIn(manifest, path.awsAccess, {}) } +export const addServiceMonitor = (manifest: any) => { + return setIn(manifest, path.serviceMonitor, {}) +} + export const removeAwsAccess = (manifest: any) => { return remove(manifest, path.awsAccess) } +export const removeServiceMonitor = (manifest: any) => { + return remove(manifest, path.serviceMonitor) +} + export const newAwsAccessPolicy = () => { return { actions: [], From d14f564c43da5eb6e742a8af24647c0b24648607 Mon Sep 17 00:00:00 2001 From: Abhishek Katiyar Date: Tue, 9 Mar 2021 09:44:39 +0530 Subject: [PATCH 2/3] INFRA-675 | Abhishek | Fix service monitor tab --- src/coreform/ServiceMonitorForm.tsx | 6 +++--- src/models/Manifest.ts | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/coreform/ServiceMonitorForm.tsx b/src/coreform/ServiceMonitorForm.tsx index 721b8b4..b756933 100644 --- a/src/coreform/ServiceMonitorForm.tsx +++ b/src/coreform/ServiceMonitorForm.tsx @@ -26,9 +26,9 @@ const ServiceMonitorForm = () => { removeAction={()=>setValues(_m.removeServiceMonitor(values))} name="Service Monitor"> - - - + + + ) diff --git a/src/models/Manifest.ts b/src/models/Manifest.ts index 50e0987..83190ce 100644 --- a/src/models/Manifest.ts +++ b/src/models/Manifest.ts @@ -137,7 +137,7 @@ export const addAwsAccess = (manifest: any) => { } export const addServiceMonitor = (manifest: any) => { - return setIn(manifest, path.serviceMonitor, {}) + return setIn(manifest, path.serviceMonitor, {enabled: true}) } export const removeAwsAccess = (manifest: any) => { From 852a7c1fe125926b90a4e28f8d828c589093c40e Mon Sep 17 00:00:00 2001 From: Abhishek Katiyar Date: Tue, 9 Mar 2021 09:50:34 +0530 Subject: [PATCH 3/3] INFRA-675 | Abhishek | Fix default values in service monitor --- src/coreform/ServiceMonitorForm.tsx | 2 +- src/models/Manifest.ts | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/coreform/ServiceMonitorForm.tsx b/src/coreform/ServiceMonitorForm.tsx index b756933..aef8fee 100644 --- a/src/coreform/ServiceMonitorForm.tsx +++ b/src/coreform/ServiceMonitorForm.tsx @@ -26,7 +26,7 @@ const ServiceMonitorForm = () => { removeAction={()=>setValues(_m.removeServiceMonitor(values))} name="Service Monitor"> - + diff --git a/src/models/Manifest.ts b/src/models/Manifest.ts index 83190ce..41e20b9 100644 --- a/src/models/Manifest.ts +++ b/src/models/Manifest.ts @@ -137,7 +137,12 @@ export const addAwsAccess = (manifest: any) => { } export const addServiceMonitor = (manifest: any) => { - return setIn(manifest, path.serviceMonitor, {enabled: true}) + return setIn(manifest, path.serviceMonitor, { + enabled: true, + port: 'serviceport', + path: '/actuator/prometheus', + interval: '30s' + }) } export const removeAwsAccess = (manifest: any) => {