Calls size
This commit is contained in:
parent
f6fd5f7089
commit
9f2ddada28
8 changed files with 50 additions and 15 deletions
|
@ -111,7 +111,7 @@ func main() {
|
||||||
log.Println(v.Notification.Msg)
|
log.Println(v.Notification.Msg)
|
||||||
case *pb.Message_Hello:
|
case *pb.Message_Hello:
|
||||||
ver := v.Hello.Version
|
ver := v.Hello.Version
|
||||||
log.Printf("server says: welcome to %s %s built %s for %s", ver.ServerName, ver.Version, ver.Built, ver.Platform)
|
log.Printf("server says: welcome to %s %s built %s for %s calls table size %s", ver.ServerName, ver.Version, ver.Built, ver.Platform, ver.CallsSize)
|
||||||
default:
|
default:
|
||||||
log.Printf("received other message not known")
|
log.Printf("received other message not known")
|
||||||
}
|
}
|
||||||
|
|
|
@ -78,6 +78,17 @@ func (q *Queries) AddCall(ctx context.Context, arg AddCallParams) (uuid.UUID, er
|
||||||
return id, err
|
return id, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const getCallsTableSize = `-- name: GetCallsTableSize :one
|
||||||
|
SELECT pg_size_pretty(pg_total_relation_size('calls'))
|
||||||
|
`
|
||||||
|
|
||||||
|
func (q *Queries) GetCallsTableSize(ctx context.Context) (string, error) {
|
||||||
|
row := q.db.QueryRow(ctx, getCallsTableSize)
|
||||||
|
var pg_size_pretty string
|
||||||
|
err := row.Scan(&pg_size_pretty)
|
||||||
|
return pg_size_pretty, err
|
||||||
|
}
|
||||||
|
|
||||||
const setCallTranscript = `-- name: SetCallTranscript :exec
|
const setCallTranscript = `-- name: SetCallTranscript :exec
|
||||||
UPDATE calls SET transcript = $2 WHERE id = $1
|
UPDATE calls SET transcript = $2 WHERE id = $1
|
||||||
`
|
`
|
||||||
|
|
|
@ -19,6 +19,7 @@ type Querier interface {
|
||||||
DeleteAPIKey(ctx context.Context, apiKey string) error
|
DeleteAPIKey(ctx context.Context, apiKey string) error
|
||||||
DeleteUser(ctx context.Context, username string) error
|
DeleteUser(ctx context.Context, username string) error
|
||||||
GetAPIKey(ctx context.Context, apiKey string) (ApiKey, error)
|
GetAPIKey(ctx context.Context, apiKey string) (ApiKey, error)
|
||||||
|
GetCallsTableSize(ctx context.Context) (string, error)
|
||||||
GetTalkgroup(ctx context.Context, systemID int, tgid int) (Talkgroup, error)
|
GetTalkgroup(ctx context.Context, systemID int, tgid int) (Talkgroup, error)
|
||||||
GetTalkgroupIDsByTags(ctx context.Context, anytags []string, alltags []string, nottags []string) ([]GetTalkgroupIDsByTagsRow, error)
|
GetTalkgroupIDsByTags(ctx context.Context, anytags []string, alltags []string, nottags []string) ([]GetTalkgroupIDsByTagsRow, error)
|
||||||
GetTalkgroupTags(ctx context.Context, sys int, tg int) ([]string, error)
|
GetTalkgroupTags(ctx context.Context, sys int, tg int) ([]string, error)
|
||||||
|
|
|
@ -7,6 +7,7 @@ import (
|
||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
"dynatron.me/x/stillbox/pkg/calls"
|
"dynatron.me/x/stillbox/pkg/calls"
|
||||||
|
"dynatron.me/x/stillbox/pkg/gordio/database"
|
||||||
"dynatron.me/x/stillbox/pkg/gordio/version"
|
"dynatron.me/x/stillbox/pkg/gordio/version"
|
||||||
"dynatron.me/x/stillbox/pkg/pb"
|
"dynatron.me/x/stillbox/pkg/pb"
|
||||||
|
|
||||||
|
@ -20,7 +21,7 @@ type Client interface {
|
||||||
|
|
||||||
Connection
|
Connection
|
||||||
|
|
||||||
Hello()
|
Hello(context.Context)
|
||||||
HandleCommand(context.Context, *pb.Command)
|
HandleCommand(context.Context, *pb.Command)
|
||||||
HandleMessage(context.Context, []byte)
|
HandleMessage(context.Context, []byte)
|
||||||
}
|
}
|
||||||
|
@ -67,20 +68,27 @@ func (c *client) HandleMessage(ctx context.Context, mesgBytes []byte) {
|
||||||
c.HandleCommand(ctx, &msg)
|
c.HandleCommand(ctx, &msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
func pbVersion() *pb.Version {
|
func pbVersion(ctx context.Context) *pb.Version {
|
||||||
|
cts, err := database.FromCtx(ctx).GetCallsTableSize(ctx)
|
||||||
|
if err != nil {
|
||||||
|
log.Error().Err(err).Msg("get calls table size")
|
||||||
|
cts = "unknown"
|
||||||
|
}
|
||||||
|
|
||||||
return &pb.Version{
|
return &pb.Version{
|
||||||
ServerName: version.Name,
|
ServerName: version.Name,
|
||||||
Version: version.Version,
|
Version: version.Version,
|
||||||
Built: version.Built,
|
Built: version.Built,
|
||||||
Platform: runtime.GOOS + "-" + runtime.GOARCH,
|
Platform: runtime.GOOS + "-" + runtime.GOARCH,
|
||||||
|
CallsSize: cts,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *client) Hello() {
|
func (c *client) Hello(ctx context.Context) {
|
||||||
c.Send(&pb.Message{
|
c.Send(&pb.Message{
|
||||||
ToClientMessage: &pb.Message_Hello{
|
ToClientMessage: &pb.Message_Hello{
|
||||||
Hello: &pb.Hello{
|
Hello: &pb.Hello{
|
||||||
Version: pbVersion(),
|
Version: pbVersion(ctx),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
|
@ -78,13 +78,14 @@ func (wm *wsManager) serveWS(w http.ResponseWriter, r *http.Request) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ctx := r.Context()
|
||||||
wsc := newWsConn(conn)
|
wsc := newWsConn(conn)
|
||||||
cli := wm.NewClient(wsc)
|
cli := wm.NewClient(wsc)
|
||||||
wm.Register(cli)
|
wm.Register(cli)
|
||||||
|
|
||||||
go wsc.readPump(r.Context(), wm, cli)
|
go wsc.readPump(ctx, wm, cli)
|
||||||
go wsc.writePump()
|
go wsc.writePump()
|
||||||
cli.Hello()
|
cli.Hello(ctx)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (conn *wsConn) readPump(ctx context.Context, reg Registry, c Client) {
|
func (conn *wsConn) readPump(ctx context.Context, reg Registry, c Client) {
|
||||||
|
|
|
@ -1080,6 +1080,7 @@ type Version struct {
|
||||||
Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
|
Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
|
||||||
Built string `protobuf:"bytes,3,opt,name=built,proto3" json:"built,omitempty"`
|
Built string `protobuf:"bytes,3,opt,name=built,proto3" json:"built,omitempty"`
|
||||||
Platform string `protobuf:"bytes,4,opt,name=platform,proto3" json:"platform,omitempty"`
|
Platform string `protobuf:"bytes,4,opt,name=platform,proto3" json:"platform,omitempty"`
|
||||||
|
CallsSize string `protobuf:"bytes,5,opt,name=calls_size,json=callsSize,proto3" json:"calls_size,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *Version) Reset() {
|
func (x *Version) Reset() {
|
||||||
|
@ -1142,6 +1143,13 @@ func (x *Version) GetPlatform() string {
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *Version) GetCallsSize() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.CallsSize
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
var File_stillbox_proto protoreflect.FileDescriptor
|
var File_stillbox_proto protoreflect.FileDescriptor
|
||||||
|
|
||||||
var file_stillbox_proto_rawDesc = []byte{
|
var file_stillbox_proto_rawDesc = []byte{
|
||||||
|
@ -1288,14 +1296,16 @@ var file_stillbox_proto_rawDesc = []byte{
|
||||||
0x2c, 0x0a, 0x12, 0x74, 0x61, 0x6c, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x74, 0x61, 0x67,
|
0x2c, 0x0a, 0x12, 0x74, 0x61, 0x6c, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x74, 0x61, 0x67,
|
||||||
0x73, 0x5f, 0x6e, 0x6f, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x74, 0x61, 0x6c,
|
0x73, 0x5f, 0x6e, 0x6f, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x74, 0x61, 0x6c,
|
||||||
0x6b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x61, 0x67, 0x73, 0x4e, 0x6f, 0x74, 0x22, 0x08, 0x0a,
|
0x6b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x61, 0x67, 0x73, 0x4e, 0x6f, 0x74, 0x22, 0x08, 0x0a,
|
||||||
0x06, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x22, 0x76, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69,
|
0x06, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x22, 0x95, 0x01, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73,
|
||||||
0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d,
|
0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x6e, 0x61,
|
||||||
0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e,
|
0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
|
||||||
0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02,
|
0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18,
|
||||||
0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a,
|
0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x14,
|
||||||
0x05, 0x62, 0x75, 0x69, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x75,
|
0x0a, 0x05, 0x62, 0x75, 0x69, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62,
|
||||||
0x69, 0x6c, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18,
|
0x75, 0x69, 0x6c, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d,
|
||||||
0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2a,
|
0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d,
|
||||||
|
0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05,
|
||||||
|
0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x53, 0x69, 0x7a, 0x65, 0x2a,
|
||||||
0x37, 0x0a, 0x09, 0x4c, 0x69, 0x76, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x0a,
|
0x37, 0x0a, 0x09, 0x4c, 0x69, 0x76, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x0a,
|
||||||
0x4c, 0x53, 0x5f, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07,
|
0x4c, 0x53, 0x5f, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07,
|
||||||
0x4c, 0x53, 0x5f, 0x4c, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x4c, 0x53, 0x5f,
|
0x4c, 0x53, 0x5f, 0x4c, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x4c, 0x53, 0x5f,
|
||||||
|
|
|
@ -110,4 +110,5 @@ message Version {
|
||||||
string version = 2;
|
string version = 2;
|
||||||
string built = 3;
|
string built = 3;
|
||||||
string platform = 4;
|
string platform = 4;
|
||||||
|
string calls_size = 5;
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,3 +22,6 @@ RETURNING id;
|
||||||
|
|
||||||
-- name: SetCallTranscript :exec
|
-- name: SetCallTranscript :exec
|
||||||
UPDATE calls SET transcript = $2 WHERE id = $1;
|
UPDATE calls SET transcript = $2 WHERE id = $1;
|
||||||
|
|
||||||
|
-- name: GetCallsTableSize :one
|
||||||
|
SELECT pg_size_pretty(pg_total_relation_size('calls'));
|
||||||
|
|
Loading…
Reference in a new issue