-
Notifications
You must be signed in to change notification settings - Fork 22
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
Enable Guest/Instance network interface(s) metrics #742
Milestone
Comments
zeeshanlakhani
added a commit
to oxidecomputer/omicron
that referenced
this issue
Aug 21, 2024
This is related to the ongoing work in [plumbing instance/guest metrics](oxidecomputer/propolis#742) through to an oximeter producer in propolis. Includes: - Rewriting the comment for `trait Target` in Oximeter to not being prepped for deprecation, as it does come in handy for custom needs - The main differentiaing field among link information here is `interface_id`, which is exposed to propolis via the client's `NetworkInterfaceRequest`. We currently match the nic.slot to the port.slot to pass which of the requested nics `interface_id` uuids are part of the request.
zeeshanlakhani
added a commit
to oxidecomputer/omicron
that referenced
this issue
Aug 21, 2024
This is related to the ongoing work in [plumbing instance/guest metrics](oxidecomputer/propolis#742) through to an oximeter producer in propolis. Includes: - Rewriting the comment for `trait Target` in Oximeter to not being prepped for deprecation, as it does come in handy for custom needs - The main differentiating field among link information here is `interface_id`, which is exposed to propolis via the client's `NetworkInterfaceRequest`. We currently match the `nic.slot` to the `port.slot` to pass which of the requested nics `interface_id` uuids are part of the request.
zeeshanlakhani
added a commit
to oxidecomputer/omicron
that referenced
this issue
Aug 21, 2024
This is related to the ongoing work in [plumbing instance/guest metrics](oxidecomputer/propolis#742) through to an oximeter producer in propolis. Includes: - Rewriting the comment for `trait Target` in Oximeter to not being prepped for deprecation, as it does come in handy for custom needs - The main differentiating field among link information here is `interface_id`, which is exposed to propolis via the client's `NetworkInterfaceRequest`. We currently match the `nic.slot` to the `port.slot` to pass which of the requested nics `interface_id` uuids are part of the request.
1 task
zeeshanlakhani
added a commit
to oxidecomputer/omicron
that referenced
this issue
Aug 22, 2024
This is related to the ongoing work in [plumbing instance/guest metrics](oxidecomputer/propolis#742) through to an oximeter producer in propolis. Includes: - Rewriting the comment for `trait Target` in Oximeter to not being prepped for deprecation, as it does come in handy for custom needs - The main differentiating field among link information here is `interface_id`, which is exposed to propolis via the client's `NetworkInterfaceRequest`. We currently match the `nic.slot` to the `port.slot` to pass which of the requested nics `interface_id` uuids are part of the request.
zeeshanlakhani
added a commit
to oxidecomputer/omicron
that referenced
this issue
Aug 22, 2024
This is related to the ongoing work in [plumbing instance/guest metrics](oxidecomputer/propolis#742) through to an oximeter producer in propolis. Includes: - Rewriting the comment for `trait Target` in Oximeter to not being prepped for deprecation, as it does come in handy for custom needs - The main differentiating field among instance network information here is `interface_id`, which is exposed to propolis via the client's `NetworkInterfaceRequest`. We currently match the `nic.slot` to the `port.slot` to pass which of the requested nics `interface_id` uuids are part of the request.
zeeshanlakhani
added a commit
to oxidecomputer/omicron
that referenced
this issue
Aug 22, 2024
This is related to the ongoing work in [plumbing instance/guest metrics](oxidecomputer/propolis#742) through to an oximeter producer in propolis. Includes: - Rewriting the comment for `trait Target` in Oximeter to not being prepped for deprecation, as it does come in handy for custom needs - The main differentiating field among instance network information here is `interface_id`, which is exposed to propolis via the client's `NetworkInterfaceRequest`. We currently match the `nic.slot` to the `port.slot` to pass which of the requested nics `interface_id` uuids are part of the request.
1 task
zeeshanlakhani
changed the title
Plumb Guest/Instance Link metrics
Plumb Guest/Instance network interface(s) metrics
Aug 23, 2024
zeeshanlakhani
changed the title
Plumb Guest/Instance network interface(s) metrics
Enable Guest/Instance network interface(s) metrics
Aug 23, 2024
zeeshanlakhani
added a commit
that referenced
this issue
Aug 23, 2024
Overview ======== This is related to the ongoing work in [plumbing instance/guest metrics](#742) through to an oximeter producer in propolis. It depends on https://code.illumos.org/c/illumos-gate/+/3630. Includes: * An update to `NetworkInterfaceRequest` to include an interface_id, which is part of the request on the [sled instance in Omicron](oxidecomputer/omicron#6414). * Within initialization, with concrete types, we create interface_ids mapping nic UUIDs => `minor` number of viona device instance. - The number of the device instance matches the kstat we'll look for. - We track this mapping via a type alias `InterfaceIdentifiers`, which is passed through from Machine initialization to vm objects (and vm objects shared), the latter to which we can use it as part of registering the oximeter producer. * A new stats module for collecting network_interface metrics. - In `to_samples` we generate multiple network interface targets based on vnics per instance, updating the `interface_id` appropriately, which is tracked in `interface_ids`. * Move kstat_types out of virtual machine-specific stats and use its mocking for other stats tests
zeeshanlakhani
added a commit
that referenced
this issue
Aug 23, 2024
Overview ======== This is related to the ongoing work in [plumbing instance/guest metrics](#742) through to an oximeter producer in propolis. It depends on https://code.illumos.org/c/illumos-gate/+/3630. Includes: * An update to `NetworkInterfaceRequest` to include an interface_id, which is part of the request on the [sled instance in Omicron](oxidecomputer/omicron#6414). * Within initialization, with concrete types, we create interface_ids mapping nic UUIDs => `minor` number of viona device instance. - The number of the device instance matches the kstat we'll look for. - We track this mapping via a type alias `InterfaceIdentifiers`, which is passed through from Machine initialization to vm objects (and vm objects shared), the latter to which we can use it as part of registering the oximeter producer. * A new stats module for collecting network_interface metrics. - In `to_samples` we generate multiple network interface targets based on vnics per instance, updating the `interface_id` appropriately, which is tracked in `interface_ids`. * Move kstat_types out of virtual machine-specific stats and use its mocking for other stats tests Dependencies ------------ - [ ] oxidecomputer/omicron#6414 - [ ] https://code.illumos.org/c/illumos-gate/+/3630
zeeshanlakhani
added a commit
that referenced
this issue
Aug 23, 2024
Overview ======== This is related to the ongoing work in [plumbing instance/guest metrics](#742) through to an oximeter producer in propolis. Includes: * An update to `NetworkInterfaceRequest` to include an interface_id, which is part of the request on the [sled instance in Omicron](oxidecomputer/omicron#6414). * Within initialization, with concrete types, we create interface_ids mapping nic UUIDs => `minor` number of the device instance of viona. - The device instance number matches the Kstat we'll look for. - We track this mapping via a type alias `InterfaceIdentifiers`, which is passed through from Machine initialization to VM objects (and VM objects shared), the latter of which we can use as part of registering the oximeter producer. * A new stats module for collecting network_interface metrics. - In `to_samples` we generate multiple network interface targets based on vnics per instance, appropriately updating the `interface_id`, which is tracked in `interface_ids`. * Move kstat_types out of virtual machine-specific stats and use its mocking for other stats tests Dependencies ------------ - [ ] oxidecomputer/omicron#6414 - [ ] https://code.illumos.org/c/illumos-gate/+/3630
3 tasks
zeeshanlakhani
added a commit
that referenced
this issue
Aug 23, 2024
Overview ======== This is related to the ongoing work in [plumbing instance/guest metrics](#742) through to an oximeter producer in propolis. Includes: * An update to `NetworkInterfaceRequest` to include an interface_id, which is part of the request on the [sled instance in Omicron](oxidecomputer/omicron#6414). * Within initialization, with concrete types, we create interface_ids mapping nic UUIDs => `minor` number of the device instance of viona. - The device instance number matches the Kstat we'll look for. - We track this mapping via a type alias `InterfaceIdentifiers`, which is passed through from Machine initialization to VM objects (and VM objects shared), the latter of which we can use as part of registering the oximeter producer. * A new stats module for collecting network_interface metrics. - In `to_samples` we generate multiple network interface targets based on vnics per instance, appropriately updating the `interface_id`, which is tracked in `interface_ids`. * Move kstat_types out of virtual machine-specific stats and use its mocking for other stats tests Dependencies ------------ - [ ] oxidecomputer/omicron#6414 - [ ] https://code.illumos.org/c/illumos-gate/+/3630
zeeshanlakhani
added a commit
that referenced
this issue
Aug 23, 2024
Overview ======== This is related to the ongoing work in [plumbing instance/guest metrics](#742) through to an oximeter producer in propolis. Includes: * An update to `NetworkInterfaceRequest` to include an interface_id, which is part of the request on the [sled instance in Omicron](oxidecomputer/omicron#6414). * Within initialization, with concrete types, we create interface_ids mapping nic UUIDs => `minor` number of the device instance of viona. - The device instance number matches the Kstat we'll look for. - We track this mapping via a type alias `InterfaceIdentifiers`, which is passed through from Machine initialization to VM objects (and VM objects shared), the latter of which we can use as part of registering the oximeter producer. * A new stats module for collecting network_interface metrics. - In `to_samples` we generate multiple network interface targets based on vnics per instance, appropriately updating the `interface_id`, which is tracked in `interface_ids`. * Move kstat_types out of virtual machine-specific stats and use its mocking for other stats tests Dependencies ------------ - [ ] oxidecomputer/omicron#6414 - [ ] https://code.illumos.org/c/illumos-gate/+/3630
zeeshanlakhani
added a commit
to oxidecomputer/omicron
that referenced
this issue
Aug 25, 2024
This is related to the ongoing work in [plumbing instance/guest metrics](oxidecomputer/propolis#742) through to an oximeter producer in propolis. Includes: - Rewriting the comment for `trait Target` in Oximeter to not being prepped for deprecation, as it does come in handy for custom needs - The main differentiating field among instance network information here is `interface_id`, which is exposed to propolis via the client's `NetworkInterfaceRequest`. We currently match the `nic.slot` to the `port.slot` to pass which of the requested nics `interface_id` uuids are part of the request.
zeeshanlakhani
added a commit
that referenced
this issue
Aug 26, 2024
Overview ======== This is related to the ongoing work in [plumbing instance/guest metrics](#742) through to an oximeter producer in propolis. Includes: * An update to `NetworkInterfaceRequest` to include an interface_id, which is part of the request on the [sled instance in Omicron](oxidecomputer/omicron#6414). * Within initialization, with concrete types, we create interface_ids mapping nic UUIDs => `minor` number of the device instance of viona. - The device instance number matches the Kstat we'll look for. - We track this mapping via a type alias `InterfaceIdentifiers`, which is passed through from Machine initialization to VM objects (and VM objects shared), the latter of which we can use as part of registering the oximeter producer. * A new stats module for collecting network_interface metrics. - In `to_samples` we generate multiple network interface targets based on vnics per instance, appropriately updating the `interface_id`, which is tracked in `interface_ids`. * Move kstat_types out of virtual machine-specific stats and use its mocking for other stats tests Dependencies ------------ - [ ] oxidecomputer/omicron#6414 - [ ] https://code.illumos.org/c/illumos-gate/+/3630
zeeshanlakhani
added a commit
that referenced
this issue
Aug 26, 2024
Overview ======== This is related to the ongoing work in [plumbing instance/guest metrics](#742) through to an oximeter producer in propolis. Includes: * An update to `NetworkInterfaceRequest` to include an interface_id, which is part of the request on the [sled instance in Omicron](oxidecomputer/omicron#6414). * Within initialization, with concrete types, we create interface_ids mapping nic UUIDs => `minor` number of the device instance of viona. - The device instance number matches the Kstat we'll look for. - We track this mapping via a type alias `InterfaceIdentifiers`, which is passed through from Machine initialization to VM objects (and VM objects shared), the latter of which we can use as part of registering the oximeter producer. * A new stats module for collecting network_interface metrics. - In `to_samples` we generate multiple network interface targets based on vnics per instance, appropriately updating the `interface_id`, which is tracked in `interface_ids`. * Move kstat_types out of virtual machine-specific stats and use its mocking for other stats tests Dependencies ------------ - [ ] oxidecomputer/omicron#6414 - [ ] https://code.illumos.org/c/illumos-gate/+/3630
zeeshanlakhani
added a commit
that referenced
this issue
Aug 26, 2024
Overview ======== This is related to the ongoing work in [plumbing instance/guest metrics](#742) through to an oximeter producer in propolis. Includes: * An update to `NetworkInterfaceRequest` to include an interface_id, which is part of the request on the [sled instance in Omicron](oxidecomputer/omicron#6414). * Within initialization, with concrete types, we create interface_ids mapping nic UUIDs => `minor` number of the device instance of viona. - The device instance number matches the Kstat we'll look for. - We track this mapping via a type alias `InterfaceIdentifiers`, which is passed through from Machine initialization to VM objects (and VM objects shared), the latter of which we can use as part of registering the oximeter producer. * A new stats module for collecting network_interface metrics. - In `to_samples` we generate multiple network interface targets based on vnics per instance, appropriately updating the `interface_id`, which is tracked in `interface_ids`. * Move kstat_types out of virtual machine-specific stats and use its mocking for other stats tests Dependencies ------------ - [ ] oxidecomputer/omicron#6414 - [ ] https://code.illumos.org/c/illumos-gate/+/3630
zeeshanlakhani
added a commit
that referenced
this issue
Aug 26, 2024
Overview ======== This is related to the ongoing work in [plumbing instance/guest metrics](#742) through to an oximeter producer in propolis. Includes: * An update to `NetworkInterfaceRequest` to include an interface_id, which is part of the request on the [sled instance in Omicron](oxidecomputer/omicron#6414). * Within initialization, with concrete types, we create interface_ids mapping nic UUIDs => `minor` number of the device instance of viona. - The device instance number matches the Kstat we'll look for. - We track this mapping via a type alias `InterfaceIdentifiers`, which is passed through from Machine initialization to VM objects (and VM objects shared), the latter of which we can use as part of registering the oximeter producer. * A new stats module for collecting network_interface metrics. - In `to_samples` we generate multiple network interface targets based on vnics per instance, appropriately updating the `interface_id`, which is tracked in `interface_ids`. * Move kstat_types out of virtual machine-specific stats and use its mocking for other stats tests Dependencies ------------ - [ ] oxidecomputer/omicron#6414 - [ ] https://code.illumos.org/c/illumos-gate/+/3630
zeeshanlakhani
added a commit
that referenced
this issue
Aug 26, 2024
Overview ======== This is related to the ongoing work in [plumbing instance/guest metrics](#742) through to an oximeter producer in propolis. Includes: * An update to `NetworkInterfaceRequest` to include an interface_id, which is part of the request on the [sled instance in Omicron](oxidecomputer/omicron#6414). * Within initialization, with concrete types, we create interface_ids mapping nic UUIDs => `minor` number of the device instance of viona. - The device instance number matches the Kstat we'll look for. - We track this mapping via a type alias `InterfaceIdentifiers`, which is passed through from Machine initialization to VM objects (and VM objects shared), the latter of which we can use as part of registering the oximeter producer. * A new stats module for collecting network_interface metrics. - In `to_samples` we generate multiple network interface targets based on vnics per instance, appropriately updating the `interface_id`, which is tracked in `interface_ids`. * Move kstat_types out of virtual machine-specific stats and use its mocking for other stats tests Dependencies ------------ - [ ] oxidecomputer/omicron#6414 - [ ] https://code.illumos.org/c/illumos-gate/+/3630
zeeshanlakhani
added a commit
that referenced
this issue
Aug 27, 2024
Overview ======== This is related to the ongoing work in [plumbing instance/guest metrics](#742) through to an oximeter producer in propolis. Includes: * An update to `NetworkInterfaceRequest` to include an interface_id, which is part of the request on the [sled instance in Omicron](oxidecomputer/omicron#6414). * Within initialization, with concrete types, we create interface_ids mapping nic UUIDs => `minor` number of the device instance of viona. - The device instance number matches the Kstat we'll look for. - We track this mapping via a type alias `InterfaceIdentifiers`, which is passed through from Machine initialization to VM objects (and VM objects shared), the latter of which we can use as part of registering the oximeter producer. * A new stats module for collecting network_interface metrics. - In `to_samples` we generate multiple network interface targets based on vnics per instance, appropriately updating the `interface_id`, which is tracked in `interface_ids`. * Move kstat_types out of virtual machine-specific stats and use its mocking for other stats tests Dependencies ------------ - [ ] oxidecomputer/omicron#6414 - [ ] https://code.illumos.org/c/illumos-gate/+/3630
zeeshanlakhani
added a commit
that referenced
this issue
Aug 27, 2024
Overview ======== This is related to the ongoing work in [plumbing instance/guest metrics](#742) through to an oximeter producer in propolis. Includes: * An update to `NetworkInterfaceRequest` to include an interface_id, which is part of the request on the [sled instance in Omicron](oxidecomputer/omicron#6414). * Within initialization, with concrete types, we create interface_ids mapping nic UUIDs => `minor` number of the device instance of viona. - The device instance number matches the Kstat we'll look for. - We track this mapping via a type alias `InterfaceIdentifiers`, which is passed through from Machine initialization to VM objects (and VM objects shared), the latter of which we can use as part of registering the oximeter producer. * A new stats module for collecting network_interface metrics. - In `to_samples` we generate multiple network interface targets based on vnics per instance, appropriately updating the `interface_id`, which is tracked in `interface_ids`. * Move kstat_types out of virtual machine-specific stats and use its mocking for other stats tests Dependencies ------------ - [X] oxidecomputer/omicron#6414 - [X] https://code.illumos.org/c/illumos-gate/+/3630
zeeshanlakhani
added a commit
to oxidecomputer/omicron
that referenced
this issue
Aug 28, 2024
This is related to the ongoing work in [plumbing instance/guest metrics](oxidecomputer/propolis#742) through to an oximeter producer in propolis. Includes: - Rewriting the comment for `trait Target` in Oximeter to not being prepped for deprecation, as it does come in handy for custom needs - The main differentiating field among instance network information here is `interface_id`, which is exposed to propolis via the client's `NetworkInterfaceRequest`. We currently match the `nic.slot` to the `port.slot` to pass which of the requested nics `interface_id` uuids are part of the request.
zeeshanlakhani
added a commit
to oxidecomputer/omicron
that referenced
this issue
Aug 28, 2024
This is related to the ongoing work in [plumbing instance/guest metrics](oxidecomputer/propolis#742) through to an oximeter producer in propolis. Includes: - Rewriting the comment for `trait Target` in Oximeter to not being prepped for deprecation, as it does come in handy for custom needs - The main differentiating field among instance network information here is `interface_id`, which is exposed to propolis via the client's `NetworkInterfaceRequest`. We currently match the `nic.slot` to the `port.slot` to pass which of the requested nics `interface_id` uuids are part of the request.
zeeshanlakhani
added a commit
that referenced
this issue
Aug 28, 2024
Overview ======== This is related to the ongoing work in [plumbing instance/guest metrics](#742) through to an oximeter producer in propolis. Includes: * An update to `NetworkInterfaceRequest` to include an interface_id, which is part of the request on the [sled instance in Omicron](oxidecomputer/omicron#6414). * Within initialization, with concrete types, we create interface_ids mapping nic UUIDs => `minor` number of the device instance of viona. - The device instance number matches the Kstat we'll look for. - We track this mapping via a type alias `InterfaceIdentifiers`, which is passed through from Machine initialization to VM objects (and VM objects shared), the latter of which we can use as part of registering the oximeter producer. * A new stats module for collecting network_interface metrics. - In `to_samples` we generate multiple network interface targets based on vnics per instance, appropriately updating the `interface_id`, which is tracked in `interface_ids`. * Move kstat_types out of virtual machine-specific stats and use its mocking for other stats tests Dependencies ------------ - [X] oxidecomputer/omicron#6414 - [X] https://code.illumos.org/c/illumos-gate/+/3630
zeeshanlakhani
added a commit
that referenced
this issue
Aug 28, 2024
Overview ======== This is related to the ongoing work in [plumbing instance/guest metrics](#742) through to an oximeter producer in propolis. Includes: * An update to `NetworkInterfaceRequest` to include an interface_id, which is part of the request on the [sled instance in Omicron](oxidecomputer/omicron#6414). * Within initialization, with concrete types, we create interface_ids mapping nic UUIDs => `minor` number of the device instance of viona. - The device instance number matches the Kstat we'll look for. - We track this mapping via a type alias `InterfaceIdentifiers`, which is passed through from Machine initialization to VM objects (and VM objects shared), the latter of which we can use as part of registering the oximeter producer. * A new stats module for collecting network_interface metrics. - In `to_samples` we generate multiple network interface targets based on vnics per instance, appropriately updating the `interface_id`, which is tracked in `interface_ids`. * Move kstat_types out of virtual machine-specific stats and use its mocking for other stats tests Dependencies ------------ - [X] oxidecomputer/omicron#6414 - [X] https://code.illumos.org/c/illumos-gate/+/3630
zeeshanlakhani
added a commit
that referenced
this issue
Aug 28, 2024
Overview ======== This is related to the ongoing work in [plumbing instance/guest metrics](#742) through to an oximeter producer in propolis. Includes: * An update to `NetworkInterfaceRequest` to include an interface_id, which is part of the request on the [sled instance in Omicron](oxidecomputer/omicron#6414). * Within initialization, with concrete types, we create interface_ids mapping nic UUIDs => `minor` number of the device instance of viona. - The device instance number matches the Kstat we'll look for. - We track this mapping via a type alias `InterfaceIdentifiers`, which is passed through from Machine initialization to VM objects (and VM objects shared), the latter of which we can use as part of registering the oximeter producer. * A new stats module for collecting network_interface metrics. - In `to_samples` we generate multiple network interface targets based on vnics per instance, appropriately updating the `interface_id`, which is tracked in `interface_ids`. * Move kstat_types out of virtual machine-specific stats and use its mocking for other stats tests Dependencies ------------ - [X] oxidecomputer/omicron#6414 - [X] https://code.illumos.org/c/illumos-gate/+/3630
zeeshanlakhani
added a commit
that referenced
this issue
Aug 28, 2024
Overview ======== This is related to the ongoing work in [plumbing instance/guest metrics](#742) through to an oximeter producer in propolis. Includes: * An update to `NetworkInterfaceRequest` to include an interface_id, which is part of the request on the [sled instance in Omicron](oxidecomputer/omicron#6414). * Within initialization, with concrete types, we create interface_ids mapping nic UUIDs => `minor` number of the device instance of viona. - The device instance number matches the Kstat we'll look for. - We track this mapping via a type alias `InterfaceIdentifiers`, which is passed through from Machine initialization to VM objects (and VM objects shared), the latter of which we can use as part of registering the oximeter producer. * A new stats module for collecting network_interface metrics. - In `to_samples` we generate multiple network interface targets based on vnics per instance, appropriately updating the `interface_id`, which is tracked in `interface_ids`. * Move kstat_types out of virtual machine-specific stats and use its mocking for other stats tests Dependencies ------------ - [X] oxidecomputer/omicron#6414 - [X] https://code.illumos.org/c/illumos-gate/+/3630
zeeshanlakhani
added a commit
that referenced
this issue
Aug 28, 2024
Overview ======== This is related to the ongoing work in [plumbing instance/guest metrics](#742) through to an oximeter producer in propolis. Includes: * An update to `NetworkInterfaceRequest` to include an interface_id, which is part of the request on the [sled instance in Omicron](oxidecomputer/omicron#6414). * Within initialization, with concrete types, we create interface_ids mapping nic UUIDs => `minor` number of the device instance of viona. - The device instance number matches the Kstat we'll look for. - We track this mapping via a type alias `InterfaceIdentifiers`, which is passed through from Machine initialization to VM objects (and VM objects shared), the latter of which we can use as part of registering the oximeter producer. * A new stats module for collecting network_interface metrics. - In `to_samples` we generate multiple network interface targets based on vnics per instance, appropriately updating the `interface_id`, which is tracked in `interface_ids`. * Move kstat_types out of virtual machine-specific stats and use its mocking for other stats tests Dependencies ------------ - [X] oxidecomputer/omicron#6414 - [X] https://code.illumos.org/c/illumos-gate/+/3630
zeeshanlakhani
added a commit
that referenced
this issue
Aug 29, 2024
Overview ======== This is related to the ongoing work in [plumbing instance/guest metrics](#742) through to an oximeter producer in propolis. Includes: * An update to `NetworkInterfaceRequest` to include an interface_id, which is part of the request on the [sled instance in Omicron](oxidecomputer/omicron#6414). * Within initialization, with concrete types, we create interface_ids mapping nic UUIDs => `minor` number of the device instance of viona. - The device instance number matches the Kstat we'll look for. - We track this mapping via a type alias `InterfaceIdentifiers`, which is passed through from Machine initialization to VM objects (and VM objects shared), the latter of which we can use as part of registering the oximeter producer. * A new stats module for collecting network_interface metrics. - In `to_samples` we generate multiple network interface targets based on vnics per instance, appropriately updating the `interface_id`, which is tracked in `interface_ids`. * Move kstat_types out of virtual machine-specific stats and use its mocking for other stats tests Dependencies ------------ - [X] oxidecomputer/omicron#6414 - [X] https://code.illumos.org/c/illumos-gate/+/3630
zeeshanlakhani
added a commit
that referenced
this issue
Aug 29, 2024
Overview ======== This is related to the ongoing work in [plumbing instance/guest metrics](#742) through to an oximeter producer in propolis. Includes: * An update to `NetworkInterfaceRequest` to include an interface_id, which is part of the request on the [sled instance in Omicron](oxidecomputer/omicron#6414). * Within initialization, with concrete types, we create interface_ids mapping nic UUIDs => `minor` number of the device instance of viona. - The device instance number matches the Kstat we'll look for. - We track this mapping via a type alias `InterfaceIdentifiers`, which is passed through from Machine initialization to VM objects (and VM objects shared), the latter of which we can use as part of registering the oximeter producer. * A new stats module for collecting network_interface metrics. - In `to_samples` we generate multiple network interface targets based on vnics per instance, appropriately updating the `interface_id`, which is tracked in `interface_ids`. * Move kstat_types out of virtual machine-specific stats and use its mocking for other stats tests Dependencies ------------ - [X] oxidecomputer/omicron#6414 - [X] https://code.illumos.org/c/illumos-gate/+/3630
zeeshanlakhani
added a commit
to oxidecomputer/omicron
that referenced
this issue
Aug 29, 2024
This is related to the ongoing work in [plumbing instance/guest metrics](oxidecomputer/propolis#742) through to an oximeter producer in propolis. Includes: - Rewriting the comment for `trait Target` in Oximeter to not being prepped for deprecation, as it does come in handy for custom needs - The main differentiating field among instance network information here is `interface_id`, which is exposed to propolis via the client's `NetworkInterfaceRequest`. We currently match the `nic.slot` to the `port.slot` to pass which of the requested nics `interface_id` uuids are part of the request.
zeeshanlakhani
added a commit
to oxidecomputer/omicron
that referenced
this issue
Sep 3, 2024
This is related to the ongoing work in [plumbing instance/guest metrics](oxidecomputer/propolis#742) through to an oximeter producer in propolis. Includes: - Rewriting the comment for `trait Target` in Oximeter to not being prepped for deprecation, as it does come in handy for custom needs - The main differentiating field among instance network information here is `interface_id`, which is exposed to propolis via the client's `NetworkInterfaceRequest`. We currently match the `nic.slot` to the `port.slot` to pass which of the requested nics `interface_id` uuids are part of the request. ## Dependencies - [X] Propolis => oxidecomputer/propolis#747
zeeshanlakhani
added a commit
that referenced
this issue
Sep 3, 2024
Overview ======== This is related to the ongoing work in [plumbing instance/guest metrics](#742) through to an oximeter producer in propolis. Includes: * An update to `NetworkInterfaceRequest` to include an interface_id, which is part of the request on the [sled instance in Omicron](oxidecomputer/omicron#6414). * Within initialization, with concrete types, we create interface_ids mapping nic UUIDs => `minor` number of the device instance of viona. This is done as a Vec because it is limited in size (typically the MAX networks interfaces per VM). - The device instance number matches the Kstat we'll look for. - We track this mapping via a type alias `NetworkInterfaceIds` which is then passed to a `track_network_interfaces_kstats` function which is part of `initialize_network_devices` and adds the target to the kstat sampler. * A new stats module for collecting network_interface metrics. - In `to_samples` we generate multiple network interface targets based on vnics per instance, appropriately updating the `interface_id`, which comes from the network interface identifiers updated in network device initialization. * Move kstat_types out of virtual machine-specific stats and use its mocking for other stats tests * move stats.rs to stats/mod.rs Dependencies ------------ - [X] oxidecomputer/omicron#6414 - [X] https://code.illumos.org/c/illumos-gate/+/3630 Thanks to @pfmooney for exposing kstats directly through the viona (VirtIO-Net) driver as part of https://code.illumos.org/c/illumos-gate/+/3630. This work would be nothing without his!
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
instance-network-interface.toml
schema and addition of interface_id/nic_id toNetworkInterfaceRequest
=> [network metrics] instance network interface schema omicron#6414viona
driver expose kstats directly (related: https://code.illumos.org/c/illumos-gate/+/3630, cc @pfmooney )instance
stats (in addition to current sampler) => [network metrics] instance network interface metrics #747The text was updated successfully, but these errors were encountered: