(cli *cli)
| 792 | } |
| 793 | |
| 794 | func statsEventStreamCmd(cli *cli) *cobra.Command { |
| 795 | var inputs struct { |
| 796 | StreamID string |
| 797 | From string |
| 798 | To string |
| 799 | } |
| 800 | |
| 801 | cmd := &cobra.Command{ |
| 802 | Use: "stats [stream-id]", |
| 803 | Short: "View delivery stats for an event stream", |
| 804 | Long: `Retrieve metrics over time for a given event stream, including |
| 805 | successful and failed delivery counts. Supports custom date range filtering.`, |
| 806 | Args: cobra.MaximumNArgs(1), |
| 807 | Example: ` auth0 event-streams stats |
| 808 | auth0 event-streams stats <stream-id> |
| 809 | auth0 event-streams stats <stream-id> --from 2025-07-15 --to 2025-07-29`, |
| 810 | RunE: func(cmd *cobra.Command, args []string) error { |
| 811 | if len(args) > 0 { |
| 812 | inputs.StreamID = args[0] |
| 813 | } |
| 814 | |
| 815 | if inputs.StreamID == "" { |
| 816 | if err := eventStreamID.Pick(cmd, &inputs.StreamID, cli.eventStreamPickerOptions); err != nil { |
| 817 | return err |
| 818 | } |
| 819 | } |
| 820 | |
| 821 | var opts []management.RequestOption |
| 822 | |
| 823 | if inputs.From != "" { |
| 824 | fromDate, err := parseFlexibleDate(inputs.From) |
| 825 | if err != nil { |
| 826 | return fmt.Errorf("invalid --from date: %w", err) |
| 827 | } |
| 828 | opts = append(opts, management.Parameter("date_from", fromDate)) |
| 829 | } |
| 830 | |
| 831 | if inputs.To != "" { |
| 832 | toDate, err := parseFlexibleDate(inputs.To) |
| 833 | if err != nil { |
| 834 | return fmt.Errorf("invalid --to date: %w", err) |
| 835 | } |
| 836 | opts = append(opts, management.Parameter("date_to", toDate)) |
| 837 | } |
| 838 | |
| 839 | stats, err := cli.api.EventStream.Stats(cmd.Context(), inputs.StreamID, opts...) |
| 840 | if err != nil { |
| 841 | return fmt.Errorf("failed to fetch stats for stream %q: %w", inputs.StreamID, err) |
| 842 | } |
| 843 | cli.renderer.RenderEventStreamStats(stats) |
| 844 | return nil |
| 845 | }, |
| 846 | } |
| 847 | |
| 848 | cmd.Flags().StringVarP(&inputs.From, "from", "f", "", "Start date for stats (e.g. 2025-07-15, -3d)") |
| 849 | cmd.Flags().StringVarP(&inputs.To, "to", "t", "", "End date for stats (e.g. 2025-07-29)") |
| 850 | cmd.Flags().BoolVar(&cli.json, "json", false, "Output in json format.") |
| 851 |
no test coverage detected