Skip to content

Commit 484d1f5

Browse files
committed
feat: Add XY chart generation for acceptance rates and daily active users in job summary
1 parent cda0dc9 commit 484d1f5

File tree

5 files changed

+198
-12
lines changed

5 files changed

+198
-12
lines changed

dist/index.js

+55-3
Original file line numberDiff line numberDiff line change
@@ -131952,6 +131952,56 @@ title Editor Usage
131952131952
.join('\n')}
131953131953
\`\`\`\n`;
131954131954
};
131955+
const job_summary_generateXyChart = (data, title, yAxisTitle, dataForBar, dataForLine, maxData) => {
131956+
return `\n\`\`\`mermaid
131957+
---
131958+
config:
131959+
xyChart:
131960+
width: ${data.length * 45}
131961+
height: 500
131962+
xAxis:
131963+
labelPadding: 20
131964+
themeVariables:
131965+
xyChart:
131966+
backgroundColor: "transparent"
131967+
---
131968+
xychart-beta
131969+
title "${title}"
131970+
x-axis [${data.map((day) => `"${job_summary_dateFormat(day.date, { month: '2-digit', day: '2-digit' })}"`).join(', ')}]
131971+
y-axis "${yAxisTitle}" 0 --> ${maxData}
131972+
bar [${data.map(dataForBar).map(v => isFinite(v) ? v.toFixed(3) : '0.000').join(', ')}]
131973+
line [${data.map(dataForLine).map(v => isFinite(v) ? v.toFixed(3) : '0.000').join(', ')}]
131974+
\`\`\`\n`;
131975+
};
131976+
const job_summary_getXyChartAcceptanceRate = (data) => {
131977+
const maxAcceptances = Math.max(...data.map((day) => day.copilot_ide_code_completions?.editors?.reduce((sum, editor) => sum + (editor.models?.reduce((mSum, model) => mSum + (model.languages?.reduce((lSum, lang) => lSum + (lang.total_code_acceptances || 0), 0) || 0), 0) || 0), 0) || 0)) + 10;
131978+
return job_summary_generateXyChart(data, "Completion Accepts & Acceptance Rate", "Acceptances", (day) => day.copilot_ide_code_completions?.editors?.reduce((sum, editor) => sum + (editor.models?.reduce((mSum, model) => mSum + (model.languages?.reduce((lSum, lang) => lSum + (lang.total_code_acceptances || 0), 0) || 0), 0) || 0), 0) || 0, (day) => {
131979+
const accepts = day.copilot_ide_code_completions?.editors?.reduce((sum, editor) => sum + (editor.models?.reduce((mSum, model) => mSum + (model.languages?.reduce((lSum, lang) => lSum + (lang.total_code_acceptances || 0), 0) || 0), 0) || 0), 0) || 0;
131980+
const suggestions = day.copilot_ide_code_completions?.editors?.reduce((sum, editor) => sum + (editor.models?.reduce((mSum, model) => mSum + (model.languages?.reduce((lSum, lang) => lSum + (lang.total_code_suggestions || 0), 0) || 0), 0) || 0), 0) || 0;
131981+
return ((accepts / suggestions) * maxAcceptances) || 0;
131982+
}, maxAcceptances);
131983+
};
131984+
const job_summary_getXyChartDailyActiveUsers = (data) => {
131985+
const maxActiveUsers = Math.max(...data.map((day) => getTotalEngagedUsers(day))) + 10;
131986+
return `\n\`\`\`mermaid
131987+
---
131988+
config:
131989+
xyChart:
131990+
width: ${data.length * 45}
131991+
height: 500
131992+
xAxis:
131993+
labelPadding: 20
131994+
themeVariables:
131995+
xyChart:
131996+
backgroundColor: "transparent"
131997+
---
131998+
xychart-beta
131999+
title "Daily Active Users"
132000+
x-axis [${data.map((day) => `"${job_summary_dateFormat(day.date, { month: '2-digit', day: '2-digit' })}"`).join(', ')}]
132001+
y-axis "Active Users" 0 --> ${maxActiveUsers}
132002+
line [${data.map((day) => getTotalEngagedUsers(day)).join(', ')}]
132003+
\`\`\`\n`;
132004+
};
131955132005
const job_summary_createJobSummaryUsage = (data, name) => {
131956132006
const languageMetrics = groupLanguageMetrics(data);
131957132007
const editorMetrics = groupEditorMetrics(data);
@@ -131974,10 +132024,12 @@ const job_summary_createJobSummaryUsage = (data, name) => {
131974132024
`Total Chat Interactions: ${totalChatTurns.toLocaleString()}`,
131975132025
`Most Active Day: ${job_summary_dateFormat(mostActiveDay.date)} (${getTotalEngagedUsers(mostActiveDay)} active users)`
131976132026
])
131977-
.addRaw(job_summary_getPieChartLanguageUsage(languageMetrics))
132027+
.addRaw(job_summary_getXyChartAcceptanceRate(data))
132028+
.addRaw(job_summary_getXyChartDailyActiveUsers(data))
131978132029
.addHeading('Language Usage')
131979-
.addRaw(job_summary_getPieChartEditorUsage(editorMetrics))
131980-
.addHeading('Editor Usage');
132030+
.addRaw(job_summary_getPieChartLanguageUsage(languageMetrics))
132031+
.addHeading('Editor Usage')
132032+
.addRaw(job_summary_getPieChartEditorUsage(editorMetrics));
131981132033
};
131982132034
const getTotalEngagedUsers = (day) => {
131983132035
return day.copilot_ide_code_completions?.editors?.reduce((sum, editor) => sum + (editor.total_engaged_users ?? 0), 0) || 0;

dist/index.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/job-summary.js

+55-3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)