-
Notifications
You must be signed in to change notification settings - Fork 2.4k
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
Performance and dropped resouces #28900
Comments
This is the full output log otel_log.txt |
Pinging code owners for connector/routing: @jpkrohling @mwear. See Adding Labels via Comments if you do not have permissions to add labels yourself. |
Hello @yanamg7, from your logs:
It looks like the default queue size is 1000 for the Also, another error in your logs:
Have you tried this with filelog receiver's |
Hi @crobert-1
It works OK, with no errors, and no dropped resources. We need connector routing for our logic, I'm trying to add it and have these problems. |
Hi @crobert-1. I can't use the default queue size, the pod is limited, in this case, I prefer to lose some resources instead of crashing with a memory issue. Still have the same question: in multiple receivers, it works OK, with connector routing it works slowly |
Hello @yanamg7, I'm going to defer to the code owners for an answer here, as they are better suited to answer this. I expect that this is simply a result of the queue size being so small. The routing connector may introduce a "small" delay in the data pipeline (checking data values and figuring out where to route them), and this "small" delay may be enough to overload your receiver's queue. This is just a hunch though, it may be something more, that's why I prefer to let others who are more informed to take a look. |
Hi @yanamg7. I suspect that @crobert-1's hunch is probably correct. If you wanted to compare the performance with the routing processor you could. If you try the processor, you'll have to update your routing rules to route to exporters (instead of piplines) and you'll have to prefix your ottl statements with I'm not sure if you have experimented with the memory limiter processor, but it might be another way to help you limit resources while using a larger queue size. |
I'll try to run a similar setup locally, but without access to the metrics, it's hard to tell which component is the bottleneck here. |
This issue has been inactive for 60 days. It will be closed in 60 days if there is no activity. To ping code owners by adding a component label, see Adding Labels via Comments, or if you are unsure of which component this issue relates to, please ping Pinging code owners:
See Adding Labels via Comments if you do not have permissions to add labels yourself. |
This issue has been closed as inactive because it has been stale for 120 days with no activity. |
Component(s)
No response
What happened?
Description
We conducted POC for the routing methods. When we used routing connectors we saw the resources drop and increase the memory usage.
We tried sending 15K resources per second: logs and metrics, otlp, and filereceiver. We tried to run the same traffic using multiple receivers (otlp receiver using several ports, filereceiver using different file names matching) and traffic was processed without errors. I tried it without profiling but after seeing errors, I added profiling
Steps to Reproduce
Run traffic 15K resources per sec
Expected Result
No dropped resources
Actual Result
Dropped resources and error, increased memory and CPU
Collector version
otelcol-contrib version 0.88.0
Environment information
Environment
Ubuntu 22.04.2 LTS
pod resources:
limits:
memory: 3Gi
requests:
memory: 500Mi
OpenTelemetry Collector configuration
Log output
Additional context
No response
The text was updated successfully, but these errors were encountered: