You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

__init__.py 1.4 kB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. # Copyright 2020 Huawei Technologies Co., Ltd
  2. #
  3. # Licensed under the Apache License, Version 2.0 (the "License");
  4. # you may not use this file except in compliance with the License.
  5. # You may obtain a copy of the License at
  6. #
  7. # http://www.apache.org/licenses/LICENSE-2.0
  8. #
  9. # Unless required by applicable law or agreed to in writing, software
  10. # distributed under the License is distributed on an "AS IS" BASIS,
  11. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. # See the License for the specific language governing permissions and
  13. # limitations under the License.
  14. # ============================================================================
  15. """The metrics collector."""
  16. from ._collect_cpu import collect_cpu
  17. from ._collect_mem import collect_mem
  18. from ._collect_npu import collect_npu
  19. __all__ = ['collect_cpu', 'collect_mem', 'collect_npu', 'get_metrics']
  20. def get_metrics():
  21. mem = collect_mem()
  22. mem_total = mem.get('total')
  23. mem_available = mem.get('available')
  24. mem_used = mem.get('used')
  25. return {
  26. 'npu': collect_npu(),
  27. 'cpu': {
  28. 'overall': collect_cpu(percent=True),
  29. 'percpu': collect_cpu(percpu=True, percent=True)
  30. },
  31. 'memory': {
  32. 'virtual': {
  33. 'available': mem_available,
  34. 'used': mem_used,
  35. 'others': max(mem_total - mem_available - mem_used, 0)
  36. }
  37. }
  38. }