in pkg/analyzer/InsertReportManager.go [219:275]
func (t *InsertReportManager) WriteMetrics(product string, row *RunResult, branch string, providedProject string, logger *slog.Logger) error {
batch, err := t.InsertManager.PrepareForAppend()
if err != nil {
return err
}
project := row.Report.Project
if project == "" {
project = providedProject
} else if t.config.HasInstallerField {
customName := projectIdToName[row.Report.Project]
if customName != "" {
project = customName
}
}
args := make([]any, 0, t.nonMetricFieldCount+t.config.extraFieldCount)
args = append(args, row.Machine, row.GeneratedTime, project, uint32(row.TcBuildId), branch, row.TcBuildType)
if t.config.HasProductField {
args = append(args, product)
}
if t.config.HasInstallerField {
buildTimeUnix, err := getBuildTimeFromReport(row.Report)
if err != nil {
return err
}
if buildTimeUnix.IsZero() {
buildTimeUnix = row.BuildTime
}
if strings.HasPrefix(row.Machine, "intellij-linux-hw-compile-hp-blade-") {
return nil
}
args = append(args, buildTimeUnix, uint32(row.TcInstallerBuildId), uint8(row.BuildC1), uint16(row.BuildC2), uint16(row.BuildC3))
}
if t.config.HasBuildNumber {
args = append(args, row.BuildNumber)
}
args = append(args, row.TriggeredBy)
if t.config.DbName == "ij" || t.config.DbName == "ijDev" {
err = ComputeIjMetrics(t.nonMetricFieldCount, row.Report, &args, logger)
if err != nil {
return err
}
}
args = append(args, row.ExtraFieldData...)
err = batch.Append(args...)
if err != nil {
return fmt.Errorf("cannot append: %w", err)
}
return nil
}