diff --git a/site/src/AppRouter.tsx b/site/src/AppRouter.tsx index 3568b3230ab0a..ab61681679033 100644 --- a/site/src/AppRouter.tsx +++ b/site/src/AppRouter.tsx @@ -122,6 +122,12 @@ const NetworkSettingsPage = lazy( "./pages/DeploySettingsPage/NetworkSettingsPage/NetworkSettingsPage" ), ); +const ObservabilitySettingsPage = lazy( + () => + import( + "./pages/DeploySettingsPage/ObservabilitySettingsPage/ObservabilitySettingsPage" + ), +); const ExternalAuthPage = lazy( () => import("./pages/ExternalAuthPage/ExternalAuthPage"), ); @@ -290,6 +296,10 @@ export const AppRouter: FC = () => { } /> } /> } /> + } + /> } /> } /> } /> diff --git a/site/src/components/DeploySettingsLayout/Sidebar.tsx b/site/src/components/DeploySettingsLayout/Sidebar.tsx index 1a5892d22421d..e13b0c68abc20 100644 --- a/site/src/components/DeploySettingsLayout/Sidebar.tsx +++ b/site/src/components/DeploySettingsLayout/Sidebar.tsx @@ -2,6 +2,7 @@ import Brush from "@mui/icons-material/Brush"; import LaunchOutlined from "@mui/icons-material/LaunchOutlined"; import ApprovalIcon from "@mui/icons-material/VerifiedUserOutlined"; import LockRounded from "@mui/icons-material/LockOutlined"; +import InsertChartIcon from "@mui/icons-material/InsertChart"; import Globe from "@mui/icons-material/PublicOutlined"; import HubOutlinedIcon from "@mui/icons-material/HubOutlined"; import VpnKeyOutlined from "@mui/icons-material/VpnKeyOutlined"; @@ -133,6 +134,12 @@ export const Sidebar: React.FC = () => { > Security + } + > + Observability + {dashboard.experiments.includes("deployment_health_page") && ( { + const { deploymentValues: deploymentValues } = useDeploySettings(); + const { entitlements } = useDashboard(); + + return ( + <> + + {pageTitle("Observability Settings")} + + + + + ); +}; + +export default ObservabilitySettingsPage; diff --git a/site/src/pages/DeploySettingsPage/ObservabilitySettingsPage/ObservabilitySettingsPageView.stories.tsx b/site/src/pages/DeploySettingsPage/ObservabilitySettingsPage/ObservabilitySettingsPageView.stories.tsx new file mode 100644 index 0000000000000..122f73b7f7f0b --- /dev/null +++ b/site/src/pages/DeploySettingsPage/ObservabilitySettingsPage/ObservabilitySettingsPageView.stories.tsx @@ -0,0 +1,54 @@ +import { ObservabilitySettingsPageView } from "./ObservabilitySettingsPageView"; +import type { Meta, StoryObj } from "@storybook/react"; +import { ClibaseGroup } from "api/typesGenerated"; + +const group: ClibaseGroup = { + name: "Introspection", + description: "", +}; + +const meta: Meta = { + title: "pages/DeploySettingsPage/ObservabilitySettingsPageView", + component: ObservabilitySettingsPageView, + args: { + options: [ + { + name: "Verbose", + value: true, + group, + flag: "verbose", + flag_shorthand: "v", + hidden: false, + }, + { + name: "Human Log Location", + description: "Output human-readable logs to a given file.", + value: "/dev/stderr", + flag: "log-human", + hidden: false, + }, + { + name: "Stackdriver Log Location", + description: "Output Stackdriver compatible logs to a given file.", + value: "", + flag: "log-stackdriver", + hidden: false, + }, + { + name: "Prometheus Enable", + description: + "Serve prometheus metrics on the address defined by prometheus address.", + value: true, + group: { ...group }, + flag: "prometheus-enable", + hidden: false, + }, + ], + featureAuditLogEnabled: true, + }, +}; + +export default meta; +type Story = StoryObj; + +export const Page: Story = {}; diff --git a/site/src/pages/DeploySettingsPage/ObservabilitySettingsPage/ObservabilitySettingsPageView.tsx b/site/src/pages/DeploySettingsPage/ObservabilitySettingsPage/ObservabilitySettingsPageView.tsx new file mode 100644 index 0000000000000..e3d2cc3f8f9a7 --- /dev/null +++ b/site/src/pages/DeploySettingsPage/ObservabilitySettingsPage/ObservabilitySettingsPageView.tsx @@ -0,0 +1,56 @@ +import { ClibaseOption } from "api/typesGenerated"; +import { + Badges, + DisabledBadge, + EnabledBadge, + EnterpriseBadge, +} from "components/DeploySettingsLayout/Badges"; +import { Header } from "components/DeploySettingsLayout/Header"; +import OptionsTable from "components/DeploySettingsLayout/OptionsTable"; +import { Stack } from "components/Stack/Stack"; +import { deploymentGroupHasParent } from "utils/deployOptions"; +import { docs } from "utils/docs"; + +export type ObservabilitySettingsPageViewProps = { + options: ClibaseOption[]; + featureAuditLogEnabled: boolean; +}; +export const ObservabilitySettingsPageView = ({ + options: options, + featureAuditLogEnabled, +}: ObservabilitySettingsPageViewProps): JSX.Element => { + return ( + <> + +
+
+
+ + + {featureAuditLogEnabled ? : } + + +
+ +
+
+ + + deploymentGroupHasParent(o.group, "Introspection"), + )} + /> +
+
+ + ); +}; diff --git a/site/src/pages/DeploySettingsPage/SecuritySettingsPage/SecuritySettingsPage.tsx b/site/src/pages/DeploySettingsPage/SecuritySettingsPage/SecuritySettingsPage.tsx index ff78264dcb846..420f42f2d14ce 100644 --- a/site/src/pages/DeploySettingsPage/SecuritySettingsPage/SecuritySettingsPage.tsx +++ b/site/src/pages/DeploySettingsPage/SecuritySettingsPage/SecuritySettingsPage.tsx @@ -17,7 +17,6 @@ const SecuritySettingsPage: FC = () => { = { hidden: false, }, ], - featureAuditLogEnabled: true, featureBrowserOnlyEnabled: true, }, }; diff --git a/site/src/pages/DeploySettingsPage/SecuritySettingsPage/SecuritySettingsPageView.tsx b/site/src/pages/DeploySettingsPage/SecuritySettingsPage/SecuritySettingsPageView.tsx index e2bb6508fb239..48d40356756a7 100644 --- a/site/src/pages/DeploySettingsPage/SecuritySettingsPage/SecuritySettingsPageView.tsx +++ b/site/src/pages/DeploySettingsPage/SecuritySettingsPage/SecuritySettingsPageView.tsx @@ -16,12 +16,10 @@ import { docs } from "utils/docs"; export type SecuritySettingsPageViewProps = { options: ClibaseOption[]; - featureAuditLogEnabled: boolean; featureBrowserOnlyEnabled: boolean; }; export const SecuritySettingsPageView = ({ options: options, - featureAuditLogEnabled, featureBrowserOnlyEnabled, }: SecuritySettingsPageViewProps): JSX.Element => { const tlsOptions = options.filter((o) => @@ -47,20 +45,6 @@ export const SecuritySettingsPageView = ({ /> -
-
- - - {featureAuditLogEnabled ? : } - - -
-