Skip to content

Implement /api/v2/metrics #222

@snowch

Description

@snowch
GET /api/v2/metrics HTTP/1.1
Host: 127.0.0.1:8080
Accept-Encoding: gzip, deflate
REMOTE_ADDR: 185.69.144.164
Accept: */*
User-Agent: python-requests/2.6.0 CPython/2.7.5 Linux/3.10.0-1127.18.2.el7.x86_64
Connection: keep-alive
X-BDS-SESSION: /api/v2/session/bdbc5cda-991f-4196-a63a-65612f625113
Authorization: /api/v2/session/bdbc5cda-991f-4196-a63a-65612f625113

HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Content-Length: 12925
Content-Type: application/json
Date: Sat, 01 Aug 2020 01:57:26 GMT
Server: HPE Ezmeral Container Platform 5.1

{
  "_links": {
    "self": {
      "href": "/api/v2/metrics"
    },
    "node_info": {
      "href": "/api/v2/cluster/{cluster_id}/node/{node_id}",
      "templated": true
    },
    "worker_info": {
      "href": "/api/v1/workers/{worker_id}",
      "templated": true
    }
  },
  "tenant_types": {
    "docker": {
      "node_metrics": [
        {
          "id": "cpu",
          "label": {
            "name": "CPU Utilization (Percent)",
            "description": ""
          },
          "value_field": "docker.cpu.total.pct",
          "node_agg_selector": "docker.container.name",
          "selectors": [
            {
              "field": "metricset.module",
              "value": "docker"
            },
            {
              "field": "metricset.name",
              "value": "cpu"
            }
          ]
        },
        {
          "id": "memory",
          "label": {
            "name": "Memory Usage",
            "description": ""
          },
          "value_field": "docker.memory.usage.total",
          "node_agg_selector": "docker.container.name",
          "selectors": [
            {
              "field": "metricset.module",
              "value": "docker"
            },
            {
              "field": "metricset.name",
              "value": "memory"
            }
          ]
        },
        {
          "id": "network_in",
          "label": {
            "name": "Network Traffic (Bytes In)",
            "description": ""
          },
          "value_field": "system.network.in.bytes",
          "node_agg_selector": "beat.hostname",
          "device_agg_selector": "system.network.name",
          "selectors": [
            {
              "field": "metricset.module",
              "value": "system"
            },
            {
              "field": "metricset.name",
              "value": "network"
            }
          ]
        },
        {
          "id": "network_out",
          "label": {
            "name": "Network Traffic (Bytes Out)",
            "description": ""
          },
          "value_field": "system.network.out.bytes",
          "node_agg_selector": "beat.hostname",
          "device_agg_selector": "system.network.name",
          "selectors": [
            {
              "field": "metricset.module",
              "value": "system"
            },
            {
              "field": "metricset.name",
              "value": "network"
            }
          ]
        },
        {
          "id": "disk_read",
          "label": {
            "name": "Disk Reads (Bytes Read)",
            "description": ""
          },
          "value_field": "system.diskio.read.bytes",
          "node_agg_selector": "beat.hostname",
          "device_agg_selector": "system.diskio.name",
          "selectors": [
            {
              "field": "metricset.module",
              "value": "system"
            },
            {
              "field": "metricset.name",
              "value": "diskio"
            }
          ]
        },
        {
          "id": "disk_write",
          "label": {
            "name": "Disk Writes (Bytes Written)",
            "description": ""
          },
          "value_field": "system.diskio.write.bytes",
          "node_agg_selector": "beat.hostname",
          "device_agg_selector": "system.diskio.name",
          "selectors": [
            {
              "field": "metricset.module",
              "value": "system"
            },
            {
              "field": "metricset.name",
              "value": "diskio"
            }
          ]
        },
        {
          "id": "disk_overlay_read_ops",
          "label": {
            "name": "Disk Reads Ops (Number of Reads)",
            "description": ""
          },
          "value_field": "docker.diskio.read.ops",
          "node_agg_selector": "beat.hostname",
          "device_agg_selector": "docker.container.id",
          "selectors": [
            {
              "field": "metricset.module",
              "value": "docker"
            },
            {
              "field": "metricset.name",
              "value": "diskio"
            }
          ]
        },
        {
          "id": "disk_overlay_read_bytes",
          "label": {
            "name": "Disk Reads (Bytes Read)",
            "description": ""
          },
          "value_field": "docker.diskio.read.bytes",
          "node_agg_selector": "beat.hostname",
          "device_agg_selector": "docker.container.id",
          "selectors": [
            {
              "field": "metricset.module",
              "value": "docker"
            },
            {
              "field": "metricset.name",
              "value": "diskio"
            }
          ]
        },
        {
          "id": "disk_overlay_read_rate",
          "label": {
            "name": "Disk Reads Rate (Reads per Second)",
            "description": ""
          },
          "value_field": "docker.diskio.read.rate",
          "node_agg_selector": "beat.hostname",
          "device_agg_selector": "docker.container.id",
          "selectors": [
            {
              "field": "metricset.module",
              "value": "docker"
            },
            {
              "field": "metricset.name",
              "value": "diskio"
            }
          ]
        },
        {
          "id": "disk_overlay_write_ops",
          "label": {
            "name": "Disk Writes Ops (Number of Writes)",
            "description": ""
          },
          "value_field": "docker.diskio.write.ops",
          "node_agg_selector": "beat.hostname",
          "device_agg_selector": "docker.container.id",
          "selectors": [
            {
              "field": "metricset.module",
              "value": "docker"
            },
            {
              "field": "metricset.name",
              "value": "diskio"
            }
          ]
        },
        {
          "id": "disk_overlay_write_bytes",
          "label": {
            "name": "Disk Writes (Bytes Written)",
            "description": ""
          },
          "value_field": "docker.diskio.write.bytes",
          "node_agg_selector": "beat.hostname",
          "device_agg_selector": "docker.container.id",
          "selectors": [
            {
              "field": "metricset.module",
              "value": "docker"
            },
            {
              "field": "metricset.name",
              "value": "diskio"
            }
          ]
        },
        {
          "id": "disk_overlay_write_rate",
          "label": {
            "name": "Disk Writes Rate (Writes per Second)",
            "description": ""
          },
          "value_field": "docker.diskio.write.rate",
          "node_agg_selector": "beat.hostname",
          "device_agg_selector": "docker.container.id",
          "selectors": [
            {
              "field": "metricset.module",
              "value": "docker"
            },
            {
              "field": "metricset.name",
              "value": "diskio"
            }
          ]
        },
        {
          "id": "gpu",
          "label": {
            "name": "GPU Utilization (Percent)",
            "description": ""
          },
          "value_field": "utilization.gpu",
          "node_agg_selector": "linkName",
          "device_agg_selector": "gpuIndex",
          "selectors": [
            {
              "field": "type",
              "value": "nvidiagpubeat"
            }
          ]
        },
        {
          "id": "gpu_memory_util",
          "label": {
            "name": "GPU Memory Utilization (Percent)",
            "description": ""
          },
          "value_field": "utilization.memory",
          "node_agg_selector": "linkName",
          "device_agg_selector": "gpuIndex",
          "selectors": [
            {
              "field": "type",
              "value": "nvidiagpubeat"
            }
          ]
        },
        {
          "id": "gpu_memory_used",
          "label": {
            "name": "GPU Memory Used",
            "description": ""
          },
          "value_field": "memory.used",
          "node_agg_selector": "linkName",
          "device_agg_selector": "gpuIndex",
          "selectors": [
            {
              "field": "type",
              "value": "nvidiagpubeat"
            }
          ]
        },
        {
          "id": "gpu_memory_free",
          "label": {
            "name": "GPU Memory Free",
            "description": ""
          },
          "value_field": "memory.free",
          "node_agg_selector": "linkName",
          "device_agg_selector": "gpuIndex",
          "selectors": [
            {
              "field": "type",
              "value": "nvidiagpubeat"
            }
          ]
        },
        {
          "id": "gpu_memory_total",
          "label": {
            "name": "GPU Memory Total",
            "description": ""
          },
          "value_field": "memory.total",
          "node_agg_selector": "linkName",
          "device_agg_selector": "gpuIndex",
          "selectors": [
            {
              "field": "type",
              "value": "nvidiagpubeat"
            }
          ]
        },
        {
          "id": "gpu_temperature",
          "label": {
            "name": "GPU Temperature",
            "description": ""
          },
          "value_field": "temperature.gpu",
          "node_agg_selector": "linkName",
          "device_agg_selector": "gpuIndex",
          "selectors": [
            {
              "field": "type",
              "value": "nvidiagpubeat"
            }
          ]
        }
      ]
    },
    "k8s": {
      "k8s_metrics": [
        {
          "id": "cpu_usage_node_pct_per_pod",
          "label": {
            "name": "Node CPU Usage Percent",
            "description": ""
          },
          "value_field": "kubernetes.pod.cpu.usage.node.pct",
          "pod_agg_selector": "kubernetes.pod.name",
          "kubedirectorcluster_agg_selector": "kubernetes.labels.kubedirector_hpe_com/kdcluster",
          "namespace_agg_selector": "kubernetes.namespace",
          "selectors": [
            {
              "field": "metricset.name",
              "value": "pod"
            },
            {
              "field": "kubernetes.namespace",
              "value": "*"
            }
          ]
        },
        {
          "id": "cpu_usage_nanocores_per_pod",
          "label": {
            "name": "Pod CPU Usage Nanocores",
            "description": ""
          },
          "value_field": "kubernetes.pod.cpu.usage.nanocores",
          "pod_agg_selector": "kubernetes.pod.name",
          "kubedirectorcluster_agg_selector": "kubernetes.labels.kubedirector_hpe_com/kdcluster",
          "namespace_agg_selector": "kubernetes.namespace",
          "selectors": [
            {
              "field": "metricset.name",
              "value": "pod"
            },
            {
              "field": "kubernetes.namespace",
              "value": "*"
            }
          ]
        },
        {
          "id": "cpu_pod_usage_limit_pct",
          "label": {
            "name": "Pod CPU Limit Percent",
            "description": ""
          },
          "value_field": "kubernetes.pod.cpu.usage.limit.pct",
          "pod_agg_selector": "kubernetes.pod.name",
          "kubedirectorcluster_agg_selector": "kubernetes.labels.kubedirector_hpe_com/kdcluster",
          "namespace_agg_selector": "kubernetes.namespace",
          "selectors": [
            {
              "field": "metricset.name",
              "value": "pod"
            },
            {
              "field": "kubernetes.namespace",
              "value": "*"
            }
          ]
        },
        {
          "id": "mem_usage_limit_pct",
          "label": {
            "name": "Pod Memory Limit Percent",
            "description": ""
          },
          "value_field": "kubernetes.pod.memory.usage.limit.pct",
          "pod_agg_selector": "kubernetes.pod.name",
          "kubedirectorcluster_agg_selector": "kubernetes.labels.kubedirector_hpe_com/kdcluster",
          "namespace_agg_selector": "kubernetes.namespace",
          "selectors": [
            {
              "field": "metricset.name",
              "value": "pod"
            },
            {
              "field": "kubernetes.namespace",
              "value": "*"
            }
          ]
        },
        {
          "id": "mem_usage_node_pct",
          "label": {
            "name": "Node Memory Usage Percent",
            "description": ""
          },
          "value_field": "kubernetes.pod.memory.usage.node.pct",
          "pod_agg_selector": "kubernetes.pod.name",
          "kubedirectorcluster_agg_selector": "kubernetes.labels.kubedirector_hpe_com/kdcluster",
          "namespace_agg_selector": "kubernetes.namespace",
          "selectors": [
            {
              "field": "metricset.name",
              "value": "pod"
            },
            {
              "field": "kubernetes.namespace",
              "value": "*"
            }
          ]
        },
        {
          "id": "mem_usage_pod_bytes",
          "label": {
            "name": "Pod Memory Usage in Bytes",
            "description": ""
          },
          "value_field": "kubernetes.pod.memory.usage.bytes",
          "pod_agg_selector": "kubernetes.pod.name",
          "kubedirectorcluster_agg_selector": "kubernetes.labels.kubedirector_hpe_com/kdcluster",
          "namespace_agg_selector": "kubernetes.namespace",
          "selectors": [
            {
              "field": "metricset.name",
              "value": "pod"
            },
            {
              "field": "kubernetes.namespace",
              "value": "*"
            }
          ]
        },
        {
          "id": "network_rx_pod_bytes",
          "label": {
            "name": "Pod Network Rx in Bytes",
            "description": ""
          },
          "value_field": "kubernetes.pod.network.rx.bytes",
          "pod_agg_selector": "kubernetes.pod.name",
          "kubedirectorcluster_agg_selector": "kubernetes.labels.kubedirector_hpe_com/kdcluster",
          "namespace_agg_selector": "kubernetes.namespace",
          "selectors": [
            {
              "field": "metricset.name",
              "value": "pod"
            },
            {
              "field": "kubernetes.namespace",
              "value": "*"
            }
          ]
        },
        {
          "id": "network_tx_pod_bytes",
          "label": {
            "name": "Pod Network Tx in Bytes",
            "description": ""
          },
          "value_field": "kubernetes.pod.network.tx.bytes",
          "pod_agg_selector": "kubernetes.pod.name",
          "kubedirectorcluster_agg_selector": "kubernetes.labels.kubedirector_hpe_com/kdcluster",
          "namespace_agg_selector": "kubernetes.namespace",
          "selectors": [
            {
              "field": "metricset.name",
              "value": "pod"
            },
            {
              "field": "kubernetes.namespace",
              "value": "*"
            }
          ]
        },
        {
          "id": "network_rx_errors_pod",
          "label": {
            "name": "Pod Network Rx Errors",
            "description": ""
          },
          "value_field": "kubernetes.pod.network.rx.errors",
          "pod_agg_selector": "kubernetes.pod.name",
          "kubedirectorcluster_agg_selector": "kubernetes.labels.kubedirector_hpe_com/kdcluster",
          "namespace_agg_selector": "kubernetes.namespace",
          "selectors": [
            {
              "field": "metricset.name",
              "value": "pod"
            },
            {
              "field": "kubernetes.namespace",
              "value": "*"
            }
          ]
        },
        {
          "id": "network_tx_errors_pod",
          "label": {
            "name": "Pod Network Tx Errors",
            "description": ""
          },
          "value_field": "kubernetes.pod.network.tx.errors",
          "pod_agg_selector": "kubernetes.pod.name",
          "kubedirectorcluster_agg_selector": "kubernetes.labels.kubedirector_hpe_com/kdcluster",
          "namespace_agg_selector": "kubernetes.namespace",
          "selectors": [
            {
              "field": "metricset.name",
              "value": "pod"
            },
            {
              "field": "kubernetes.namespace",
              "value": "*"
            }
          ]
        }
      ]
    }
  },
  "worker_types": {
    "docker": {
      "host_metrics": [
        {
          "id": "system_cpu",
          "label": {
            "name": "Host CPU Utilization (Percent)",
            "description": ""
          },
          "value_field": "system.cpu.user.pct",
          "node_agg_selector": "beat.hostname",
          "selectors": [
            {
              "field": "metricset.module",
              "value": "system"
            },
            {
              "field": "metricset.name",
              "value": "cpu"
            }
          ]
        },
        {
          "id": "system_memory",
          "label": {
            "name": "Host Memory Usage",
            "description": ""
          },
          "value_field": "system.memory.used.bytes",
          "node_agg_selector": "beat.hostname",
          "selectors": [
            {
              "field": "metricset.module",
              "value": "system"
            },
            {
              "field": "metricset.name",
              "value": "memory"
            }
          ]
        },
        {
          "id": "system_swap",
          "label": {
            "name": "Host Swap Memory Usage",
            "description": ""
          },
          "value_field": "system.memory.swap.used.bytes",
          "node_agg_selector": "beat.hostname",
          "selectors": [
            {
              "field": "metricset.module",
              "value": "system"
            },
            {
              "field": "metricset.name",
              "value": "memory"
            }
          ]
        },
        {
          "id": "system_load",
          "label": {
            "name": "Host System Load",
            "description": ""
          },
          "value_field": "system.load.1",
          "node_agg_selector": "beat.hostname",
          "selectors": [
            {
              "field": "metricset.module",
              "value": "system"
            },
            {
              "field": "metricset.name",
              "value": "load"
            }
          ]
        },
        {
          "id": "system_network_in",
          "label": {
            "name": "Host Network Traffic (Bytes In)",
            "description": ""
          },
          "value_field": "system.network.in.bytes",
          "node_agg_selector": "beat.hostname",
          "device_agg_selector": "system.network.name",
          "selectors": [
            {
              "field": "metricset.module",
              "value": "system"
            },
            {
              "field": "metricset.name",
              "value": "network"
            }
          ]
        },
        {
          "id": "system_network_out",
          "label": {
            "name": "Host Network Traffic (Bytes Out)",
            "description": ""
          },
          "value_field": "system.network.out.bytes",
          "node_agg_selector": "beat.hostname",
          "device_agg_selector": "system.network.name",
          "selectors": [
            {
              "field": "metricset.module",
              "value": "system"
            },
            {
              "field": "metricset.name",
              "value": "network"
            }
          ]
        },
        {
          "id": "gpu",
          "label": {
            "name": "GPU Utilization (Percent)",
            "description": ""
          },
          "value_field": "utilization.gpu",
          "node_agg_selector": "beat.hostname",
          "device_agg_selector": "gpuIndex",
          "selectors": [
            {
              "field": "type",
              "value": "nvidiagpubeat"
            }
          ]
        },
        {
          "id": "gpu_memory_util",
          "label": {
            "name": "GPU Memory Utilization (Percent)",
            "description": ""
          },
          "value_field": "utilization.memory",
          "node_agg_selector": "beat.hostname",
          "device_agg_selector": "gpuIndex",
          "selectors": [
            {
              "field": "type",
              "value": "nvidiagpubeat"
            }
          ]
        },
        {
          "id": "gpu_memory_used",
          "label": {
            "name": "GPU Memory Used",
            "description": ""
          },
          "value_field": "memory.used",
          "node_agg_selector": "beat.hostname",
          "device_agg_selector": "gpuIndex",
          "selectors": [
            {
              "field": "type",
              "value": "nvidiagpubeat"
            }
          ]
        },
        {
          "id": "gpu_memory_free",
          "label": {
            "name": "GPU Memory Free",
            "description": ""
          },
          "value_field": "memory.free",
          "node_agg_selector": "beat.hostname",
          "device_agg_selector": "gpuIndex",
          "selectors": [
            {
              "field": "type",
              "value": "nvidiagpubeat"
            }
          ]
        },
        {
          "id": "gpu_memory_total",
          "label": {
            "name": "GPU Memory Total",
            "description": ""
          },
          "value_field": "memory.total",
          "node_agg_selector": "beat.hostname",
          "device_agg_selector": "gpuIndex",
          "selectors": [
            {
              "field": "type",
              "value": "nvidiagpubeat"
            }
          ]
        },
        {
          "id": "gpu_temperature",
          "label": {
            "name": "GPU Temperature",
            "description": ""
          },
          "value_field": "temperature.gpu",
          "node_agg_selector": "beat.hostname",
          "device_agg_selector": "gpuIndex",
          "selectors": [
            {
              "field": "type",
              "value": "nvidiagpubeat"
            }
          ]
        }
      ]
    }
  },
  "worker_type_for_purpose": {
    "primary": "docker",
    "shadow": "docker",
    "arbiter": "docker",
    "worker": "docker",
    "k8s": "docker"
  },
  "_embedded": {
    "auth": {
      "_links": {
        "self": {
          "href": "/api/v2/metrics/elasticsearch_metricreader_auth"
        }
      },
      "username": "elasticmetricreader",
      "password": "0fdcf390-920c-46c7-9bdb-c54277b629d8"
    }
  }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions