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

Simplify the internal data structures for resources #575

Open
andy-maier opened this issue Aug 2, 2024 · 0 comments
Open

Simplify the internal data structures for resources #575

andy-maier opened this issue Aug 2, 2024 · 0 comments
Assignees
Milestone

Comments

@andy-maier
Copy link
Member

andy-maier commented Aug 2, 2024

Currently, the exporter has multiple ways it maintains the resource objects.
Redesign the internal data structures for more simplicity.

Goals are:

  • Store each resource only once.
    • The data structure must support using the same single resource object for all use cases, e.g. use in labels, in property metric values of the resource itself and also for metrics of other resources.
    • Lookup by URI is needed (the metric service references resources by URI)
    • Lookup by name is needed, e.g. when CPC filters are specified on the metric groups (see issue Limit CPCs the exporter exports #323)
  • Streamline the storing of data used for conditions
    • HMC version, HMC API version, HMC features
    • For each managed CPC: SE version, SE features, CPC operational mode ?, CPC status ?
  • Reduce startup time. Specifically:
    • Fetch only resources that are needed, given the enablement of metric groups. The current code fetches e.g. LPARs even when the LPAR resource metric group is disabled (see issue Fetch thread fetches LPARs even when lpar-resource is disabled #566)
    • Fetch each resource only once. The current code fetches some resources multiple times (e.g. CPC).
    • Consider using the inventory service instead of listing resources or retrieving single resources. This may drive changes to the auto-update concept of the zhmcclient library.
    • The "too many threads" issue needs to be avoided (max 25 open requests per user) (see issue Errors when starting to perform the first collection #539)
    • Consider the need to be selective by CPC, and fetch only resources on the enabled CPCs (see issue Limit CPCs the exporter exports #323). Consider that different metric groups may have different sets of CPCs enabled.
  • Support automatic discovery of new and ceased resources (see issue Automatically detect new resources #227).
  • Support automatic discovery when managed CPCs are added or removed.
  • Be prepared for a future support of using redundant HMCs (they may have different HMC version, HMC API version, HMC features).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant