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

Error sending a metric: channel full #1680

Closed
olksdr opened this issue Dec 7, 2022 · 2 comments
Closed

Error sending a metric: channel full #1680

olksdr opened this issue Dec 7, 2022 · 2 comments
Assignees
Labels
bug Something isn't working
Milestone

Comments

@olksdr
Copy link
Contributor

olksdr commented Dec 7, 2022

This happened few times, our statsd metrics could not be sent.

Sentry Issue: POP-RELAY-2NV

Error sending a metric: channel full
  caused by: channel full, maximum capacity: 100000

Error is coming from

"Error sending a metric: {}, maximum capacity: {}",

@olksdr olksdr added the bug Something isn't working label Dec 7, 2022
@iker-barriocanal
Copy link
Member

@jan-auer
Copy link
Member

jan-auer commented Feb 3, 2023

We have concluded the only viable short-term option is to reduce the amount of metrics. We are going to analyze which metrics are creating too much traffic and will reduce them. Note that this is NOT a cardinality concern, it's that our individual increments of metrics are too much.

Other considered options:

  • Increase channel size: This option doesn’t really address the problem, and it only postpones it. The cost is the increased CPU and memory usage, which currently may be around 20% of a relay instance’s cost.
  • Increase number of channels or clients: Same as above.
  • “Optimize” the channel: To “optimize” the channel for higher throughput, it is recommended to move from UDP to Unix Domain Socket (UDS). UDS is another, strem-oriented protocol (supports UDP). However, there aren’t any guarantees of increased performance (we need to run benchmarks for that), comes with its own set of challenges, and requires infrastructure changes. The main challenge is based on how UDS fundamentally works, based on a special file.

@jan-auer jan-auer closed this as completed Feb 3, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants