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

[RFE] Collect nmstate usage data for telemetry #1202

Open
cathay4t opened this issue Aug 29, 2023 · 4 comments
Open

[RFE] Collect nmstate usage data for telemetry #1202

cathay4t opened this issue Aug 29, 2023 · 4 comments
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. priority/medium

Comments

@cathay4t
Copy link
Member

We are hoping to get data on

  • What is the commonly used network topology? (e.g. VLAN over linux bridge over bond)
  • Version of nmstate been used

This could help us on planning CI coverage and backport patches.

@cathay4t cathay4t changed the title [RFE] Collect nmstate usage [RFE] Collect nmstate usage data Aug 29, 2023
@cathay4t cathay4t changed the title [RFE] Collect nmstate usage data [RFE] Collect nmstate usage data for telemetry Aug 30, 2023
@qinqon qinqon added approved Indicates a PR has been approved by an approver from all required OWNERS files. priority/medium labels Sep 8, 2023
@qinqon
Copy link
Member

qinqon commented Sep 8, 2023

@cathay4t about first bullet we can generalize this by counters per nested interfaces ? like
vlan(linux(bond)) -> 3
linux(vlan) -> 4
ovs(vlan) -> 5
something like this ?

@cathay4t
Copy link
Member Author

Initially, I would like to collect date for:

  1. Topology: array of free strings, like vlan, linux-bridge, vlan-over-bridge-over-bond, ovs-bridge etc.
  2. Features, array of free strings, like mac-based-identifier, ovn-mapping. With this we could know adoption rate of implemented features.
  3. Use cases. array of free strings. like move ip from eth to bridge, change dns nameservers, switch from dynamic ip to static. We can use nmstate tier1 test case name for naming these use cases, so we have clear definition.
  4. Optionally, learn use case of customer's desire state. Till suggested this, but I don't know how to do it.

Each cluster only count as one for topology/feature/use case regardless how many interfaces it has or how many NNCP it has. So our data does not imfluenced by a big cluster with 1000+ VLANs or NNCPs.

I will create demo like nmstatectl gen-statistics <desire_state_file> [-c <current_state_file>]:

topologies:
  - vlan
  - linux-bridge-over-bond-over-sriov-vf
features:
 - nm-global-dns
 - mac-identifier
 - sriov-vf-reference
 - ovn-mapping
use-cases:
 - edit_static_ipv4_address_and_prefix
 - disable_static_ipv6

@cybertron
Copy link
Collaborator

Just a note that when I've had conversations about telemetry in the past, I was told the amount of data we're allowed to send for it is extremely limited. Like instead of JSON booleans, we have to use bitmasks where each bit is mapped to a given key. I haven't actually confirmed that myself, but before we come up with a complex set of values that we want to return we may want to confirm that we can actually represent that in the amount of data we're allowed to send.

@qinqon
Copy link
Member

qinqon commented Oct 27, 2023

@cybertron @cathay4t this is poc to integrate some statistics, from there we can reduce optimize what we need

#1210

Looks like the top 10 can be filter at prometheus using topk(10, sum(nmstate_apply_topology_total) by (name))

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. priority/medium
Projects
None yet
Development

No branches or pull requests

3 participants