From d870c494e6cb946e423c1fe5584969d2e1188ddc Mon Sep 17 00:00:00 2001 From: hamster1963 <1410514192@qq.com> Date: Wed, 9 Oct 2024 13:21:02 +0800 Subject: [PATCH] feat: add network chart --- .../(main)/ClientComponents/NetworkChart.tsx | 183 +++++++++ app/[locale]/(main)/[id]/page.tsx | 9 + app/[locale]/types/nezha-api.ts | 17 + app/api/monitor/route.ts | 27 ++ bun.lockb | Bin 438149 -> 446058 bytes components/Icon.tsx | 27 ++ components/ServerCard.tsx | 15 +- components/ui/card.tsx | 6 +- components/ui/chart.tsx | 365 ++++++++++++++++++ lib/serverFetch.tsx | 65 +++- lib/utils.ts | 29 ++ messages/en.json | 6 + messages/ja.json | 6 + messages/zh-t.json | 6 + messages/zh.json | 6 + middleware.ts | 2 +- package.json | 17 +- styles/globals.css | 10 + 18 files changed, 780 insertions(+), 16 deletions(-) create mode 100644 app/[locale]/(main)/ClientComponents/NetworkChart.tsx create mode 100644 app/[locale]/(main)/[id]/page.tsx create mode 100644 app/api/monitor/route.ts create mode 100644 components/ui/chart.tsx diff --git a/app/[locale]/(main)/ClientComponents/NetworkChart.tsx b/app/[locale]/(main)/ClientComponents/NetworkChart.tsx new file mode 100644 index 0000000..e9b9bf0 --- /dev/null +++ b/app/[locale]/(main)/ClientComponents/NetworkChart.tsx @@ -0,0 +1,183 @@ +"use client"; + +import * as React from "react"; +import { CartesianGrid, Line, LineChart, XAxis, YAxis } from "recharts"; + +import { + Card, + CardContent, + CardDescription, + CardHeader, + CardTitle, +} from "@/components/ui/card"; +import { + ChartConfig, + ChartContainer, + ChartTooltip, + ChartTooltipContent, +} from "@/components/ui/chart"; +import useSWR from "swr"; +import { ServerMonitorChart } from "../../types/nezha-api"; +import { formatTime, nezhaFetcher } from "@/lib/utils"; +import { formatRelativeTime } from "@/lib/utils"; +import { BackIcon } from "@/components/Icon"; +import { useRouter } from "next/navigation"; +import { useLocale } from "next-intl"; +import { useTranslations } from "next-intl"; +export function NetworkChartClient({ server_id }: { server_id: number }) { + const t = useTranslations("NetworkChartClient"); + const { data, error } = useSWR( + `/api/monitor?server_id=${server_id}`, + nezhaFetcher, + ); + + if (error) + return ( +
+

{error.message}

+
+ ); + if (!data) return null; + + const initChartConfig = { + avg_delay: { + label: t("avg_delay"), + }, + } satisfies ChartConfig; + + const chartDataKey = Object.keys(data); + + const generateChartConfig = chartDataKey.reduce((config, key, index) => { + return { + ...config, + [key]: { + label: key, + color: `hsl(var(--chart-${index + 1}))`, + }, + }; + }, {} as ChartConfig); + + const chartConfig = { ...initChartConfig, ...generateChartConfig }; + + return ( + + ); +} + +export function NetworkChart({ + chartDataKey, + chartConfig, + chartData, +}: { + chartDataKey: string[]; + chartConfig: ChartConfig; + chartData: ServerMonitorChart; +}) { + const t = useTranslations("NetworkChart"); + const router = useRouter(); + const locale = useLocale(); + + const [activeChart, setActiveChart] = React.useState< + keyof typeof chartConfig + >(chartDataKey[0]); + + return ( + + +
+ { + router.push(`/${locale}/`); + }} + className="flex cursor-pointer items-center gap-0.5 text-xl" + > + + {chartData[chartDataKey[0]][0].server_name} + + + {chartDataKey.length} {t("ServerMonitorCount")} + +
+
+ {chartDataKey.map((key, index) => { + const chart = key as keyof typeof chartConfig; + return ( + + ); + })} +
+
+ + + + + formatRelativeTime(value)} + /> + `${value}ms`} + /> + { + return formatTime(payload[0].payload.created_at); + }} + /> + } + /> + + + + +
+ ); +} diff --git a/app/[locale]/(main)/[id]/page.tsx b/app/[locale]/(main)/[id]/page.tsx new file mode 100644 index 0000000..de1a312 --- /dev/null +++ b/app/[locale]/(main)/[id]/page.tsx @@ -0,0 +1,9 @@ +import { NetworkChartClient } from "../ClientComponents/NetworkChart"; + +export default function Page({ params }: { params: { id: string } }) { + return ( +
+ +
+ ); +} diff --git a/app/[locale]/types/nezha-api.ts b/app/[locale]/types/nezha-api.ts index bc91e7f..40998b3 100644 --- a/app/[locale]/types/nezha-api.ts +++ b/app/[locale]/types/nezha-api.ts @@ -55,3 +55,20 @@ export interface NezhaAPIStatus { Temperatures: number; GPU: number; } + +export type ServerMonitorChart = { + [key: string]: { + server_name: string; + created_at: number; + avg_delay: number; + }[]; +}; + +export interface NezhaAPIMonitor { + monitor_id: number; + monitor_name: string; + server_id: number; + server_name: string; + created_at: number[]; + avg_delay: number[]; +} diff --git a/app/api/monitor/route.ts b/app/api/monitor/route.ts new file mode 100644 index 0000000..2db4d45 --- /dev/null +++ b/app/api/monitor/route.ts @@ -0,0 +1,27 @@ +import { ServerMonitorChart } from "@/app/[locale]/types/nezha-api"; +import { GetServerMonitor } from "@/lib/serverFetch"; +import { NextResponse } from "next/server"; + +interface NezhaDataResponse { + error?: string; + data?: ServerMonitorChart; +} + +export async function GET(req: Request) { + const { searchParams } = new URL(req.url); + const server_id = searchParams.get("server_id"); + if (!server_id) { + return NextResponse.json( + { error: "server_id is required" }, + { status: 400 }, + ); + } + const response = (await GetServerMonitor({ + server_id: parseInt(server_id), + })) as NezhaDataResponse; + if (response.error) { + console.log(response.error); + return NextResponse.json({ error: response.error }, { status: 400 }); + } + return NextResponse.json(response, { status: 200 }); +} diff --git a/bun.lockb b/bun.lockb index cf1eb4e4037aefdb57261f0fa7d2bccad1ea9891..699a00124f7bc722684eef86bec01d6001ceb8f2 100755 GIT binary patch delta 94858 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 htTId&A5r2%2M;TI$J63A$Xaj5{{@p=$%X&` delta 90176 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

-)`hZClTU*0DB8ZOhlTZ2ud}HBno)|FmBJ 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�u&H9Isn9qz77DZ{{+}U5HHMTfPj|(;bwr*Vhe%8 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 XTsdh(ztQIGwrqvgZrYY@S?K=*^dv&w diff --git a/components/Icon.tsx b/components/Icon.tsx index aa97669..f690beb 100644 --- a/components/Icon.tsx +++ b/components/Icon.tsx @@ -1,3 +1,5 @@ +import Image from "next/image"; + export function GitHubIcon(props: React.ComponentPropsWithoutRef<"svg">) { return ( @@ -5,3 +7,28 @@ export function GitHubIcon(props: React.ComponentPropsWithoutRef<"svg">) { ); } + +export function BackIcon() { + return ( + <> + BackIcon + BackIcon + + ); +} diff --git a/components/ServerCard.tsx b/components/ServerCard.tsx index afbe314..79cefc8 100644 --- a/components/ServerCard.tsx +++ b/components/ServerCard.tsx @@ -1,4 +1,4 @@ -import { useTranslations } from "next-intl"; +import { useLocale, useTranslations } from "next-intl"; import { NezhaAPISafe } from "../app/[locale]/types/nezha-api"; import ServerUsageBar from "@/components/ServerUsageBar"; import { Card } from "@/components/ui/card"; @@ -12,6 +12,7 @@ import ServerCardPopover from "./ServerCardPopover"; import { env } from "next-runtime-env"; import ServerFlag from "./ServerFlag"; +import { useRouter } from "next/navigation"; export default function ServerCard({ serverInfo, @@ -19,11 +20,14 @@ export default function ServerCard({ serverInfo: NezhaAPISafe; }) { const t = useTranslations("ServerCard"); - const { name, country_code, online, cpu, up, down, mem, stg, ...props } = + const router = useRouter(); + const { id, name, country_code, online, cpu, up, down, mem, stg, ...props } = formatNezhaInfo(serverInfo); const showFlag = env("NEXT_PUBLIC_ShowFlag") === "true"; + const locale = useLocale(); + return online ? ( -

+
{ + router.push(`/${locale}/${id}`); + }} + className={"grid cursor-pointer grid-cols-5 items-center gap-3"} + >

{t("CPU")}

diff --git a/components/ui/card.tsx b/components/ui/card.tsx index c5b32be..fc2d9c7 100644 --- a/components/ui/card.tsx +++ b/components/ui/card.tsx @@ -78,9 +78,9 @@ CardFooter.displayName = "CardFooter"; export { Card, - CardContent, - CardDescription, - CardFooter, CardHeader, + CardFooter, CardTitle, + CardDescription, + CardContent, }; diff --git a/components/ui/chart.tsx b/components/ui/chart.tsx new file mode 100644 index 0000000..74551d7 --- /dev/null +++ b/components/ui/chart.tsx @@ -0,0 +1,365 @@ +"use client"; + +import * as React from "react"; +import * as RechartsPrimitive from "recharts"; + +import { cn } from "@/lib/utils"; + +// Format: { THEME_NAME: CSS_SELECTOR } +const THEMES = { light: "", dark: ".dark" } as const; + +export type ChartConfig = { + [k in string]: { + label?: React.ReactNode; + icon?: React.ComponentType; + } & ( + | { color?: string; theme?: never } + | { color?: never; theme: Record } + ); +}; + +type ChartContextProps = { + config: ChartConfig; +}; + +const ChartContext = React.createContext(null); + +function useChart() { + const context = React.useContext(ChartContext); + + if (!context) { + throw new Error("useChart must be used within a "); + } + + return context; +} + +const ChartContainer = React.forwardRef< + HTMLDivElement, + React.ComponentProps<"div"> & { + config: ChartConfig; + children: React.ComponentProps< + typeof RechartsPrimitive.ResponsiveContainer + >["children"]; + } +>(({ id, className, children, config, ...props }, ref) => { + const uniqueId = React.useId(); + const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`; + + return ( + +
+ + + {children} + +
+
+ ); +}); +ChartContainer.displayName = "Chart"; + +const ChartStyle = ({ id, config }: { id: string; config: ChartConfig }) => { + const colorConfig = Object.entries(config).filter( + ([_, config]) => config.theme || config.color, + ); + + if (!colorConfig.length) { + return null; + } + + return ( +