MCPcopy Index your code
hub / github.com/github/gh-aw / renderRunMetricsDiffMarkdownSection

Function renderRunMetricsDiffMarkdownSection

pkg/cli/audit_diff_render.go:234–268  ·  view source on GitHub ↗

renderRunMetricsDiffMarkdownSection renders the run metrics diff sub-section as markdown

(run1ID, run2ID int64, diff *RunMetricsDiff)

Source from the content-addressed store, hash-verified

232
233// renderRunMetricsDiffMarkdownSection renders the run metrics diff sub-section as markdown
234func renderRunMetricsDiffMarkdownSection(run1ID, run2ID int64, diff *RunMetricsDiff) {
235 if diff == nil {
236 return
237 }
238
239 fmt.Fprintln(os.Stdout, "#### Run Metrics")
240 fmt.Fprintln(os.Stdout)
241 fmt.Fprintf(os.Stdout, "| Metric | Run #%d | Run #%d | Change |\n", run1ID, run2ID)
242 fmt.Fprintln(os.Stdout, "|--------|---------|---------|--------|")
243
244 if diff.Run1TokenUsage > 0 || diff.Run2TokenUsage > 0 {
245 fmt.Fprintf(os.Stdout, "| Token usage | %d | %d | %s |\n", diff.Run1TokenUsage, diff.Run2TokenUsage, diff.TokenUsageChange)
246 }
247 if diff.Run1Duration != "" || diff.Run2Duration != "" {
248 fmt.Fprintf(os.Stdout, "| Duration | %s | %s | %s |\n", diff.Run1Duration, diff.Run2Duration, diff.DurationChange)
249 }
250 if diff.Run1Turns > 0 || diff.Run2Turns > 0 {
251 turnsChange := fmt.Sprintf("%+d", diff.TurnsChange)
252 fmt.Fprintf(os.Stdout, "| Turns | %d | %d | %s |\n", diff.Run1Turns, diff.Run2Turns, turnsChange)
253 }
254 if diff.Run1TokensPerTurn > 0 || diff.Run2TokensPerTurn > 0 {
255 fmt.Fprintf(os.Stdout, "| Tokens / turn | %d | %d | %s |\n", diff.Run1TokensPerTurn, diff.Run2TokensPerTurn, diff.TokensPerTurnChange)
256 }
257 fmt.Fprintln(os.Stdout)
258
259 if diff.TokenUsageDetails != nil {
260 renderTokenUsageDiffMarkdownSection(run1ID, run2ID, diff.TokenUsageDetails)
261 }
262 if diff.GitHubRateLimitDetails != nil {
263 renderGitHubRateLimitDiffMarkdownSection(run1ID, run2ID, diff.GitHubRateLimitDetails)
264 }
265 if diff.ToolCallsDiff != nil {
266 renderToolCallsDiffMarkdownSection(run1ID, run2ID, diff.ToolCallsDiff)
267 }
268}
269
270// renderTokenUsageDiffMarkdownSection renders detailed token usage as a markdown sub-section
271func renderTokenUsageDiffMarkdownSection(run1ID, run2ID int64, diff *TokenUsageDiff) {

Callers 1

Tested by

no test coverage detected