GithubHelp home page GithubHelp logo

Comments (13)

jkroepke avatar jkroepke commented on May 12, 2024 1

Will just finish the work on the other issues before looking further into this.

I would prefer to split the Windows integration into different, smaller PRs. At minimum a PR for each dashboard. Let me know, when I can start with the cluster dashboard.

from grafana-dashboards-kubernetes.

dotdc avatar dotdc commented on May 12, 2024 1

@jkroepke The other issues/PRs are done, so you can start working on this whenever you want.

from grafana-dashboards-kubernetes.

jkroepke avatar jkroepke commented on May 12, 2024 1

Maybe, no idea yet. I may have to ask at Grafana slack.

from grafana-dashboards-kubernetes.

dotdc avatar dotdc commented on May 12, 2024 1

Can we manage all the cases using combined queries?

If it's the case, it might be better to go for the combined queries with comments to have consistency.
Here's an example :

image

What do you think ?

from grafana-dashboards-kubernetes.

dotdc avatar dotdc commented on May 12, 2024

Hi @jkroepke,

I'm not totally against it, but I have a few doubts...

Here are a few questions to start the discussion:

  • If I understand correctly, you have clusters with both GNU/Linux and Windows node pools.
    Could you share your use-case? (just curious)
  • Which dashboard(s) are you planning to add Windows support for?
  • Why do you think having the queries in here would be better than having them in separate dashboards?
  • Will there be any OS specific panels? And how do you plan to manage them (if any)?
  • After the initial work, would you be able to help Windows users if they have issues related to your change?

If anyone is also using Windows hosts, feel free to jump in the discussion with your thoughts!

from grafana-dashboards-kubernetes.

jkroepke avatar jkroepke commented on May 12, 2024

If I understand correctly, you have clusters with both GNU/Linux and Windows node pools.
Could you share your use-case? (just curious)

Sure! The Kubernetes Control Plane does not support Windows. I have to run Linux Node (e.g. for CoreDNS, ArgoCD) and Windows Node Pools for Application (Customer runs dotNET Application)

On Azure, a Kubernetes managed Services requires at-least one Linux Node and you can add additional Windows nodes. We are also quite common, that customers wants to use Standard infrastructure components like Redis, Solr or elasticsearch which are not running on Windows node. In general, we avoid Windows nodes as much as possible. Hybrid OS clusters are common, because mono-Windows cluster can't be exists.

Which dashboard(s) are you planning to add Windows support for?

Cluster, Namespace, Node, Pod

Why do you think having the queries in here would be better than having them in separate dashboards?

We have namespace which contains windows and linux containers. My personal opinion is that one dashboard provides a better user expericence.

Since kube-state-metrics provides request/limits for pods on any OS, Windows Pods are already included Pod CPU/Memory Request/Limits panels, but excluded on the usage panel. For separate dashboards, Requests/Limits from Windows Pods should be excluded then.

Example Panel: Real (linux only), Requests/Limits (any OS)

image

Will there be any OS specific panels?

No, except Windows is not providing metrics, some panels will be Linux specific. But I do not plan to add new panels.

After the initial work, would you be able to help Windows users if they have issues related to your change?

Yes, because out company has an upstream first culture. If other users have a bug, we may also have the bug, too. Of course, I will have.

The good thing is that the dashboard are providing only basic metrics. I don't plan to engineer the queries on my own. kubernetes-mixin provides some rules for windows which I will use as base. for the panel. I won't add a dependency against the kubernetes-mixin recording rules.


Since I expect some large changes with #15, I plan to start after the cluster variable work is finished.

from grafana-dashboards-kubernetes.

dotdc avatar dotdc commented on May 12, 2024

Hi @jkroepke,
I'm fine with the idea, we can try to add Windows support, as soon as it doesn't impact the experience on Linux.
Will just finish the work on the other issues before looking further into this.

from grafana-dashboards-kubernetes.

jkroepke avatar jkroepke commented on May 12, 2024

Hey @dotdc ,

In #103, I tired to split Linux and Windows queries when ever it was possible. Did you prefer this kind of solution or should we prefer more complex query as seen on the CPU by namespace queries?

from grafana-dashboards-kubernetes.

dotdc avatar dotdc commented on May 12, 2024

Hi @jkroepke,
I think I prefer the split version, but if it's not possible to have that everywhere, maybe go for the other one to have consistency.
What do you think ?

from grafana-dashboards-kubernetes.

jkroepke avatar jkroepke commented on May 12, 2024

What do you think ?

The combind solution (one query for Windows and OS) results into very complex and un-understandable queries. Due complexity, external users may avoid to contribute improvement or they may destroy the Windows support by accident

from grafana-dashboards-kubernetes.

dotdc avatar dotdc commented on May 12, 2024

Agree.
Do you think it's possible to split the combined queries like "CPU by namespace" ?

from grafana-dashboards-kubernetes.

jkroepke avatar jkroepke commented on May 12, 2024

Do you think it's possible to split the combined queries like "CPU by namespace" ?

In theory yes, but the make it complex at Grafana side:

image

from grafana-dashboards-kubernetes.

dotdc avatar dotdc commented on May 12, 2024

Also, could be nice to add Windows support knowledge in the docs (README.md) for the other users.

from grafana-dashboards-kubernetes.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.