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

feat(vm): add metrics #333

Merged
merged 27 commits into from
Sep 10, 2024
Merged

feat(vm): add metrics #333

merged 27 commits into from
Sep 10, 2024

Conversation

yaroslavborbat
Copy link
Member

@yaroslavborbat yaroslavborbat commented Sep 2, 2024

Description

Add new metrics

# VM core count
d8_virtualization_virtualmachine_configuration_cpu_cores = 1 ... 1024
# VM coreFraction param without % 
d8_virtualization_virtualmachine_configuration_cpu_core_fraction = 5 10 25 50 100

# VM requested cores like kube_pod_container_resource_requests{resource="cpu"}
d8_virtualization_virtualmachine_configuration_cpu_requested_cores = 0.1 0.25 1 10 100 ...
# VM system overhead (vmpod cores - vm cores) like kube_pod_container_resource_requests{resource="cpu"}
d8_virtualization_virtualmachine_configuration_cpu_runtime_overhead = 0.1 0.25 1 10 100 ...

# VM memory size in bytes like kube_pod_container_resource_requests{resource="memory"}
d8_virtualization_virtualmachine_configuration_memory_size = bytes
# VM memory overhead in bytes (vmpod mem - vm mem) like kube_pod_container_resource_requests{resource="memory"}
d8_virtualization_virtualmachine_configuration_memory_runtime_overhead = bytes

# AwaitingRestartToApplyConfiguration condition (true | false)
d8_virtualization_virtualmachine_awaiting_restart_to_apply_configuration = 0 | 1
# ConfigurationApplied condition (true | false)
d8_virtualization_virtualmachine_configuration_applied = 0 | 1
# .spec.runPolicy (true | false)
d8_virtualization_virtualmachine_configuration_run_policy{run_policy="AlwaysOn|..."} = 0|1
# VM Pod name (0 - inactive | 1 - active)
d8_virtualization_virtualmachine_pod{pod_name="current-pod-name"} = 0 | 1

Base labels
{name="vmname" namespace="ns" node="vmnode" uid="uid"}

Why do we need it, and what problem does it solve?

we need more metrics

Checklist

  • The code is covered by unit tests.
  • e2e tests passed.
  • Documentation updated according to the changes.
  • Changes were tested in the Kubernetes cluster manually.

@diafour
Copy link
Member

diafour commented Sep 4, 2024

Let's rename virtualmachine.yaml into virtualmachines.yaml in a separate PR and merge it to main to see difference between hand-made and generated CRD in this PR.

crds/virtualmachines.yaml Outdated Show resolved Hide resolved
crds/virtualmachines.yaml Outdated Show resolved Hide resolved
crds/virtualmachines.yaml Outdated Show resolved Hide resolved
crds/virtualmachines.yaml Outdated Show resolved Hide resolved
diafour
diafour previously approved these changes Sep 5, 2024
@yaroslavborbat yaroslavborbat dismissed stale reviews from Isteb4k and diafour via 83385ee September 5, 2024 13:32
Signed-off-by: yaroslavborbat <yaroslav.752@gmail.com>
Signed-off-by: yaroslavborbat <yaroslav.752@gmail.com>
Signed-off-by: yaroslavborbat <yaroslav.752@gmail.com>
Signed-off-by: yaroslavborbat <yaroslav.752@gmail.com>
Signed-off-by: yaroslavborbat <yaroslav.752@gmail.com>
Signed-off-by: yaroslavborbat <yaroslav.752@gmail.com>
Signed-off-by: yaroslavborbat <yaroslav.752@gmail.com>
Signed-off-by: yaroslavborbat <yaroslav.752@gmail.com>
yaroslavborbat and others added 11 commits September 6, 2024 13:53
Signed-off-by: yaroslavborbat <yaroslav.752@gmail.com>
Signed-off-by: yaroslavborbat <yaroslav.752@gmail.com>
Co-authored-by: Ivan Mikheykin <ivan.mikheykin@flant.com>
Signed-off-by: Yaroslav Borbat <86148689+yaroslavborbat@users.noreply.github.com>
Co-authored-by: Ivan Mikheykin <ivan.mikheykin@flant.com>
Signed-off-by: Yaroslav Borbat <86148689+yaroslavborbat@users.noreply.github.com>
Co-authored-by: Ivan Mikheykin <ivan.mikheykin@flant.com>
Signed-off-by: Yaroslav Borbat <86148689+yaroslavborbat@users.noreply.github.com>
Signed-off-by: yaroslavborbat <yaroslav.752@gmail.com>
Signed-off-by: yaroslavborbat <yaroslav.752@gmail.com>
Signed-off-by: yaroslavborbat <yaroslav.752@gmail.com>
Signed-off-by: yaroslavborbat <yaroslav.752@gmail.com>
Signed-off-by: yaroslavborbat <yaroslav.752@gmail.com>
Signed-off-by: yaroslavborbat <yaroslav.752@gmail.com>
crds/virtualmachines.yaml Outdated Show resolved Hide resolved
crds/virtualmachines.yaml Outdated Show resolved Hide resolved
crds/virtualmachines.yaml Outdated Show resolved Hide resolved
crds/virtualmachines.yaml Outdated Show resolved Hide resolved
crds/virtualmachines.yaml Outdated Show resolved Hide resolved
crds/virtualmachines.yaml Outdated Show resolved Hide resolved
crds/virtualmachines.yaml Outdated Show resolved Hide resolved
yaroslavborbat and others added 5 commits September 9, 2024 10:30
Co-authored-by: Pavel Tishkov <pavel.tishkov@flant.com>
Signed-off-by: Yaroslav Borbat <86148689+yaroslavborbat@users.noreply.github.com>
Co-authored-by: Pavel Tishkov <pavel.tishkov@flant.com>
Signed-off-by: Yaroslav Borbat <86148689+yaroslavborbat@users.noreply.github.com>
Co-authored-by: Pavel Tishkov <pavel.tishkov@flant.com>
Signed-off-by: Yaroslav Borbat <86148689+yaroslavborbat@users.noreply.github.com>
Co-authored-by: Pavel Tishkov <pavel.tishkov@flant.com>
Signed-off-by: Yaroslav Borbat <86148689+yaroslavborbat@users.noreply.github.com>
Co-authored-by: Pavel Tishkov <pavel.tishkov@flant.com>
Signed-off-by: Yaroslav Borbat <86148689+yaroslavborbat@users.noreply.github.com>
Signed-off-by: yaroslavborbat <yaroslav.752@gmail.com>
@fl64 fl64 merged commit c28df0a into main Sep 10, 2024
10 checks passed
@fl64 fl64 deleted the feat/vm/add-metrics branch September 10, 2024 08:21
universal-itengineer pushed a commit that referenced this pull request Sep 11, 2024
Features
api: adjust image size (cbb37c1)
api: set tag for dvcr images (cf71a98)
cdi: remove service-monitor (#328) (621baf2)
controllelr: add gc for resources (#303) (a14f2e8)
controller: add tasks with dlv (#321) (83fa3c6)
cvi: create from vd (#352) (e42e28c)
module: add base control-plane alerts (#345) (c66c4fd)
vd: deny iso source (77bcad1)
vd: override virtualdisk's pvc parameters via StorageClass annotations (#351) (fa37881)
vdsnapshot: add the new controller for the virtual disk snapshot (e813124)
vd: support filesystem mode (#300) (4b147f7)
vd: support filesystem mode (#327) (754c4a7)
vi: add new storage type - kubernetes (#298) (51e2a40)
vi: create from vd (#354) (f4d4b6d)
vm-route-forge: add ebpf route watcher (#292) (ca67190)
vm: add metrics (#333) (c28df0a)
vmclass: size policies vaidation hook (#344) (5f585c4)
vmop: implement conditions, use new reconciler style (#258) (13f6a9d)

Bug Fixes
cvi: fix cleanup for resources (#363) (1f13148)
templates: add missed symbol (#318) (f30cd69)
vd: ensure last transition time for conditions (b39487a)
vd: fix panic if pvc not found (#349) (fd4b0af)
vd: remove pv protection (aa489c4)
vd: set validator warnings instead of errors (b173b08)
vm-route-forge: add check to ensure VM host node is identified (#356) (4077584)
vmbda: fix sa rules (9367162)
vmclass: revert last transition time to condition builder (db3f272)
vm: fix panic with nil labelselector (#355) (8df6c59)
vm: impl delete method for subresource virtualmachine on apiserver (#334) (39c7d65)
vm: sync labels and annos with empty value (#322) (0353618)
eofff pushed a commit that referenced this pull request Sep 18, 2024
Co-authored-by: Ivan Mikheykin <ivan.mikheykin@flant.com>
Signed-off-by: Yaroslav Borbat <86148689+yaroslavborbat@users.noreply.github.com>

Add new metrics

# VM core count
d8_virtualization_virtualmachine_configuration_cpu_cores = 1 ... 1024
# VM coreFraction param without %
d8_virtualization_virtualmachine_configuration_cpu_core_fraction = 5 10 25 50 100

# VM requested cores like kube_pod_container_resource_requests{resource="cpu"}
d8_virtualization_virtualmachine_configuration_cpu_requested_cores = 0.1 0.25 1 10 100 ...
# VM system overhead (vmpod cores - vm cores) like kube_pod_container_resource_requests{resource="cpu"}
d8_virtualization_virtualmachine_configuration_cpu_runtime_overhead = 0.1 0.25 1 10 100 ...

# VM memory size in bytes like kube_pod_container_resource_requests{resource="memory"}
d8_virtualization_virtualmachine_configuration_memory_size = bytes
# VM memory overhead in bytes (vmpod mem - vm mem) like kube_pod_container_resource_requests{resource="memory"}
d8_virtualization_virtualmachine_configuration_memory_runtime_overhead = bytes

# AwaitingRestartToApplyConfiguration condition (true | false)
d8_virtualization_virtualmachine_awaiting_restart_to_apply_configuration = 0 | 1
# ConfigurationApplied condition (true | false)
d8_virtualization_virtualmachine_configuration_applied = 0 | 1
# .spec.runPolicy (true | false)
d8_virtualization_virtualmachine_configuration_run_policy{run_policy="AlwaysOn|..."} = 0|1
# VM Pod name (0 - inactive | 1 - active)
d8_virtualization_virtualmachine_pod{pod_name="current-pod-name"} = 0 | 1

Base labels
 {name="vmname" namespace="ns" node="vmnode" uid="uid"}

Signed-off-by: Valeriy Khorunzhin <valeriy.khorunzhin@flant.com>
eofff pushed a commit that referenced this pull request Sep 18, 2024
Features
api: adjust image size (cbb37c1)
api: set tag for dvcr images (cf71a98)
cdi: remove service-monitor (#328) (621baf2)
controllelr: add gc for resources (#303) (a14f2e8)
controller: add tasks with dlv (#321) (83fa3c6)
cvi: create from vd (#352) (e42e28c)
module: add base control-plane alerts (#345) (c66c4fd)
vd: deny iso source (77bcad1)
vd: override virtualdisk's pvc parameters via StorageClass annotations (#351) (fa37881)
vdsnapshot: add the new controller for the virtual disk snapshot (e813124)
vd: support filesystem mode (#300) (4b147f7)
vd: support filesystem mode (#327) (754c4a7)
vi: add new storage type - kubernetes (#298) (51e2a40)
vi: create from vd (#354) (f4d4b6d)
vm-route-forge: add ebpf route watcher (#292) (ca67190)
vm: add metrics (#333) (c28df0a)
vmclass: size policies vaidation hook (#344) (5f585c4)
vmop: implement conditions, use new reconciler style (#258) (13f6a9d)

Bug Fixes
cvi: fix cleanup for resources (#363) (1f13148)
templates: add missed symbol (#318) (f30cd69)
vd: ensure last transition time for conditions (b39487a)
vd: fix panic if pvc not found (#349) (fd4b0af)
vd: remove pv protection (aa489c4)
vd: set validator warnings instead of errors (b173b08)
vm-route-forge: add check to ensure VM host node is identified (#356) (4077584)
vmbda: fix sa rules (9367162)
vmclass: revert last transition time to condition builder (db3f272)
vm: fix panic with nil labelselector (#355) (8df6c59)
vm: impl delete method for subresource virtualmachine on apiserver (#334) (39c7d65)
vm: sync labels and annos with empty value (#322) (0353618)

Signed-off-by: Valeriy Khorunzhin <valeriy.khorunzhin@flant.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
validation/skip/doc_changes Skip doc changes validation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants