Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add cluster to streaminfo/consumerinfo struct #537

Merged
merged 13 commits into from
Jul 13, 2022
Merged

Add cluster to streaminfo/consumerinfo struct #537

merged 13 commits into from
Jul 13, 2022

Conversation

j13tw
Copy link
Contributor

@j13tw j13tw commented Jun 27, 2022

Add cluster information on ConsumerInfo && StreamInfo,
Follow the structure of nats CLI Tool within trace Mode.

  • Jetstream Stream API Trace

nats str report --trace

{"type":"io.nats.jetstream.api.v1.stream_list_response","total":1,"offset":0,"limit":256,"streams":[{"config":{"name":"test","subjects":["test"],"retention":"limits","max_consumers":-1,"max_msgs":-1,"max_bytes":-1,"max_age":0,"max_msgs_per_subject":-1,"max_msg_size":-1,"discard":"old","storage":"file","num_replicas":3,"duplicate_window":120000000000,"sealed":false,"deny_delete":false,"deny_purge":false,"allow_rollup_hdrs":false},"created":"2022-06-24T11:04:21.564710722Z","state":{"messages":10,"bytes":531,"first_seq":1,"first_ts":"2022-06-24T11:04:36.593164161Z","last_seq":10,"last_ts":"2022-06-24T11:04:36.599477736Z","num_subjects":1,"consumer_count":1},"cluster":{"name":"nats-server-1","leader":"nats-server-4-0","replicas":[{"name":"nats-server-5-0","current":true,"active":472214464},{"name":"nats-server-6-0","current":true,"active":472212927}]}}]}

╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│                                                           Stream Report                                                           │
├────────┬─────────┬───────────┬───────────┬──────────┬───────┬──────┬─────────┬────────────────────────────────────────────────────┤
│ Stream │ Storage │ Placement │ Consumers │ Messages │ Bytes │ Lost │ Deleted │ Replicas                                           │
├────────┼─────────┼───────────┼───────────┼──────────┼───────┼──────┼─────────┼────────────────────────────────────────────────────┤
│ test   │ File    │           │ 1         │ 10       │ 531 B │ 0    │ 0       │ nats-server-4-0*, nats-server-5-0, nats-server-6-0 │
╰────────┴─────────┴───────────┴───────────┴──────────┴───────┴──────┴─────────┴────────────────────────────────────────────────────╯
  • Jetstream Consumer API Trace

nats con report <Stream_Name> --trace

{"type":"io.nats.jetstream.api.v1.consumer_info_response","stream_name":"test","name":"test","created":"2022-06-24T11:04:28.904421826Z","config":{"durable_name":"test","deliver_policy":"all","ack_policy":"explicit","ack_wait":30000000000,"max_deliver":-1,"replay_policy":"instant","max_waiting":512,"max_ack_pending":1000},"delivered":{"consumer_seq":1,"stream_seq":1,"last_active":"2022-06-24T11:04:41.465820627Z"},"ack_floor":{"consumer_seq":1,"stream_seq":1,"last_active":"2022-06-24T11:04:41.468118541Z"},"num_ack_pending":0,"num_redelivered":0,"num_waiting":0,"num_pending":9,"cluster":{"name":"nats-server-1","leader":"nats-server-4-0","replicas":[{"name":"nats-server-5-0","current":true,"active":416324845},{"name":"nats-server-6-0","current":true,"active":416451641}]}}

╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│                                                     Consumer report for test with 1 consumers                                                      │
├──────────┬──────┬────────────┬──────────┬─────────────┬─────────────┬─────────────┬───────────┬────────────────────────────────────────────────────┤
│ Consumer │ Mode │ Ack Policy │ Ack Wait │ Ack Pending │ Redelivered │ Unprocessed │ Ack Floor │ Cluster                                            │
├──────────┼──────┼────────────┼──────────┼─────────────┼─────────────┼─────────────┼───────────┼────────────────────────────────────────────────────┤
│ test     │ Pull │ Explicit   │ 30.00s   │ 0           │ 0           │ 9 / 90%     │ 1         │ nats-server-4-0*, nats-server-5-0, nats-server-6-0 │
╰──────────┴──────┴────────────┴──────────┴─────────────┴─────────────┴─────────────┴───────────┴────────────────────────────────────────────────────╯

Copy link
Collaborator

@caspervonb caspervonb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the pull request!

Two tiny notes:

  • Looked up the schema and there are two more additional fields in peer info.
  • A test case would be greatly appreciated (granted, bit trickier to setup when it involves a cluster so we might be a bit lenient in this case).

nats/src/jetstream/types.rs Outdated Show resolved Hide resolved
@j13tw j13tw requested a review from caspervonb June 27, 2022 15:14
@j13tw j13tw requested a review from caspervonb June 27, 2022 17:40
@caspervonb
Copy link
Collaborator

CI isn't passing but I'll take it from here, thank you very much!
Will merge today.

Copy link
Member

@Jarema Jarema left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tested on a local cluster.

LGTM.

Thanks for your contribution and effort @j13tw !

@caspervonb caspervonb merged commit 1b95c25 into nats-io:main Jul 13, 2022
@Jarema Jarema mentioned this pull request Aug 4, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants