mirror of
https://github.com/netbox-community/netbox.git
synced 2026-01-11 21:10:29 +01:00
Add utilization metric to Patch Panels #9172
Closed
opened 2025-12-29 20:46:32 +01:00 by adam
·
8 comments
No Branch/Tag Specified
main
update-changelog-comments-docs
feature-removal-issue-type
20911-dropdown
20239-plugin-menu-classes-mutable-state
21097-graphql-id-lookups
feature
fix_module_substitution
20923-dcim-templates
20044-elevation-stuck-lightmode
feature-ip-prefix-link
v4.5-beta1-release
20068-import-moduletype-attrs
20766-fix-german-translation-code-literals
20378-del-script
7604-filter-modifiers-v3
circuit-swap
12318-case-insensitive-uniqueness
20637-improve-device-q-filter
20660-script-load
19724-graphql
20614-update-ruff
14884-script
02496-max-page
19720-macaddress-interface-generic-relation
19408-circuit-terminations-export-templates
20203-openapi-check
fix-19669-api-image-download
7604-filter-modifiers
19275-fixes-interface-bulk-edit
fix-17794-get_field_value_return_list
11507-show-aggregate-and-rir-on-api
9583-add_column_specific_search_field_to_tables
v4.5.0
v4.4.10
v4.4.9
v4.5.0-beta1
v4.4.8
v4.4.7
v4.4.6
v4.4.5
v4.4.4
v4.4.3
v4.4.2
v4.4.1
v4.4.0
v4.3.7
v4.4.0-beta1
v4.3.6
v4.3.5
v4.3.4
v4.3.3
v4.3.2
v4.3.1
v4.3.0
v4.2.9
v4.3.0-beta2
v4.2.8
v4.3.0-beta1
v4.2.7
v4.2.6
v4.2.5
v4.2.4
v4.2.3
v4.2.2
v4.2.1
v4.2.0
v4.1.11
v4.1.10
v4.1.9
v4.1.8
v4.2-beta1
v4.1.7
v4.1.6
v4.1.5
v4.1.4
v4.1.3
v4.1.2
v4.1.1
v4.1.0
v4.0.11
v4.0.10
v4.0.9
v4.1-beta1
v4.0.8
v4.0.7
v4.0.6
v4.0.5
v4.0.3
v4.0.2
v4.0.1
v4.0.0
v3.7.8
v3.7.7
v4.0-beta2
v3.7.6
v3.7.5
v4.0-beta1
v3.7.4
v3.7.3
v3.7.2
v3.7.1
v3.7.0
v3.6.9
v3.6.8
v3.6.7
v3.7-beta1
v3.6.6
v3.6.5
v3.6.4
v3.6.3
v3.6.2
v3.6.1
v3.6.0
v3.5.9
v3.6-beta2
v3.5.8
v3.6-beta1
v3.5.7
v3.5.6
v3.5.5
v3.5.4
v3.5.3
v3.5.2
v3.5.1
v3.5.0
v3.4.10
v3.4.9
v3.5-beta2
v3.4.8
v3.5-beta1
v3.4.7
v3.4.6
v3.4.5
v3.4.4
v3.4.3
v3.4.2
v3.4.1
v3.4.0
v3.3.10
v3.3.9
v3.4-beta1
v3.3.8
v3.3.7
v3.3.6
v3.3.5
v3.3.4
v3.3.3
v3.3.2
v3.3.1
v3.3.0
v3.2.9
v3.2.8
v3.3-beta2
v3.2.7
v3.3-beta1
v3.2.6
v3.2.5
v3.2.4
v3.2.3
v3.2.2
v3.2.1
v3.2.0
v3.1.11
v3.1.10
v3.2-beta2
v3.1.9
v3.2-beta1
v3.1.8
v3.1.7
v3.1.6
v3.1.5
v3.1.4
v3.1.3
v3.1.2
v3.1.1
v3.1.0
v3.0.12
v3.0.11
v3.0.10
v3.1-beta1
v3.0.9
v3.0.8
v3.0.7
v3.0.6
v3.0.5
v3.0.4
v3.0.3
v3.0.2
v3.0.1
v3.0.0
v2.11.12
v3.0-beta2
v2.11.11
v2.11.10
v3.0-beta1
v2.11.9
v2.11.8
v2.11.7
v2.11.6
v2.11.5
v2.11.4
v2.11.3
v2.11.2
v2.11.1
v2.11.0
v2.10.10
v2.10.9
v2.11-beta1
v2.10.8
v2.10.7
v2.10.6
v2.10.5
v2.10.4
v2.10.3
v2.10.2
v2.10.1
v2.10.0
v2.9.11
v2.10-beta2
v2.9.10
v2.10-beta1
v2.9.9
v2.9.8
v2.9.7
v2.9.6
v2.9.5
v2.9.4
v2.9.3
v2.9.2
v2.9.1
v2.9.0
v2.9-beta2
v2.8.9
v2.9-beta1
v2.8.8
v2.8.7
v2.8.6
v2.8.5
v2.8.4
v2.8.3
v2.8.2
v2.8.1
v2.8.0
v2.7.12
v2.7.11
v2.7.10
v2.7.9
v2.7.8
v2.7.7
v2.7.6
v2.7.5
v2.7.4
v2.7.3
v2.7.2
v2.7.1
v2.7.0
v2.6.12
v2.6.11
v2.6.10
v2.6.9
v2.7-beta1
Solcon-2020-01-06
v2.6.8
v2.6.7
v2.6.6
v2.6.5
v2.6.4
v2.6.3
v2.6.2
v2.6.1
v2.6.0
v2.5.13
v2.5.12
v2.6-beta1
v2.5.11
v2.5.10
v2.5.9
v2.5.8
v2.5.7
v2.5.6
v2.5.5
v2.5.4
v2.5.3
v2.5.2
v2.5.1
v2.5.0
v2.4.9
v2.5-beta2
v2.4.8
v2.5-beta1
v2.4.7
v2.4.6
v2.4.5
v2.4.4
v2.4.3
v2.4.2
v2.4.1
v2.4.0
v2.3.7
v2.4-beta1
v2.3.6
v2.3.5
v2.3.4
v2.3.3
v2.3.2
v2.3.1
v2.3.0
v2.2.10
v2.3-beta2
v2.2.9
v2.3-beta1
v2.2.8
v2.2.7
v2.2.6
v2.2.5
v2.2.4
v2.2.3
v2.2.2
v2.2.1
v2.2.0
v2.1.6
v2.2-beta2
v2.1.5
v2.2-beta1
v2.1.4
v2.1.3
v2.1.2
v2.1.1
v2.1.0
v2.0.10
v2.1-beta1
v2.0.9
v2.0.8
v2.0.7
v2.0.6
v2.0.5
v2.0.4
v2.0.3
v2.0.2
v2.0.1
v2.0.0
v2.0-beta3
v1.9.6
v1.9.5
v2.0-beta2
v1.9.4-r1
v1.9.3
v2.0-beta1
v1.9.2
v1.9.1
v1.9.0-r1
v1.8.4
v1.8.3
v1.8.2
v1.8.1
v1.8.0
v1.7.3
v1.7.2-r1
v1.7.1
v1.7.0
v1.6.3
v1.6.2-r1
v1.6.1-r1
1.6.1
v1.6.0
v1.5.2
v1.5.1
v1.5.0
v1.4.2
v1.4.1
v1.4.0
v1.3.2
v1.3.1
v1.3.0
v1.2.2
v1.2.1
v1.2.0
v1.1.0
v1.0.7-r1
v1.0.7
v1.0.6
v1.0.5
v1.0.4
v1.0.3-r1
v1.0.3
1.0.0
Labels
Clear labels
beta
breaking change
complexity: high
complexity: low
complexity: medium
needs milestone
netbox
pending closure
plugin candidate
pull-request
severity: high
severity: low
severity: medium
status: accepted
status: backlog
status: blocked
status: duplicate
status: needs owner
status: needs triage
status: revisions needed
status: under review
topic: GraphQL
topic: Internationalization
topic: OpenAPI
topic: UI/UX
topic: cabling
topic: event rules
topic: htmx navigation
topic: industrialization
topic: migrations
topic: plugins
topic: scripts
topic: templating
topic: testing
type: bug
type: deprecation
type: documentation
type: feature
type: housekeeping
type: translation
Mirrored from GitHub Pull Request
No Label
type: feature
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/netbox#9172
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @xiSlickix on GitHub (Jan 30, 2024).
NetBox version
v3.6.6
Feature type
New functionality
Proposed functionality
Similar to the Power and Space Utilization metrics tracks for the power consumption and consumed rack units within a cabinet, I would like to propose the Front and Rear ports on a patch panel track how many ports have been "used" or how many are "available", etc. The two bar graphs (Front and Rear) could be displayed on the "Device" tab for the given patch panel.
Separate Front and Rear fields could be automatically generated based on the type (RJ45, Fiber, MPO, etc.) of patch panel installed in a given cabinet. The summation of each individual patch panel's available capacity could be rolled up at the cabinet level where RU Space and Power are currently displayed today. (The cabinet level roll up may be better suited as its own Feature Request.)
Use case
This feature would assist NetBox users in planning future cable capacity upgrades within a cabinet. This could also assist users in notifying server owners that adding additional cables to their servers could become problematic as capacity dwindles, helping avoid implementation failures.
Additionally, if the organization a user works for has a policy related to keeping at least "x" percent of ports available at any given time, this metric could be used as a trigger to order additional structured cabling to be installed, etc.
Database changes
Unsure. Likely two new fields that are each derived from the number of consumed ports on a given side (front or rear) divided by the number of ports available on a given side. This would allow for a report to be generated that shows the port utilization for every patch panel in NetBox.
External dependencies
None.
@sleepinggenius2 commented on GitHub (Jan 31, 2024):
How do you propose handling modular patch panels, where not all of the modules have been populated yet? We have some that can take 12F or 24F cassettes depending on whether you are using SC or LC connectors, so that complicates utilization calculations. We would want to be able to distinguish between "I'm almost out of available ports and I need to install a new module" or "I'm almost out of available ports and I need to install a new panel."
This also assumes that all the rear ports connect to the same place. We definitely have split panels where some ports are wired to a cable that goes to one location and other ports go to a different location (typically an east/west kind of situation), so a strict panel utilization could introduce additional confusion. Your cabinet-level roll-up would be even more confusing, as most data centers I've seen have centralized racks for aggregating fiber panels to facilitate cross-connects, so rolling up the utilization for all those panels going to all different locations wouldn't be particularly useful.
@mrtn-r commented on GitHub (Feb 2, 2024):
You first need a metric for what a patch port is.
Netbox is quite modular, so it makes no sense to tie this down too much, i'd rather have a general "Mark as utilized when connected"-field which would work with switches too.
IMHO you could just use Tags (for including/excluding ports) and export templates right now to generate overviews
@xiSlickix commented on GitHub (Feb 2, 2024):
Perhaps the better term I should use is "Installed Utilization". If you have a fiber panel with cassettes, at the fiber patch panel level, you could show your utilization of the cassettes installed divided by the total available cassette modules. This would give you your cassette capacity. Then, based on the variety and quantity of cassettes installed (similar to server modules with NICs) you could then give an "Installed Utilization" of the consumed ports.
Looking to be able to generate actionable information such as:
"If we go past 80% installed capacity, order another module installed in this month's datacenter capacity planning meeting."
"If we have consumed more than 90% of the modules for cassettes, order another fiber housing patch panel (and perhaps rack it based on rack capacity utilization, etc.)"
So we also have split panels (1-24 go from Rack A to Rack B 1-24, 25-48 Rack A could go to Rack C 1-24 for a high-level example).
We often have to go east - west in a given row to an aggregation switch or aggregation patch panel to get from a server row to a switch row. The rack level capacity could show me that while I could get a 3u server in Rack B or Rack C (assuming my switch is in A) Rack B may only have 2 patch ports available to get to rack A, while Rack C might have 6 available for the same task. Individual Patch Panel utilization is the more actionable information necessary for this, but the Rack level patch panel utilization might help a non-datacenter worker realize those how full of cables the cabinet is before asking for a server to be racked..
... Just thoughts.
@coloHsq commented on GitHub (Feb 5, 2024):
Hi everyone, I've actually done something similar, see #11633 for reference.
For my use case, aggregating on devices role in the same rack is more practical, instead of knowing how many sc or lc free ports I have, I prefer to know how many multi mode or copper ports I have.
I don't gather much details about the difference between ports of the same "role", but since we use EOR design, once i know there's "4 free ports on 24", i know that a rack have 2 patch panels, each with 12 ports that goes on loop A/B, and most likely there's 2 free ports on each side.
Anyway, I've started working on a much more generic implementation that could probably be used for both use cases (this and the other fr).
If you have some more ideas, let's discuss them.
@sleepinggenius2 commented on GitHub (Feb 5, 2024):
I guess a lot of this has to do with how your company handles capacity planning. For us, it's more useful for the planning teams to get periodic reports on the specific equipment that they are responsible for, tailored to their specific queries. That way we can calculate burn rate between successive reports, add additional inputs, like queued orders for a given site, and they can proactively add capacity as needed. If, in contrast, you have a more reactive model where an engineer is looking each time an order comes across to find somewhere with capacity and that triggers a notification to the planning team, then I can see where this approach is more useful. Capacity planning is absolutely critical to doing business, but either way, I'm not sure that there is a one-size-fits-all approach to this problem. I do see this more as a reporting thing though and not something I would want to incur additional overhead for every time the device table is loaded. @coloHsq, I would be interested to see this as a plugin that would allow such a reporting interface and potentially allow end users to easily customize such reporting to their needs without an admin always having to write actual Report classes each time. A simple reporting interface for end users to develop ad-hoc or repeatable, saved reports is actually one of the things that I miss most from our old system with the transition into NetBox.
@coloHsq commented on GitHub (Feb 21, 2024):
Hi everyone, I've finally managed to put togheter a plugin that i think would be flexible enough.
Here it is : https://github.com/coloHsq/aggregatron.git
@PieterL75 commented on GitHub (Feb 21, 2024):
This FR might help.
https://github.com/netbox-community/netbox/issues/14205
A proposal to allow custom jinja templates for tech views
@jeffgdotorg commented on GitHub (Apr 3, 2024):
Thank you for submitting your idea. I see you already started down the road of building a plugin that scratches your itch 👏
Please reach out via our mailing list or Slack channel if you need any assistance. There's a
#netbox-plugin-developmentchannel on the Slack that might be of particular interest.