Add measurement summary to list command
This commit is contained in:
parent
31ccb1c181
commit
8da12a9c07
|
@ -27,9 +27,27 @@ func init() {
|
|||
log.WithError(err).Error("failed to list measurements")
|
||||
return err
|
||||
}
|
||||
|
||||
msmtSummary := output.MeasurementSummaryData{
|
||||
TotalCount: 0,
|
||||
AnomalyCount: 0,
|
||||
DataUsageUp: 0,
|
||||
DataUsageDown: 0,
|
||||
}
|
||||
for _, msmt := range measurements {
|
||||
// FIXME this logic should be adjusted for test groups that have many
|
||||
// measurements in them
|
||||
if msmtSummary.DataUsageUp == 0 {
|
||||
msmtSummary.DataUsageUp = msmt.DataUsageUp
|
||||
msmtSummary.DataUsageDown = msmt.DataUsageDown
|
||||
}
|
||||
if msmt.IsAnomaly.Bool == true {
|
||||
msmtSummary.AnomalyCount++
|
||||
}
|
||||
msmtSummary.TotalCount++
|
||||
output.MeasurementItem(msmt)
|
||||
}
|
||||
output.MeasurementSummary(msmtSummary)
|
||||
} else {
|
||||
doneResults, incompleteResults, err := database.ListResults(ctx.DB)
|
||||
if err != nil {
|
||||
|
|
|
@ -19,8 +19,14 @@ func ListMeasurements(sess sqlbuilder.Database, resultID int64) ([]MeasurementUR
|
|||
|
||||
req := sess.Select(
|
||||
"measurements.id as msmt_tbl_id",
|
||||
"measurements.is_done as measurement_is_done",
|
||||
"measurements.start_time as measurement_start_time",
|
||||
"measurements.runtime as measurement_runtime",
|
||||
"networks.id as network_id",
|
||||
"results.id as result_id",
|
||||
"results.start_time as result_start_time",
|
||||
"results.is_done as result_is_done",
|
||||
"results.runtime as result_runtime",
|
||||
"urls.id as url_id",
|
||||
db.Raw("networks.*"),
|
||||
db.Raw("urls.*"),
|
||||
|
|
|
@ -21,13 +21,19 @@ type ResultNetwork struct {
|
|||
|
||||
// MeasurementURLNetwork is used for the JOIN between Measurement and URL
|
||||
type MeasurementURLNetwork struct {
|
||||
Measurement `db:",inline"`
|
||||
MsmtTblID int64 `db:"msmt_tbl_id"`
|
||||
Network `db:",inline"`
|
||||
NetworkID int64 `db:"network_id"`
|
||||
Result `db:",inline"`
|
||||
ResultID int64 `db:"result_id"`
|
||||
URL `db:",inline"`
|
||||
Measurement `db:",inline"`
|
||||
MeasurementStartTime time.Time `db:"measurement_start_time"`
|
||||
MeasurementIsDone bool `db:"measurement_is_done"`
|
||||
MeasurementRuntime float64 `db:"measurement_runtime"`
|
||||
MsmtTblID int64 `db:"msmt_tbl_id"`
|
||||
Network `db:",inline"`
|
||||
NetworkID int64 `db:"network_id"`
|
||||
Result `db:",inline"`
|
||||
ResultID int64 `db:"result_id"`
|
||||
ResultRuntime float64 `db:"result_runtime"`
|
||||
ResultStartTime time.Time `db:"result_start_time"`
|
||||
ResultIsDone bool `db:"result_is_done"`
|
||||
URL `db:",inline"`
|
||||
}
|
||||
|
||||
// Network represents a network tested by the user
|
||||
|
|
|
@ -20,6 +20,23 @@ func Progress(key string, perc float64, msg string) {
|
|||
}).Info(msg)
|
||||
}
|
||||
|
||||
type MeasurementSummaryData struct {
|
||||
TotalCount int64
|
||||
AnomalyCount int64
|
||||
DataUsageUp int64
|
||||
DataUsageDown int64
|
||||
}
|
||||
|
||||
func MeasurementSummary(msmt MeasurementSummaryData) {
|
||||
log.WithFields(log.Fields{
|
||||
"type": "measurement_summary",
|
||||
"total_count": msmt.TotalCount,
|
||||
"anomaly_count": msmt.AnomalyCount,
|
||||
"data_usage_down": msmt.DataUsageDown,
|
||||
"data_usage_up": msmt.DataUsageUp,
|
||||
}).Info("measurement summary")
|
||||
}
|
||||
|
||||
// MeasurementItem logs a progress type event
|
||||
func MeasurementItem(msmt database.MeasurementURLNetwork) {
|
||||
log.WithFields(log.Fields{
|
||||
|
@ -27,12 +44,12 @@ func MeasurementItem(msmt database.MeasurementURLNetwork) {
|
|||
"id": msmt.MsmtTblID,
|
||||
"test_name": msmt.TestName,
|
||||
"test_group_name": msmt.Result.TestGroupName,
|
||||
"start_time": msmt.Measurement.StartTime,
|
||||
"start_time": msmt.MeasurementStartTime,
|
||||
"test_keys": msmt.TestKeys,
|
||||
"probe_cc": msmt.Network.CountryCode,
|
||||
"network_name": msmt.Network.NetworkName,
|
||||
"asn": msmt.Network.ASN,
|
||||
"runtime": msmt.Measurement.Runtime,
|
||||
"runtime": msmt.MeasurementRuntime,
|
||||
"url": msmt.URL.URL.String,
|
||||
"url_category_code": msmt.URL.CategoryCode.String,
|
||||
"url_country_code": msmt.URL.CountryCode.String,
|
||||
|
@ -42,7 +59,7 @@ func MeasurementItem(msmt database.MeasurementURLNetwork) {
|
|||
"upload_failure_msg": msmt.UploadFailureMsg.String,
|
||||
"is_failed": msmt.IsFailed,
|
||||
"failure_msg": msmt.FailureMsg.String,
|
||||
"is_done": msmt.Measurement.IsDone,
|
||||
"is_done": msmt.MeasurementIsDone,
|
||||
"report_file_path": msmt.ReportFilePath,
|
||||
}).Info("measurement")
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user