If you run redis-cli -h -p 6379 info cpu: you will get 4 metrics related to redis cpu:
used_cpu_sys
used_cpu_user
used_cpu_sys_children
used_cpu_user_children
Using the above metrics, how to define metrics EngineCPUUtilization which is similar to EngineCPUUtilization of AWS managed redis?
I think the logic is:
EngineCPU = used_cpu_sys + used_cpu_user - (used_cpu_sys_children + used_cpu_user_children),
Where (used_cpu_sys + used_cpu_user) is total cpu including both redis main cpu and background cpu. (used_cpu_sys_children + used_cpu_user_children) is background cpu.
so for prometheus as example, the engineCPUUtilization will be:
100 * avg by(instance) (rate(redis_cpu_sys_seconds_total{service="redis"}[5m]) + rate(redis_cpu_user_seconds_total{service="redis"}[5m]) - rate(redis_cpu_sys_children_seconds_total{service="redis"}[5m]) - rate(redis_cpu_user_children_seconds_total{service="redis"}[5m]))
Is it correct?