diff --git a/config/messages.json b/config/messages.json index 77134e2925..f1f8928650 100644 --- a/config/messages.json +++ b/config/messages.json @@ -9989,6 +9989,15 @@ "file": "observability.go" } }, + "event:as.down.data.ack.forward": { + "translations": { + "en": "forward downlink acknowledged" + }, + "description": { + "package": "pkg/applicationserver", + "file": "observability.go" + } + }, "event:as.down.data.decode.fail": { "translations": { "en": "decode downlink data message failure" @@ -10034,6 +10043,15 @@ "file": "observability.go" } }, + "event:as.down.data.failed.forward": { + "translations": { + "en": "forward downlink failed" + }, + "description": { + "package": "pkg/applicationserver", + "file": "observability.go" + } + }, "event:as.down.data.forward": { "translations": { "en": "forward downlink data message" @@ -10043,6 +10061,24 @@ "file": "observability.go" } }, + "event:as.down.data.nack.forward": { + "translations": { + "en": "forward downlink not acknowledged" + }, + "description": { + "package": "pkg/applicationserver", + "file": "observability.go" + } + }, + "event:as.down.data.queue.invalidated.forward": { + "translations": { + "en": "forward downlink queue invalidated" + }, + "description": { + "package": "pkg/applicationserver", + "file": "observability.go" + } + }, "event:as.down.data.receive": { "translations": { "en": "receive downlink data message" @@ -10052,6 +10088,15 @@ "file": "observability.go" } }, + "event:as.down.data.sent.forward": { + "translations": { + "en": "forward downlink sent" + }, + "description": { + "package": "pkg/applicationserver", + "file": "observability.go" + } + }, "event:as.end_device.batch.delete": { "translations": { "en": "batch delete end devices" diff --git a/pkg/applicationserver/observability.go b/pkg/applicationserver/observability.go index 90a8a0fcc8..ea43a58763 100644 --- a/pkg/applicationserver/observability.go +++ b/pkg/applicationserver/observability.go @@ -146,6 +146,36 @@ var ( events.WithDataType(&ttnpb.ApplicationDownlink{}), events.WithPropagateToParent(), ) + evtForwardDownlinkQueueInvalidated = events.Define( + "as.down.data.queue.invalidated.forward", "forward downlink queue invalidated", + events.WithVisibility(ttnpb.Right_RIGHT_APPLICATION_TRAFFIC_READ), + events.WithDataType(&ttnpb.ApplicationUp{}), + events.WithPropagateToParent(), + ) + evtForwardDownlinkFailed = events.Define( + "as.down.data.failed.forward", "forward downlink failed", + events.WithVisibility(ttnpb.Right_RIGHT_APPLICATION_TRAFFIC_READ), + events.WithDataType(&ttnpb.ApplicationUp{}), + events.WithPropagateToParent(), + ) + evtForwardDownlinkSent = events.Define( + "as.down.data.sent.forward", "forward downlink sent", + events.WithVisibility(ttnpb.Right_RIGHT_APPLICATION_TRAFFIC_READ), + events.WithDataType(&ttnpb.ApplicationUp{}), + events.WithPropagateToParent(), + ) + evtForwardDownlinkAck = events.Define( + "as.down.data.ack.forward", "forward downlink acknowledged", + events.WithVisibility(ttnpb.Right_RIGHT_APPLICATION_TRAFFIC_READ), + events.WithDataType(&ttnpb.ApplicationUp{}), + events.WithPropagateToParent(), + ) + evtForwardDownlinkNack = events.Define( + "as.down.data.nack.forward", "forward downlink not acknowledged", + events.WithVisibility(ttnpb.Right_RIGHT_APPLICATION_TRAFFIC_READ), + events.WithDataType(&ttnpb.ApplicationUp{}), + events.WithPropagateToParent(), + ) ) const ( @@ -283,6 +313,16 @@ func registerForwardUp(ctx context.Context, msg *ttnpb.ApplicationUp) { events.Publish(evtForwardLocationSolved.NewWithIdentifiersAndData(ctx, msg.EndDeviceIds, msg)) case *ttnpb.ApplicationUp_ServiceData: events.Publish(evtForwardServiceData.NewWithIdentifiersAndData(ctx, msg.EndDeviceIds, msg)) + case *ttnpb.ApplicationUp_DownlinkQueueInvalidated: + events.Publish(evtForwardDownlinkQueueInvalidated.NewWithIdentifiersAndData(ctx, msg.EndDeviceIds, msg)) + case *ttnpb.ApplicationUp_DownlinkFailed: + events.Publish(evtForwardDownlinkFailed.NewWithIdentifiersAndData(ctx, msg.EndDeviceIds, msg)) + case *ttnpb.ApplicationUp_DownlinkSent: + events.Publish(evtForwardDownlinkSent.NewWithIdentifiersAndData(ctx, msg.EndDeviceIds, msg)) + case *ttnpb.ApplicationUp_DownlinkAck: + events.Publish(evtForwardDownlinkAck.NewWithIdentifiersAndData(ctx, msg.EndDeviceIds, msg)) + case *ttnpb.ApplicationUp_DownlinkNack: + events.Publish(evtForwardDownlinkNack.NewWithIdentifiersAndData(ctx, msg.EndDeviceIds, msg)) default: return } diff --git a/pkg/webui/locales/ja.json b/pkg/webui/locales/ja.json index 992f733f9d..7612b871bf 100644 --- a/pkg/webui/locales/ja.json +++ b/pkg/webui/locales/ja.json @@ -2706,13 +2706,18 @@ "event:application.update": "アプリケーションを更新", "event:as.application.subscribe": "アプリケーションに登録", "event:as.application.unsubscribe": "アプリケーションから退出", + "event:as.down.data.ack.forward": "", "event:as.down.data.decode.fail": "ダウンリンクデータメッセージのデコード失敗", "event:as.down.data.decode.warning": "ダウンリンクデータメッセージのデコード警告", "event:as.down.data.drop": "ダウンリンクデータメッセージをドロップ", "event:as.down.data.encode.fail": "ダウンリンクデータメッセージのエンコード失敗", "event:as.down.data.encode.warning": "ダウンリンクデータメッセージのエンコード警告", + "event:as.down.data.failed.forward": "", "event:as.down.data.forward": "ダウンリンクデータメッセージの転送", + "event:as.down.data.nack.forward": "", + "event:as.down.data.queue.invalidated.forward": "", "event:as.down.data.receive": "ダウンリンクデータメッセージを受信", + "event:as.down.data.sent.forward": "", "event:as.end_device.batch.delete": "エンドデバイスをバッチ削除", "event:as.end_device.create": "エンドデバイスの作成", "event:as.end_device.delete": "エンドデバイスの削除",