度量标准快速入门

DC/OS 度量标准入门

本页讲解了 DC/OS 中的度量标准入门知识。度量标准管道天生与 DC/OS 集成,无需额外设置。

前提条件:

  • 必须 安装 DC/OS CLI 并通过 dcos auth login 命令以超级用户身份登户。
  1. 可选:部署一个示例 Marathon 应用程序供在本快速入门指南中使用。如果您已有任务在 DC/OS 上运行,则可以跳过此设置步骤。

    1. 创建以下 Marathon 应用定义并另存为 test-metrics.json

      {
        "id": "/test-metrics",
        "cmd": "./statsd-emitter",
        "fetch": [{"uri": "https://downloads.mesosphere.com/dcos-metrics/1.11.0/statsd-emitter", "executable": true}],
        "cpus": 0.01,
        "instances": 1,
        "mem": 128
      }
      
    2. 使用以下 CLI 命令部署应用程序:

      dcos marathon app add test-metrics.json
      
  2. 要获得运行您应用程序的节点的 Mesos ID,请在运行 dcos task 后执行 dcos node。 例如:

    1. 运行 dcos task 表明该主机 10.0.0.193 在运行 Marathon 任务 test-metrics.93fffc0c-fddf-11e6-9080-f60c51db292b

      dcos task
      NAME          HOST        USER  STATE  ID                                                  
      test-metrics  10.0.0.193  root    R    test-metrics.93fffc0c-fddf-11e6-9080-f60c51db292b  
      
    2. 运行 dcos node 表明该主机 10.0.0.193 拥有 Mesos ID 7749eada-4974-44f3-aad9-42e2fc6aedaf-S1

      dcos node
       HOSTNAME       IP                         ID                    
      10.0.0.193  10.0.0.193  7749eada-4974-44f3-aad9-42e2fc6aedaf-S1  
      
  3. 查看度量标准。

  • 特定任务的容器度量标准

    关于特定容器的资源消耗的概述,请执行以下命令:

    dcos task metrics summary <task-id>
    

    输出应类似于:

    CPU           MEM              DISK
    0.17 (1.35%)  0.01GiB (6.46%)  0.00GiB (0.00%)
    
  • 特定任务的所有度量标准

    要获取与任务相关的所有度量标准的详细列表,请执行以下命令:

    dcos task metrics details <task-id>
    

    输出是容器资源利用率和工作负载传输的度量标准的组合。 例如:

    NAME                      VALUE
    cpus.limit                0.20            
    cpus.nr_periods           1272            
    cpus.nr_throttled         8               
    cpus.system_time_secs     0.23            
    cpus.throttled_time_secs  0.45            
    cpus.user_time_secs       0.15            
    mem.anon_bytes            9359360         
    mem.cache_bytes           106496          
    mem.file_bytes            106496          
    mem.limit_bytes           44040192        
    mem.rss_bytes             9359360         
    mem.total_bytes           9465856      
    perf.timestamp            1556720487.68
    

    CPU、磁盘和内存统计来自 Mesos 提供的容器数据。statsd_tester.time.uptime. 统计数据来自应用程序本身。

  • 主机级度量标准

    对于任务数据,主机级度量标准以摘要或详细表格的形式提供。 要查看主机级度量标准,请执行以下命令:

    dcos node metrics details <mesos-id>
    

    输出显示关于节点上可用资源及其利用率的统计数据。 例如:

    NAME                       VALUE      TAGS
    cpu.idle                   99.56%
    cpu.system                 0.09%
    cpu.total                  0.34%
    cpu.user                   0.25%
    cpu.wait                   0.01%
    filesystem.capacity.free   134.75GiB  path: /
    filesystem.capacity.total  143.02GiB  path: /
    filesystem.capacity.used   2.33GiB    path: /
    filesystem.inode.free      38425263   path: /
    filesystem.inode.total     38504832   path: /
    filesystem.inode.used      79569      path: /
    load.15min                 0
    load.1min                  0
    load.5min                  0
    memory.buffers             0.08GiB
    memory.cached              2.41GiB
    memory.free                12.63GiB
    memory.total               15.67GiB
    process.count              175
    swap.free                  0.00GiB
    swap.total                 0.00GiB
    swap.used                  0.00GiB
    system.uptime              28627
    
  • 度量标准的有计划使用

    所有 dcos-cli 度量标准命令都可以与 --json 一起执行,用于脚本。 例如:

    dcos node metrics summary <mesos-id> --json
    

    输出显示所有相同的数据,但以 JSON 格式显示,以方便解析:

    [
      {
        "name": "cpu.total",
        "timestamp": "2018-04-09T23:46:16.834008315Z",
        "value": 0.32,
        "unit": "percent"
      },
      {
        "name": "memory.total",
        "timestamp": "2018-04-09T23:46:16.834650407Z",
        "value": 16830304256,
        "unit": "bytes"
      },
      {
        "name": "memory.free",
        "timestamp": "2018-04-09T23:46:16.834650407Z",
        "value": 13553008640,
        "unit": "bytes"
      },
      {
        "name": "filesystem.capacity.total",
        "timestamp": "2018-04-09T23:46:16.834373702Z",
        "value": 153567944704,
        "tags": {
          "path": "/"
        },
        "unit": "bytes"
      },
      {
        "name": "filesystem.capacity.used",
        "timestamp": "2018-04-09T23:46:16.834373702Z",
        "value": 2498990080,
        "tags": {
          "path": "/"
        },
        "unit": "bytes"
      }
    ]