- Notifications
You must be signed in to change notification settings - Fork121
Collect netns#240
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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Open
ShirleyFei wants to merge6 commits intoAtoptool:masterChoose a base branch frombytedance:collect-netns
base:master
Could not load branches
Branch not found:{{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline, and old review comments may become outdated.
Open
Collect netns#240
Uh oh!
There was an error while loading.Please reload this page.
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters
We already get the attibutes of ifprop during getifprop() afterreading /proc/net/dev, thus remove the unnecessary second getterin deviatsyst().Signed-off-by: Fei Li <lifei.shirley@bytedance.com>
The network devices, like eth2, are settled in another networknamespace via `ip netns add` in some scenarios in the productionenvironment. In this case, we have to switch to that new netnsto get network related statistics, e.g. reading from /proc/net/dev,/proc/net/snmp, /proc/net/snmp6.This patch firstly adds the needed attributes, like 'netns', forcollecting and displaying network namespace statistics. Then thefollowing patches will do the real implementation.To pass the compiling, also update for atopsar, parsable and json.Also format some lines according to astyle.Signed-off-by: Fei Li <lifei.shirley@bytedance.com>
Signed-off-by: Fei Li <lifei.shirley@bytedance.com>
For linux kernel, it exposes almost 100 lines for /proc/net/snmp6file. Considering multiple-netns situations, too many lines had tobe read and transferred, which is quite time consuming and spaceconsuming.Let's optimize this by adding 'idx' to mark the needed indicators'position in struct v6tab. During the first time reading, e.i. theinit_net namespace, we record the positions. Then in the followingother netns, we only need to store and transfer indicators' valuesaccording to their positions.Signed-off-by: Fei Li <lifei.shirley@bytedance.com>
This patch implements how to collect statistics for other netnsby using `setns` to switch to another netns to read /proc files,and then use shared memory for parent-child IPC.Combined with actual needs and performance considerations, thispatch only collects other netns's physical network devices stats.Virtual devices are ignored except the 'lo'.Signed-off-by: Fei Li <lifei.shirley@bytedance.com>
The default rule is splitting netns by blank space.And make sure the netns path exits.Signed-off-by: Fei Li <lifei.shirley@bytedance.com>
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The network devices, like eth2, are settled in another network namespace via
ip netns addin some scenarios in the production environment. In this case, we have to switch to that new netns to get network related statistics, e.g. reading from /proc/net/dev, /proc/net/snmp, /proc/net/snmp6.Add a 'netns' indicator to indicate which netns the network is belong to. And collect statistics for other netns by using
setnsto switch to another netns to read /proc files, and then use shared memory for parent-child IPC.Combined with actual needs and performance considerations, this patch only collects other netns's physical network devices stats. Virtual devices are ignored except the 'lo'.
To pass the compiling, also update for atopsar, parsable and json.
Also format some lines according to astyle.