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

Metrics API #681

Open
3 of 16 tasks
gavv opened this issue Jan 30, 2024 · 4 comments
Open
3 of 16 tasks

Metrics API #681

gavv opened this issue Jan 30, 2024 · 4 comments
Labels
api Public C API enhancement

Comments

@gavv
Copy link
Member

gavv commented Jan 30, 2024

Rework metrics API:

  • per-connection metrics for both receiver and sender
  • add more metrics

Requires #674 and #688.

Connection

  • roc_connection_metrics
    • remote_uid
    • e2e_latency (measured total delay of sender + network + receiver)
    • local_latency (nominal delay of local jitter buffer and pipeline)
    • rtt
    • jitter
    • total_packets
    • lost_packets
    • late_packets
    • repaired_packets

Receiver

  • roc_receiver_metrics
    • local_uid
    • connection_count

Sender

  • roc_sender_metrics
    • local_uid
    • connection_count
@gavv gavv added api Public C API enhancement labels Jan 30, 2024
@gavv gavv added this to Frontlog in kanban board Jan 30, 2024
This was referenced Jan 31, 2024
gavv added a commit to gavv/roc-toolkit that referenced this issue Feb 4, 2024
- Add packet::ILinkMeter, protocol-independent abstraction
  for link metrics

- Use LatencyMetrics + LinkMetrics in LatencyTuner, LatencyMonitor,
  FeedbackMonitor

- Add packet counters and RTT to LinkMetrics

- Pass RTT from RTCP to LinkMeter
gavv added a commit to gavv/roc-toolkit that referenced this issue Feb 5, 2024
- API: replace roc_session_metrics with roc_connection_metrics

- API: connection metrics are now available on both
  sender and receiver

- API: functions for querying metrics are reworked

- API: niq_latency is removed from API

Internally, this commit introduces use of term "participant".
Sender and receiver both provide interfaces to collect
metrics for all known remote participants, however the
meaning of participant is different.

On receiver, participant corresponds to a remote sender.
Receiver creates a session for every remote sender, so one
participant corresponds to one session.

On sender, participant corresponds to a remote receiver.
There always only one session on sender, but multiple
participants may correspond to that one session of sender
destination is multicast address.

Participant metrics are mapped to roc_connection_metrics
in the C API.
gavv added a commit to gavv/roc-toolkit that referenced this issue Feb 5, 2024
- API: replace roc_session_metrics with roc_connection_metrics

- API: connection metrics are now available on both
  sender and receiver

- API: functions for querying metrics are reworked

- API: niq_latency is removed from API

Internally, this commit introduces use of term "participant".
Sender and receiver both provide interfaces to collect
metrics for all known remote participants, however the
meaning of participant is different.

On receiver, participant corresponds to a remote sender.
Receiver creates a session for every remote sender, so one
participant corresponds to one session.

On sender, participant corresponds to a remote receiver.
There always only one session on sender, but multiple
participants may correspond to that one session of sender
destination is multicast address.

Participant metrics are mapped to roc_connection_metrics
in the C API.
@jramine
Copy link

jramine commented Feb 18, 2024

I would like to work on this

@gavv
Copy link
Member Author

gavv commented Feb 18, 2024

Hi, this task can't be implemented yet, as it relies on a couple of other tasks that are not merged.

@jramine
Copy link

jramine commented Feb 18, 2024

okey i understand, maybe you could suggest other issue that i can work on

@gavv
Copy link
Member Author

gavv commented Feb 18, 2024

@jramine Sure, take a look at issues with help wanted and easy hacks labels that are not assigned yet.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
api Public C API enhancement
Projects
Development

No branches or pull requests

2 participants