diff --git a/observability/egressobs/egress.go b/observability/egressobs/egress.go index 3a1b5872f..9f5048ae7 100644 --- a/observability/egressobs/egress.go +++ b/observability/egressobs/egress.go @@ -33,8 +33,8 @@ type EgressResults struct { func GetSourceType(info *livekit.EgressInfo) SessionSourceType { switch r := info.Request.(type) { - // case *livekit.EgressInfo_Egress: - // return getSourceTypeV2(r.Egress) + case *livekit.EgressInfo_Egress: + return getSourceTypeV2(r.Egress) case *livekit.EgressInfo_Replay: return getSourceTypeV2(r.Replay) default: @@ -64,8 +64,8 @@ func getSourceTypeV2(r egress.EgressRequest) SessionSourceType { func GetRequestType(info *livekit.EgressInfo) EgressRequestType { switch info.Request.(type) { - // case *livekit.EgressInfo_Egress: - // return EgressRequestTypeEgress + case *livekit.EgressInfo_Egress: + return EgressRequestTypeEgress case *livekit.EgressInfo_Replay: return EgressRequestTypeReplay case *livekit.EgressInfo_RoomComposite: @@ -106,12 +106,12 @@ func GetStatus(info *livekit.EgressInfo) EgressStatus { func GetRequest(info *livekit.EgressInfo) (string, error) { switch req := info.Request.(type) { - // case *livekit.EgressInfo_Egress: - // b, err := protojson.Marshal(req.Egress) - // if err != nil { - // return "", errors.Wrap(err, "failed to marshal egress request") - // } - // return string(b), nil + case *livekit.EgressInfo_Egress: + b, err := protojson.Marshal(req.Egress) + if err != nil { + return "", errors.Wrap(err, "failed serializing Egress request") + } + return string(b), nil case *livekit.EgressInfo_Replay: b, err := protojson.Marshal(req.Replay) if err != nil { diff --git a/observability/egressobs/egress_test.go b/observability/egressobs/egress_test.go index d99466f0c..4d205cbbf 100644 --- a/observability/egressobs/egress_test.go +++ b/observability/egressobs/egress_test.go @@ -77,6 +77,24 @@ func TestGetRequestType(t *testing.T) { }, expected: "track", }, + { + name: "Egress", + info: &livekit.EgressInfo{ + Request: &livekit.EgressInfo_Egress{ + Egress: &livekit.StartEgressRequest{}, + }, + }, + expected: "egress", + }, + { + name: "Replay", + info: &livekit.EgressInfo{ + Request: &livekit.EgressInfo_Replay{ + Replay: &livekit.ExportReplayRequest{}, + }, + }, + expected: "replay", + }, { name: "Undefined", info: &livekit.EgressInfo{}, @@ -92,6 +110,65 @@ func TestGetRequestType(t *testing.T) { } } +func TestGetSourceTypeV2(t *testing.T) { + tests := []struct { + name string + info *livekit.EgressInfo + expected string + }{ + { + name: "EgressTemplate", + info: &livekit.EgressInfo{ + Request: &livekit.EgressInfo_Egress{ + Egress: &livekit.StartEgressRequest{ + Source: &livekit.StartEgressRequest_Template{Template: &livekit.TemplateSource{}}, + }, + }, + }, + expected: "template", + }, + { + name: "EgressMedia", + info: &livekit.EgressInfo{ + Request: &livekit.EgressInfo_Egress{ + Egress: &livekit.StartEgressRequest{ + Source: &livekit.StartEgressRequest_Media{Media: &livekit.MediaSource{}}, + }, + }, + }, + expected: "media", + }, + { + name: "EgressWeb", + info: &livekit.EgressInfo{ + Request: &livekit.EgressInfo_Egress{ + Egress: &livekit.StartEgressRequest{ + Source: &livekit.StartEgressRequest_Web{Web: &livekit.WebSource{}}, + }, + }, + }, + expected: "web", + }, + { + name: "ReplayTemplate", + info: &livekit.EgressInfo{ + Request: &livekit.EgressInfo_Replay{ + Replay: &livekit.ExportReplayRequest{ + Source: &livekit.ExportReplayRequest_Template{Template: &livekit.TemplateSource{}}, + }, + }, + }, + expected: "template", + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + require.Equal(t, tt.expected, string(GetSourceType(tt.info))) + }) + } +} + func TestGetAudioOnly(t *testing.T) { tests := []struct { name string @@ -198,6 +275,27 @@ func TestGetRequest(t *testing.T) { }, }, }, + { + name: "Egress", + info: &livekit.EgressInfo{ + Request: &livekit.EgressInfo_Egress{ + Egress: &livekit.StartEgressRequest{ + RoomName: "test-room", + Source: &livekit.StartEgressRequest_Template{Template: &livekit.TemplateSource{Layout: "speaker"}}, + }, + }, + }, + }, + { + name: "Replay", + info: &livekit.EgressInfo{ + Request: &livekit.EgressInfo_Replay{ + Replay: &livekit.ExportReplayRequest{ + ReplayId: "test-replay", + }, + }, + }, + }, { name: "Undefined", info: &livekit.EgressInfo{}, diff --git a/rpc/agent.psrpc.go b/rpc/agent.psrpc.go index 3b61aab6a..434d66530 100644 --- a/rpc/agent.psrpc.go +++ b/rpc/agent.psrpc.go @@ -1,4 +1,4 @@ -// Code generated by protoc-gen-psrpc v0.7.0, DO NOT EDIT. +// Code generated by protoc-gen-psrpc v0.7.2, DO NOT EDIT. // source: rpc/agent.proto package rpc diff --git a/rpc/agent_dispatch.psrpc.go b/rpc/agent_dispatch.psrpc.go index c28eb3cd1..29d546646 100644 --- a/rpc/agent_dispatch.psrpc.go +++ b/rpc/agent_dispatch.psrpc.go @@ -1,4 +1,4 @@ -// Code generated by protoc-gen-psrpc v0.7.0, DO NOT EDIT. +// Code generated by protoc-gen-psrpc v0.7.2, DO NOT EDIT. // source: rpc/agent_dispatch.proto package rpc diff --git a/rpc/egress.psrpc.go b/rpc/egress.psrpc.go index 9481f9753..2cd187b02 100644 --- a/rpc/egress.psrpc.go +++ b/rpc/egress.psrpc.go @@ -1,4 +1,4 @@ -// Code generated by protoc-gen-psrpc v0.7.0, DO NOT EDIT. +// Code generated by protoc-gen-psrpc v0.7.2, DO NOT EDIT. // source: rpc/egress.proto package rpc diff --git a/rpc/ingress.psrpc.go b/rpc/ingress.psrpc.go index 8e1f48bec..25faf9c1d 100644 --- a/rpc/ingress.psrpc.go +++ b/rpc/ingress.psrpc.go @@ -1,4 +1,4 @@ -// Code generated by protoc-gen-psrpc v0.7.0, DO NOT EDIT. +// Code generated by protoc-gen-psrpc v0.7.2, DO NOT EDIT. // source: rpc/ingress.proto package rpc diff --git a/rpc/io.psrpc.go b/rpc/io.psrpc.go index fb1bce3c0..dc6c6f9a6 100644 --- a/rpc/io.psrpc.go +++ b/rpc/io.psrpc.go @@ -1,4 +1,4 @@ -// Code generated by protoc-gen-psrpc v0.7.0, DO NOT EDIT. +// Code generated by protoc-gen-psrpc v0.7.2, DO NOT EDIT. // source: rpc/io.proto package rpc diff --git a/rpc/keepalive.psrpc.go b/rpc/keepalive.psrpc.go index a67dc376e..4735f8d58 100644 --- a/rpc/keepalive.psrpc.go +++ b/rpc/keepalive.psrpc.go @@ -1,4 +1,4 @@ -// Code generated by protoc-gen-psrpc v0.7.0, DO NOT EDIT. +// Code generated by protoc-gen-psrpc v0.7.2, DO NOT EDIT. // source: rpc/keepalive.proto package rpc diff --git a/rpc/participant.psrpc.go b/rpc/participant.psrpc.go index 12a77fa87..5a3fd5e7a 100644 --- a/rpc/participant.psrpc.go +++ b/rpc/participant.psrpc.go @@ -1,4 +1,4 @@ -// Code generated by protoc-gen-psrpc v0.7.0, DO NOT EDIT. +// Code generated by protoc-gen-psrpc v0.7.2, DO NOT EDIT. // source: rpc/participant.proto package rpc diff --git a/rpc/room.psrpc.go b/rpc/room.psrpc.go index 155c33c78..0b1a8b622 100644 --- a/rpc/room.psrpc.go +++ b/rpc/room.psrpc.go @@ -1,4 +1,4 @@ -// Code generated by protoc-gen-psrpc v0.7.0, DO NOT EDIT. +// Code generated by protoc-gen-psrpc v0.7.2, DO NOT EDIT. // source: rpc/room.proto package rpc diff --git a/rpc/roommanager.psrpc.go b/rpc/roommanager.psrpc.go index 31b6cb7e0..9dbc22974 100644 --- a/rpc/roommanager.psrpc.go +++ b/rpc/roommanager.psrpc.go @@ -1,4 +1,4 @@ -// Code generated by protoc-gen-psrpc v0.7.0, DO NOT EDIT. +// Code generated by protoc-gen-psrpc v0.7.2, DO NOT EDIT. // source: rpc/roommanager.proto package rpc diff --git a/rpc/signal.psrpc.go b/rpc/signal.psrpc.go index a2d80b7d0..acd68bb05 100644 --- a/rpc/signal.psrpc.go +++ b/rpc/signal.psrpc.go @@ -1,4 +1,4 @@ -// Code generated by protoc-gen-psrpc v0.7.0, DO NOT EDIT. +// Code generated by protoc-gen-psrpc v0.7.2, DO NOT EDIT. // source: rpc/signal.proto package rpc diff --git a/rpc/sip.psrpc.go b/rpc/sip.psrpc.go index 21a4634c3..693696962 100644 --- a/rpc/sip.psrpc.go +++ b/rpc/sip.psrpc.go @@ -1,4 +1,4 @@ -// Code generated by protoc-gen-psrpc v0.7.0, DO NOT EDIT. +// Code generated by protoc-gen-psrpc v0.7.2, DO NOT EDIT. // source: rpc/sip.proto package rpc diff --git a/rpc/whip_signal.psrpc.go b/rpc/whip_signal.psrpc.go index c774f38ce..29707b064 100644 --- a/rpc/whip_signal.psrpc.go +++ b/rpc/whip_signal.psrpc.go @@ -1,4 +1,4 @@ -// Code generated by protoc-gen-psrpc v0.7.0, DO NOT EDIT. +// Code generated by protoc-gen-psrpc v0.7.2, DO NOT EDIT. // source: rpc/whip_signal.proto package rpc