rc2
This commit is contained in:
@@ -333,11 +333,22 @@ func execQuery(conn *client.Connection, queryGenerator *RandomQueryGenerator, st
|
||||
}
|
||||
|
||||
case listInstantPeriods:
|
||||
since := time.Unix(int64(recipe.Since), 0)
|
||||
until := time.Unix(int64(recipe.Until), 0)
|
||||
//
|
||||
t1 := time.Now()
|
||||
_, err := conn.ListInstantPeriods(proto.ListInstantPeriodsReq{
|
||||
MetricID: recipe.MetricID,
|
||||
Since: recipe.Since,
|
||||
Until: recipe.Until,
|
||||
MetricID: recipe.MetricID,
|
||||
Since: proto.TimeBound{
|
||||
Year: since.Year(),
|
||||
Month: since.Month(),
|
||||
Day: since.Day(),
|
||||
},
|
||||
Until: proto.TimeBound{
|
||||
Year: until.Year(),
|
||||
Month: until.Month(),
|
||||
Day: until.Day(),
|
||||
},
|
||||
GroupBy: recipe.GroupBy,
|
||||
AggregateFuncs: diploma.AggregateMin | diploma.AggregateMax | diploma.AggregateAvg,
|
||||
})
|
||||
@@ -354,12 +365,23 @@ func execQuery(conn *client.Connection, queryGenerator *RandomQueryGenerator, st
|
||||
}
|
||||
|
||||
case listCumulativePeriods:
|
||||
since := time.Unix(int64(recipe.Since), 0)
|
||||
until := time.Unix(int64(recipe.Until), 0)
|
||||
//
|
||||
t1 := time.Now()
|
||||
_, err := conn.ListCumulativePeriods(proto.ListCumulativePeriodsReq{
|
||||
MetricID: recipe.MetricID,
|
||||
Since: recipe.Since,
|
||||
Until: recipe.Until,
|
||||
GroupBy: recipe.GroupBy,
|
||||
Since: proto.TimeBound{
|
||||
Year: since.Year(),
|
||||
Month: since.Month(),
|
||||
Day: since.Day(),
|
||||
},
|
||||
Until: proto.TimeBound{
|
||||
Year: until.Year(),
|
||||
Month: until.Month(),
|
||||
Day: until.Day(),
|
||||
},
|
||||
GroupBy: recipe.GroupBy,
|
||||
})
|
||||
elapsedTime = time.Since(t1)
|
||||
stat.ElapsedTime += elapsedTime
|
||||
|
||||
@@ -4,12 +4,12 @@ import (
|
||||
"math/rand"
|
||||
"time"
|
||||
|
||||
"gordenko.dev/dima/diploma/client"
|
||||
"gordenko.dev/dima/diploma/proto"
|
||||
)
|
||||
|
||||
func GenerateCumulativeMeasures(days int) []client.Measure {
|
||||
func GenerateCumulativeMeasures(days int) []proto.Measure {
|
||||
var (
|
||||
measures []client.Measure
|
||||
measures []proto.Measure
|
||||
minutes = []int{14, 29, 44, 59}
|
||||
hoursPerDay = 24
|
||||
totalHours = days * hoursPerDay
|
||||
@@ -31,7 +31,7 @@ func GenerateCumulativeMeasures(days int) []client.Measure {
|
||||
time.Local,
|
||||
)
|
||||
|
||||
measure := client.Measure{
|
||||
measure := proto.Measure{
|
||||
Timestamp: uint32(measureTime.Unix()),
|
||||
Value: totalValue,
|
||||
}
|
||||
@@ -43,9 +43,9 @@ func GenerateCumulativeMeasures(days int) []client.Measure {
|
||||
return measures
|
||||
}
|
||||
|
||||
func GenerateInstantMeasures(days int, baseValue float64) []client.Measure {
|
||||
func GenerateInstantMeasures(days int, baseValue float64) []proto.Measure {
|
||||
var (
|
||||
measures []client.Measure
|
||||
measures []proto.Measure
|
||||
minutes = []int{14, 29, 44, 59}
|
||||
hoursPerDay = 24
|
||||
totalHours = days * hoursPerDay
|
||||
@@ -70,7 +70,7 @@ func GenerateInstantMeasures(days int, baseValue float64) []client.Measure {
|
||||
fluctuation := baseValue * 0.1
|
||||
value := baseValue + (rand.Float64()*2-1)*fluctuation
|
||||
|
||||
measure := client.Measure{
|
||||
measure := proto.Measure{
|
||||
Timestamp: uint32(measureTime.Unix()),
|
||||
Value: value,
|
||||
}
|
||||
|
||||
@@ -14,8 +14,10 @@ func sendRequests(conn *client.Connection) {
|
||||
var (
|
||||
instantMetricID uint32 = 10000
|
||||
cumulativeMetricID uint32 = 10001
|
||||
fracDigits byte = 2
|
||||
fracDigits int = 2
|
||||
err error
|
||||
|
||||
seriesInDays = 62
|
||||
)
|
||||
|
||||
conn.DeleteMetric(instantMetricID)
|
||||
@@ -23,7 +25,7 @@ func sendRequests(conn *client.Connection) {
|
||||
|
||||
// ADD INSTANT METRIC
|
||||
|
||||
err = conn.AddMetric(client.Metric{
|
||||
err = conn.AddMetric(proto.AddMetricReq{
|
||||
MetricID: instantMetricID,
|
||||
MetricType: diploma.Instant,
|
||||
FracDigits: fracDigits,
|
||||
@@ -51,9 +53,9 @@ GetMetric:
|
||||
|
||||
// APPEND MEASURES
|
||||
|
||||
instantMeasures := GenerateInstantMeasures(62, 220)
|
||||
instantMeasures := GenerateInstantMeasures(seriesInDays, 220)
|
||||
|
||||
err = conn.AppendMeasures(client.AppendMeasuresReq{
|
||||
err = conn.AppendMeasures(proto.AppendMeasuresReq{
|
||||
MetricID: instantMetricID,
|
||||
Measures: instantMeasures,
|
||||
})
|
||||
@@ -78,10 +80,10 @@ GetMetric:
|
||||
if err != nil {
|
||||
log.Fatalf("conn.ListInstantMeasures: %s\n", err)
|
||||
} else {
|
||||
fmt.Printf("\nListInstantMeasures %s - %s:\n",
|
||||
formatTime(uint32(since.Unix())), formatTime(uint32(until.Unix())))
|
||||
fmt.Printf("\nListInstantMeasures %s − %s:\n",
|
||||
formatTime(since), formatTime(until))
|
||||
for _, item := range instantList {
|
||||
fmt.Printf(" %s => %.2f\n", formatTime(item.Timestamp), item.Value)
|
||||
fmt.Printf(" %s => %.2f\n", formatTimestamp(item.Timestamp), item.Value)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -93,70 +95,102 @@ GetMetric:
|
||||
} else {
|
||||
fmt.Printf("\nListAllInstantMeasures (last 15 items):\n")
|
||||
for _, item := range instantList[:15] {
|
||||
fmt.Printf(" %s => %.2f\n", formatTime(item.Timestamp), item.Value)
|
||||
fmt.Printf(" %s => %.2f\n", formatTimestamp(item.Timestamp), item.Value)
|
||||
}
|
||||
}
|
||||
|
||||
// LIST INSTANT PERIODS (group by hour)
|
||||
|
||||
until = time.Unix(int64(lastTimestamp+1), 0)
|
||||
until = time.Unix(int64(lastTimestamp), 0)
|
||||
since = until.Add(-24 * time.Hour)
|
||||
|
||||
instantPeriods, err := conn.ListInstantPeriods(proto.ListInstantPeriodsReq{
|
||||
MetricID: instantMetricID,
|
||||
Since: uint32(since.Unix()),
|
||||
Until: uint32(until.Unix()),
|
||||
MetricID: instantMetricID,
|
||||
Since: proto.TimeBound{
|
||||
Year: since.Year(),
|
||||
Month: since.Month(),
|
||||
Day: since.Day(),
|
||||
},
|
||||
Until: proto.TimeBound{
|
||||
Year: until.Year(),
|
||||
Month: until.Month(),
|
||||
Day: until.Day(),
|
||||
},
|
||||
GroupBy: diploma.GroupByHour,
|
||||
AggregateFuncs: diploma.AggregateMin | diploma.AggregateMax | diploma.AggregateAvg,
|
||||
})
|
||||
if err != nil {
|
||||
log.Fatalf("conn.ListInstantPeriods: %s\n", err)
|
||||
} else {
|
||||
fmt.Printf("\nListInstantPeriods (1 day, group by hour):\n")
|
||||
fmt.Printf("\nListInstantPeriods (%s − %s, group by day):\n",
|
||||
formatDate(since), formatDate(until))
|
||||
|
||||
for _, item := range instantPeriods {
|
||||
fmt.Printf(" %s => min %.2f, max %.2f, avg %.2f\n", formatHourPeriod(item.Period), item.Min, item.Max, item.Avg)
|
||||
fmt.Printf(" %s => min %.2f, max %.2f, avg %.2f\n",
|
||||
formatHourPeriod(item.Period), item.Min, item.Max, item.Avg)
|
||||
}
|
||||
}
|
||||
|
||||
// LIST INSTANT PERIODS (group by day)
|
||||
|
||||
until = time.Unix(int64(lastTimestamp+1), 0)
|
||||
since = until.AddDate(0, 0, -7)
|
||||
until = time.Unix(int64(lastTimestamp), 0)
|
||||
since = until.AddDate(0, 0, -6)
|
||||
|
||||
instantPeriods, err = conn.ListInstantPeriods(proto.ListInstantPeriodsReq{
|
||||
MetricID: instantMetricID,
|
||||
Since: uint32(since.Unix()),
|
||||
Until: uint32(until.Unix()),
|
||||
MetricID: instantMetricID,
|
||||
Since: proto.TimeBound{
|
||||
Year: since.Year(),
|
||||
Month: since.Month(),
|
||||
Day: since.Day(),
|
||||
},
|
||||
Until: proto.TimeBound{
|
||||
Year: until.Year(),
|
||||
Month: until.Month(),
|
||||
Day: until.Day(),
|
||||
},
|
||||
GroupBy: diploma.GroupByDay,
|
||||
AggregateFuncs: diploma.AggregateMin | diploma.AggregateMax | diploma.AggregateAvg,
|
||||
})
|
||||
if err != nil {
|
||||
log.Fatalf("conn.ListInstantPeriods: %s\n", err)
|
||||
} else {
|
||||
fmt.Printf("\nListInstantPeriods (7 days, group by day):\n")
|
||||
fmt.Printf("\nListInstantPeriods (%s − %s, group by day):\n",
|
||||
formatDate(since), formatDate(until))
|
||||
|
||||
for _, item := range instantPeriods {
|
||||
fmt.Printf(" %s => min %.2f, max %.2f, avg %.2f\n", formatDayPeriod(item.Period), item.Min, item.Max, item.Avg)
|
||||
fmt.Printf(" %s => min %.2f, max %.2f, avg %.2f\n",
|
||||
formatDayPeriod(item.Period), item.Min, item.Max, item.Avg)
|
||||
}
|
||||
}
|
||||
|
||||
// LIST INSTANT PERIODS (group by month)
|
||||
|
||||
until = time.Unix(int64(lastTimestamp+1), 0)
|
||||
since = until.AddDate(0, 0, -62)
|
||||
until = time.Unix(int64(lastTimestamp), 0)
|
||||
since = until.AddDate(0, 0, -seriesInDays)
|
||||
|
||||
instantPeriods, err = conn.ListInstantPeriods(proto.ListInstantPeriodsReq{
|
||||
MetricID: instantMetricID,
|
||||
Since: uint32(since.Unix()),
|
||||
Until: uint32(until.Unix()),
|
||||
MetricID: instantMetricID,
|
||||
Since: proto.TimeBound{
|
||||
Year: since.Year(),
|
||||
Month: since.Month(),
|
||||
Day: since.Day(),
|
||||
},
|
||||
Until: proto.TimeBound{
|
||||
Year: until.Year(),
|
||||
Month: until.Month(),
|
||||
Day: until.Day(),
|
||||
},
|
||||
GroupBy: diploma.GroupByMonth,
|
||||
AggregateFuncs: diploma.AggregateMin | diploma.AggregateMax | diploma.AggregateAvg,
|
||||
})
|
||||
if err != nil {
|
||||
log.Fatalf("conn.ListInstantPeriods: %s\n", err)
|
||||
} else {
|
||||
fmt.Printf("\nListInstantPeriods (62 days, group by month):\n")
|
||||
fmt.Printf("\nListInstantPeriods (%s − %s, group by day):\n",
|
||||
formatMonth(since), formatMonth(until))
|
||||
for _, item := range instantPeriods {
|
||||
fmt.Printf(" %s => min %.2f, max %.2f, avg %.2f\n", formatMonthPeriod(item.Period), item.Min, item.Max, item.Avg)
|
||||
fmt.Printf(" %s => min %.2f, max %.2f, avg %.2f\n",
|
||||
formatMonthPeriod(item.Period), item.Min, item.Max, item.Avg)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -182,7 +216,7 @@ GetMetric:
|
||||
|
||||
// ADD CUMULATIVE METRIC
|
||||
|
||||
err = conn.AddMetric(client.Metric{
|
||||
err = conn.AddMetric(proto.AddMetricReq{
|
||||
MetricID: cumulativeMetricID,
|
||||
MetricType: diploma.Cumulative,
|
||||
FracDigits: fracDigits,
|
||||
@@ -210,9 +244,9 @@ GetMetric:
|
||||
|
||||
// APPEND MEASURES
|
||||
|
||||
cumulativeMeasures := GenerateCumulativeMeasures(62)
|
||||
cumulativeMeasures := GenerateCumulativeMeasures(seriesInDays)
|
||||
|
||||
err = conn.AppendMeasures(client.AppendMeasuresReq{
|
||||
err = conn.AppendMeasures(proto.AppendMeasuresReq{
|
||||
MetricID: cumulativeMetricID,
|
||||
Measures: cumulativeMeasures,
|
||||
})
|
||||
@@ -237,11 +271,12 @@ GetMetric:
|
||||
if err != nil {
|
||||
log.Fatalf("conn.ListCumulativeMeasures: %s\n", err)
|
||||
} else {
|
||||
fmt.Printf("\nListCumulativeMeasures %s - %s:\n",
|
||||
formatTime(uint32(since.Unix())), formatTime(uint32(until.Unix())))
|
||||
fmt.Printf("\nListCumulativeMeasures %s − %s:\n",
|
||||
formatTime(since), formatTime(until))
|
||||
|
||||
for _, item := range cumulativeList {
|
||||
fmt.Printf(" %s => %.2f\n", formatTime(item.Timestamp), item.Value)
|
||||
fmt.Printf(" %s => %.2f (%.2f)\n",
|
||||
formatTimestamp(item.Timestamp), item.Value, item.Total)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -253,67 +288,101 @@ GetMetric:
|
||||
} else {
|
||||
fmt.Printf("\nListAllCumulativeMeasures (last 15 items):\n")
|
||||
for _, item := range cumulativeList[:15] {
|
||||
fmt.Printf(" %s => %.2f\n", formatTime(item.Timestamp), item.Value)
|
||||
fmt.Printf(" %s => %.2f (%.2f)\n",
|
||||
formatTimestamp(item.Timestamp), item.Value, item.Total)
|
||||
}
|
||||
}
|
||||
|
||||
// LIST CUMULATIVE PERIODS (group by hour)
|
||||
//LIST CUMULATIVE PERIODS (group by hour)
|
||||
|
||||
until = time.Unix(int64(lastTimestamp+1), 0)
|
||||
until = time.Unix(int64(lastTimestamp), 0)
|
||||
since = until.Add(-24 * time.Hour)
|
||||
|
||||
cumulativePeriods, err := conn.ListCumulativePeriods(proto.ListCumulativePeriodsReq{
|
||||
MetricID: cumulativeMetricID,
|
||||
Since: uint32(since.Unix()),
|
||||
Until: uint32(until.Unix()),
|
||||
GroupBy: diploma.GroupByHour,
|
||||
Since: proto.TimeBound{
|
||||
Year: since.Year(),
|
||||
Month: since.Month(),
|
||||
Day: since.Day(),
|
||||
},
|
||||
Until: proto.TimeBound{
|
||||
Year: until.Year(),
|
||||
Month: until.Month(),
|
||||
Day: until.Day(),
|
||||
},
|
||||
GroupBy: diploma.GroupByHour,
|
||||
})
|
||||
if err != nil {
|
||||
log.Fatalf("conn.ListCumulativePeriods: %s\n", err)
|
||||
} else {
|
||||
fmt.Printf("\nListCumulativePeriods (1 day, group by hour):\n")
|
||||
fmt.Printf("\nListCumulativePeriods (%s − %s, group by hour):\n",
|
||||
formatDate(since), formatDate(until))
|
||||
|
||||
for _, item := range cumulativePeriods {
|
||||
fmt.Printf(" %s => end value %.2f, total %.2f\n", formatHourPeriod(item.Period), item.EndValue, item.Total)
|
||||
fmt.Printf(" %s => %.2f (%.2f)\n",
|
||||
formatHourPeriod(item.Period), item.EndValue, item.EndValue-item.StartValue)
|
||||
}
|
||||
}
|
||||
|
||||
// LIST CUMULATIVE PERIODS (group by day)
|
||||
|
||||
until = time.Unix(int64(lastTimestamp+1), 0)
|
||||
since = until.AddDate(0, 0, -7)
|
||||
until = time.Unix(int64(lastTimestamp), 0)
|
||||
since = until.AddDate(0, 0, -6)
|
||||
|
||||
cumulativePeriods, err = conn.ListCumulativePeriods(proto.ListCumulativePeriodsReq{
|
||||
MetricID: cumulativeMetricID,
|
||||
Since: uint32(since.Unix()),
|
||||
Until: uint32(until.Unix()),
|
||||
GroupBy: diploma.GroupByDay,
|
||||
Since: proto.TimeBound{
|
||||
Year: since.Year(),
|
||||
Month: since.Month(),
|
||||
Day: since.Day(),
|
||||
},
|
||||
Until: proto.TimeBound{
|
||||
Year: until.Year(),
|
||||
Month: until.Month(),
|
||||
Day: until.Day(),
|
||||
},
|
||||
GroupBy: diploma.GroupByDay,
|
||||
})
|
||||
if err != nil {
|
||||
log.Fatalf("conn.ListCumulativePeriods: %s\n", err)
|
||||
} else {
|
||||
fmt.Printf("\nListCumulativePeriods (7 days, group by day):\n")
|
||||
fmt.Printf("\nListCumulativePeriods (%s − %s, group by day):\n",
|
||||
formatDate(since), formatDate(until))
|
||||
|
||||
for _, item := range cumulativePeriods {
|
||||
fmt.Printf(" %s => end value %.2f, total %.2f\n", formatDayPeriod(item.Period), item.EndValue, item.Total)
|
||||
fmt.Printf(" %s => %.2f (%.2f)\n",
|
||||
formatDayPeriod(item.Period), item.EndValue, item.EndValue-item.StartValue)
|
||||
}
|
||||
}
|
||||
|
||||
// LIST CUMULATIVE PERIODS (group by day)
|
||||
|
||||
until = time.Unix(int64(lastTimestamp+1), 0)
|
||||
since = until.AddDate(0, 0, -62)
|
||||
until = time.Unix(int64(lastTimestamp), 0)
|
||||
since = until.AddDate(0, 0, -seriesInDays)
|
||||
|
||||
cumulativePeriods, err = conn.ListCumulativePeriods(proto.ListCumulativePeriodsReq{
|
||||
MetricID: cumulativeMetricID,
|
||||
Since: uint32(since.Unix()),
|
||||
Until: uint32(until.Unix()),
|
||||
GroupBy: diploma.GroupByMonth,
|
||||
Since: proto.TimeBound{
|
||||
Year: since.Year(),
|
||||
Month: since.Month(),
|
||||
Day: since.Day(),
|
||||
},
|
||||
Until: proto.TimeBound{
|
||||
Year: until.Year(),
|
||||
Month: until.Month(),
|
||||
Day: until.Day(),
|
||||
},
|
||||
GroupBy: diploma.GroupByMonth,
|
||||
})
|
||||
if err != nil {
|
||||
log.Fatalf("conn.ListCumulativePeriods: %s\n", err)
|
||||
} else {
|
||||
fmt.Printf("\nListCumulativePeriods (62 days, group by month):\n")
|
||||
fmt.Printf("\nListCumulativePeriods (%s − %s, group by month):\n",
|
||||
formatMonth(since), formatMonth(until))
|
||||
|
||||
for _, item := range cumulativePeriods {
|
||||
fmt.Printf(" %s => end value %.2f, total %.2f\n", formatMonthPeriod(item.Period), item.EndValue, item.Total)
|
||||
fmt.Printf(" %s => %.2f (%.2f)\n",
|
||||
formatMonthPeriod(item.Period), item.EndValue, item.EndValue-item.StartValue)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -338,11 +407,21 @@ GetMetric:
|
||||
}
|
||||
}
|
||||
|
||||
const datetimeLayout = "2006-01-02 15:04:05"
|
||||
func formatMonth(tm time.Time) string {
|
||||
return tm.Format("2006-01")
|
||||
}
|
||||
|
||||
func formatTime(timestamp uint32) string {
|
||||
func formatDate(tm time.Time) string {
|
||||
return tm.Format("2006-01-02")
|
||||
}
|
||||
|
||||
func formatTime(tm time.Time) string {
|
||||
return tm.Format("2006-01-02 15:04:05")
|
||||
}
|
||||
|
||||
func formatTimestamp(timestamp uint32) string {
|
||||
tm := time.Unix(int64(timestamp), 0)
|
||||
return tm.Format(datetimeLayout)
|
||||
return tm.Format("2006-01-02 15:04:05")
|
||||
}
|
||||
|
||||
func formatHourPeriod(period uint32) string {
|
||||
|
||||
Reference in New Issue
Block a user