feat!: add sections parameter to template insights (#10010)

This commit is contained in:
Marcin Tojek
2023-10-03 15:44:50 +02:00
committed by GitHub
parent cb60409a8c
commit f62f45a303
9 changed files with 227 additions and 26 deletions
+10 -2
View File
@@ -964,12 +964,13 @@ export interface TemplateInsightsRequest {
readonly end_time: string;
readonly template_ids: string[];
readonly interval: InsightsReportInterval;
readonly sections: TemplateInsightsSection[];
}
// From codersdk/insights.go
export interface TemplateInsightsResponse {
readonly report: TemplateInsightsReport;
readonly interval_reports: TemplateInsightsIntervalReport[];
readonly report?: TemplateInsightsReport;
readonly interval_reports?: TemplateInsightsIntervalReport[];
}
// From codersdk/insights.go
@@ -1877,6 +1878,13 @@ export const ServerSentEventTypes: ServerSentEventType[] = [
export type TemplateAppsType = "app" | "builtin";
export const TemplateAppsTypes: TemplateAppsType[] = ["app", "builtin"];
// From codersdk/insights.go
export type TemplateInsightsSection = "interval_reports" | "report";
export const TemplateInsightsSections: TemplateInsightsSection[] = [
"interval_reports",
"report",
];
// From codersdk/templates.go
export type TemplateRole = "" | "admin" | "use";
export const TemplateRoles: TemplateRole[] = ["", "admin", "use"];
@@ -20,6 +20,7 @@ import { getTemplatePageTitle } from "../utils";
import { Loader } from "components/Loader/Loader";
import {
DAUsResponse,
TemplateAppUsage,
TemplateInsightsResponse,
TemplateParameterUsage,
TemplateParameterValue,
@@ -105,11 +106,11 @@ export const TemplateInsightsPageView = ({
<UserLatencyPanel data={userLatency} />
<TemplateUsagePanel
sx={{ gridColumn: "span 3" }}
data={templateInsights?.report.apps_usage}
data={templateInsights?.report?.apps_usage}
/>
<TemplateParametersUsagePanel
sx={{ gridColumn: "span 3" }}
data={templateInsights?.report.parameters_usage}
data={templateInsights?.report?.parameters_usage}
/>
</Box>
</>
@@ -202,7 +203,7 @@ const TemplateUsagePanel = ({
data,
...panelProps
}: PanelProps & {
data: TemplateInsightsResponse["report"]["apps_usage"] | undefined;
data: TemplateAppUsage[] | undefined;
}) => {
const validUsage = data?.filter((u) => u.seconds > 0);
const totalInSeconds =
@@ -293,7 +294,7 @@ const TemplateParametersUsagePanel = ({
data,
...panelProps
}: PanelProps & {
data: TemplateInsightsResponse["report"]["parameters_usage"] | undefined;
data: TemplateParameterUsage[] | undefined;
}) => {
return (
<Panel {...panelProps}>
@@ -588,12 +589,14 @@ function mapToDAUsResponse(
): DAUsResponse {
return {
tz_hour_offset: 0,
entries: data.map((d) => {
return {
amount: d.active_users,
date: d.start_time,
};
}),
entries: data
? data.map((d) => {
return {
amount: d.active_users,
date: d.start_time,
};
})
: [],
};
}