zones: per zone server counts API migrated
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
@@ -317,3 +317,21 @@ type Server struct {
|
||||
ScoreRaw float64 `db:"score_raw" json:"score_raw"`
|
||||
DeletionOn sql.NullTime `db:"deletion_on" json:"deletion_on"`
|
||||
}
|
||||
|
||||
type Zone struct {
|
||||
ID uint32 `db:"id" json:"id"`
|
||||
Name string `db:"name" json:"name"`
|
||||
Description sql.NullString `db:"description" json:"description"`
|
||||
ParentID sql.NullInt32 `db:"parent_id" json:"parent_id"`
|
||||
Dns bool `db:"dns" json:"dns"`
|
||||
}
|
||||
|
||||
type ZoneServerCount struct {
|
||||
ID uint32 `db:"id" json:"id"`
|
||||
ZoneID uint32 `db:"zone_id" json:"zone_id"`
|
||||
IpVersion ZoneServerCountsIpVersion `db:"ip_version" json:"ip_version"`
|
||||
Date time.Time `db:"date" json:"date"`
|
||||
CountActive uint32 `db:"count_active" json:"count_active"`
|
||||
CountRegistered uint32 `db:"count_registered" json:"count_registered"`
|
||||
NetspeedActive uint32 `db:"netspeed_active" json:"netspeed_active"`
|
||||
}
|
||||
|
||||
@@ -263,6 +263,52 @@ func (_d QuerierTxWithTracing) GetServerScores(ctx context.Context, arg GetServe
|
||||
return _d.QuerierTx.GetServerScores(ctx, arg)
|
||||
}
|
||||
|
||||
// GetZoneByName implements QuerierTx
|
||||
func (_d QuerierTxWithTracing) GetZoneByName(ctx context.Context, name string) (z1 Zone, err error) {
|
||||
ctx, _span := otel.Tracer(_d._instance).Start(ctx, "QuerierTx.GetZoneByName")
|
||||
defer func() {
|
||||
if _d._spanDecorator != nil {
|
||||
_d._spanDecorator(_span, map[string]interface{}{
|
||||
"ctx": ctx,
|
||||
"name": name}, map[string]interface{}{
|
||||
"z1": z1,
|
||||
"err": err})
|
||||
} else if err != nil {
|
||||
_span.RecordError(err)
|
||||
_span.SetAttributes(
|
||||
attribute.String("event", "error"),
|
||||
attribute.String("message", err.Error()),
|
||||
)
|
||||
}
|
||||
|
||||
_span.End()
|
||||
}()
|
||||
return _d.QuerierTx.GetZoneByName(ctx, name)
|
||||
}
|
||||
|
||||
// GetZoneCounts implements QuerierTx
|
||||
func (_d QuerierTxWithTracing) GetZoneCounts(ctx context.Context, zoneID uint32) (za1 []ZoneServerCount, err error) {
|
||||
ctx, _span := otel.Tracer(_d._instance).Start(ctx, "QuerierTx.GetZoneCounts")
|
||||
defer func() {
|
||||
if _d._spanDecorator != nil {
|
||||
_d._spanDecorator(_span, map[string]interface{}{
|
||||
"ctx": ctx,
|
||||
"zoneID": zoneID}, map[string]interface{}{
|
||||
"za1": za1,
|
||||
"err": err})
|
||||
} else if err != nil {
|
||||
_span.RecordError(err)
|
||||
_span.SetAttributes(
|
||||
attribute.String("event", "error"),
|
||||
attribute.String("message", err.Error()),
|
||||
)
|
||||
}
|
||||
|
||||
_span.End()
|
||||
}()
|
||||
return _d.QuerierTx.GetZoneCounts(ctx, zoneID)
|
||||
}
|
||||
|
||||
// GetZoneStatsData implements QuerierTx
|
||||
func (_d QuerierTxWithTracing) GetZoneStatsData(ctx context.Context) (ga1 []GetZoneStatsDataRow, err error) {
|
||||
ctx, _span := otel.Tracer(_d._instance).Start(ctx, "QuerierTx.GetZoneStatsData")
|
||||
|
||||
@@ -18,6 +18,8 @@ type Querier interface {
|
||||
GetServerLogScoresByMonitorID(ctx context.Context, arg GetServerLogScoresByMonitorIDParams) ([]LogScore, error)
|
||||
GetServerNetspeed(ctx context.Context, ip string) (uint32, error)
|
||||
GetServerScores(ctx context.Context, arg GetServerScoresParams) ([]GetServerScoresRow, error)
|
||||
GetZoneByName(ctx context.Context, name string) (Zone, error)
|
||||
GetZoneCounts(ctx context.Context, zoneID uint32) ([]ZoneServerCount, error)
|
||||
GetZoneStatsData(ctx context.Context) ([]GetZoneStatsDataRow, error)
|
||||
GetZoneStatsV2(ctx context.Context, ip string) ([]GetZoneStatsV2Row, error)
|
||||
}
|
||||
|
||||
@@ -333,6 +333,62 @@ func (q *Queries) GetServerScores(ctx context.Context, arg GetServerScoresParams
|
||||
return items, nil
|
||||
}
|
||||
|
||||
const getZoneByName = `-- name: GetZoneByName :one
|
||||
select id, name, description, parent_id, dns from zones
|
||||
where
|
||||
name = ?
|
||||
`
|
||||
|
||||
func (q *Queries) GetZoneByName(ctx context.Context, name string) (Zone, error) {
|
||||
row := q.db.QueryRowContext(ctx, getZoneByName, name)
|
||||
var i Zone
|
||||
err := row.Scan(
|
||||
&i.ID,
|
||||
&i.Name,
|
||||
&i.Description,
|
||||
&i.ParentID,
|
||||
&i.Dns,
|
||||
)
|
||||
return i, err
|
||||
}
|
||||
|
||||
const getZoneCounts = `-- name: GetZoneCounts :many
|
||||
select id, zone_id, ip_version, date, count_active, count_registered, netspeed_active from zone_server_counts
|
||||
where zone_id = ?
|
||||
order by date
|
||||
`
|
||||
|
||||
func (q *Queries) GetZoneCounts(ctx context.Context, zoneID uint32) ([]ZoneServerCount, error) {
|
||||
rows, err := q.db.QueryContext(ctx, getZoneCounts, zoneID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer rows.Close()
|
||||
var items []ZoneServerCount
|
||||
for rows.Next() {
|
||||
var i ZoneServerCount
|
||||
if err := rows.Scan(
|
||||
&i.ID,
|
||||
&i.ZoneID,
|
||||
&i.IpVersion,
|
||||
&i.Date,
|
||||
&i.CountActive,
|
||||
&i.CountRegistered,
|
||||
&i.NetspeedActive,
|
||||
); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
items = append(items, i)
|
||||
}
|
||||
if err := rows.Close(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if err := rows.Err(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return items, nil
|
||||
}
|
||||
|
||||
const getZoneStatsData = `-- name: GetZoneStatsData :many
|
||||
SELECT zc.date, z.name, zc.ip_version, count_active, count_registered, netspeed_active
|
||||
FROM zone_server_counts zc USE INDEX (date_idx)
|
||||
|
||||
Reference in New Issue
Block a user