# Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You under the Apache License, Version 2.0 # (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # The monitoring type category:service-application service monitoring db-database monitoring custom-custom monitoring os-operating system monitoring # 监控类型所属类别:service-应用服务 program-应用程序 db-数据库 custom-自定义 os-操作系统 bigdata-大数据 mid-中间件 webserver-web服务器 cache-缓存 cn-云原生 network-网络监控等等 category: cn # The monitoring type eg: linux windows tomcat mysql aws... # 监控类型 eg: linux windows tomcat mysql aws... app: kubernetes # The monitoring i18n name # 监控类型国际化名称 name: zh-CN: Kubernetes en-US: Kubernetes # The description and help of this monitoring type # 监控类型的帮助描述信息 help: zh-CN: HertzBeat 通过查询 Kubernetes ApiServer api 来对 kubernetes 的通用性能指标(nodes、namespaces、pods、services)进行采集监控。
注意⚠️:为了监控 Kubernetes 中的信息,则需要获取到可访问 Api Server 的授权 TOKEN,让采集请求获取到对应的信息,点击查看获取步骤 en-US: HertzBeat monitoring Kubernetes general metrics such as nodes, namespaces and pods through querying data from Kubernetes ApiServer api.
Note⚠️:In order to monitor the information of Kubernetes, Hertzbeat need to obtain the authorized TOKEN that can access Api Server. Click here to view the specific steps. zh-TW: HertzBeat 通過查詢 Kubernetes ApiServer api 來對 kubernetes 的通用性能指標(nodes、namespaces、pods、services)進行采集監控。
注意⚠️:爲了監控 Kubernetes 中的信息,則需要獲取到可訪問 Api Server 的授權 TOKEN,讓采集請求獲取到對應的信息,點擊查看獲取步驟 helpLink: zh-CN: https://hertzbeat.apache.org/zh-cn/docs/help/kubernetes en-US: https://hertzbeat.apache.org/docs/help/kubernetes # 监控所需输入参数定义(根据定义渲染页面UI) # Input params define for monitoring(render web ui by the definition) params: # field-param field key # field-变量字段标识符 - field: host # name-param field display i18n name # name-参数字段显示名称 name: zh-CN: 目标Host en-US: Target Host # type-param field type(most mapping the html input type) # type-字段类型,样式(大部分映射input标签type属性) type: host # required-true or false # required-是否是必输项 true-必填 false-可选 required: true # field-param field key # field-变量字段标识符 - field: port # name-param field display i18n name # name-参数字段显示名称 name: zh-CN: ApiServer端口 en-US: ApiServer Port # type-param field type(most mapping the html input type) # type-字段类型,样式(大部分映射input标签type属性) type: number # when type is number, range is required # 当type为number时,用range表示范围 range: '[0,65535]' # required-true or false # required-是否是必输项 true-必填 false-可选 required: true # default value defaultValue: 6443 # field-param field key # field-变量字段标识符 - field: authType # name-param field display i18n name # name-参数字段显示名称 name: zh-CN: 认证方式 en-US: Auth Type # type-param field type(radio mapping the html radio tag) # type-当type为radio时,前端用radio展示开关 type: radio # required-true or false # required-是否是必输项 true-必填 false-可选 required: true # when type is radio checkbox, use option to show optional values {name1:value1,name2:value2} # 当type为radio单选框, checkbox复选框时, option表示可选项值列表 {name1:value1,name2:value2} options: - label: Bearer Token value: Bearer Token defaultValue: Bearer Token - field: token name: zh-CN: 认证Token en-US: Access Token type: text required: true # collect metrics config list # 采集指标配置列表 metrics: # metrics - nodes # 监控指标 - nodes - name: nodes # metrics scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel # priority 0's metrics is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue # 指标采集调度优先级(0->127)->(优先级高->低) 优先级低的指标会等优先级高的指标采集完成后才会被调度, 相同优先级的指标会并行调度采集 # 优先级为0的指标为可用性指标,即它会被首先调度,采集成功才会继续调度其它指标,采集失败则中断调度 priority: 0 # collect metrics content # 具体监控指标列表 fields: # field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field # field-指标名称, type-指标类型(0-number数字,1-string字符串), unit-指标单位('%','ms','MB'), label-是否是指标标签字段 - field: node_name type: 1 i18n: zh-CN: 节点名称 en-US: Node Name - field: is_ready type: 1 i18n: zh-CN: 节点就绪状态 en-US: Node Ready Status - field: capacity_cpu type: 0 i18n: zh-CN: CPU 容量 en-US: CPU Capacity - field: allocatable_cpu type: 0 i18n: zh-CN: 可分配 CPU en-US: Allocatable CPU - field: capacity_memory type: 0 unit: Mi i18n: zh-CN: 内存容量 en-US: Memory Capacity - field: allocatable_memory type: 0 unit: Mi i18n: zh-CN: 可分配内存 en-US: Allocatable Memory - field: creation_time type: 1 i18n: zh-CN: 创建时间 en-US: Creation Time # (optional)metrics field alias name, it is used as an alias field to map and convert the collected data and metrics field # (可选)监控指标别名, 做为中间字段与采集数据字段和指标字段映射转换 aliasFields: - $.metadata.name - $.status.conditions[?(@.type=='Ready')].status - $.status.capacity.cpu - $.status.capacity.memory - $.status.allocatable.cpu - $.status.allocatable.memory - $.metadata.creationTimestamp # (optional)mapping and conversion expressions, use these and aliasField above to calculate metrics value # (可选)指标映射转换计算表达式,与上面的别名一起作用,计算出最终需要的指标值 # eg: cores=core1+core2, usage=usage, waitTime=allTime-runningTime calculates: - node_name=$.metadata.name - is_ready=$.status.conditions[?(@.type=='Ready')].status - capacity_cpu=$.status.capacity.cpu - allocatable_cpu=$.status.allocatable.cpu - capacity_memory=$.status.capacity.memory - allocatable_memory=$.status.allocatable.memory - creation_time=$.metadata.creationTimestamp # (optional)field unit mapping and conversion expressions, origin unit -> final unit # (可选)指标单位映射转换计算表达式, 原单位值 -> 最终单位值 units: - capacity_memory=Ki->Mi - allocatable_memory=Ki->Mi protocol: http http: host: ^_^host^_^ port: ^_^port^_^ url: /api/v1/nodes method: GET ssl: true authorization: type: ^_^authType^_^ bearerTokenToken: ^_^token^_^ parseType: jsonPath parseScript: '$.items.*' - name: namespaces priority: 1 fields: - field: namespace type: 1 i18n: zh-CN: 命名空间 en-US: Namespace - field: status type: 1 i18n: zh-CN: 状态 en-US: Status - field: creation_time type: 1 i18n: zh-CN: 创建时间 en-US: Creation Time aliasFields: - $.metadata.name - $.status.phase - $.metadata.creationTimestamp calculates: - namespace=$.metadata.name - status=$.status.phase - creation_time=$.metadata.creationTimestamp protocol: http http: host: ^_^host^_^ port: ^_^port^_^ url: /api/v1/namespaces method: GET ssl: true authorization: type: ^_^authType^_^ bearerTokenToken: ^_^token^_^ parseType: jsonPath parseScript: '$.items.*' - name: pods priority: 1 fields: - field: pod type: 1 i18n: zh-CN: Pod名称 en-US: Pod Name - field: namespace type: 1 i18n: zh-CN: 命名空间 en-US: Namespace - field: status type: 1 i18n: zh-CN: 状态 en-US: Status - field: restart type: 1 i18n: zh-CN: 重启次数 en-US: Restart Count - field: host_ip type: 1 i18n: zh-CN: 主机IP en-US: Host IP - field: pod_ip type: 1 i18n: zh-CN: Pod IP en-US: Pod IP - field: creation_time type: 1 i18n: zh-CN: 创建时间 en-US: Creation Time - field: start_time type: 1 i18n: zh-CN: 启动时间 en-US: Start Time aliasFields: - $.metadata.name - $.metadata.namespace - $.status.phase - $.spec.restartPolicy - $.status.hostIP - $.status.podIP - $.metadata.creationTimestamp - $.status.startTime calculates: - pod=$.metadata.name - namespace=$.metadata.namespace - status=$.status.phase - restart=$.spec.restartPolicy - host_ip=$.status.hostIP - pod_ip=$.status.podIP - creation_time=$.metadata.creationTimestamp - start_time=$.status.startTime protocol: http http: host: ^_^host^_^ port: ^_^port^_^ url: /api/v1/pods method: GET ssl: true authorization: type: ^_^authType^_^ bearerTokenToken: ^_^token^_^ parseType: jsonPath parseScript: '$.items.*' - name: services priority: 1 fields: - field: service type: 1 i18n: zh-CN: 服务 en-US: Service - field: namespace type: 1 i18n: zh-CN: 命名空间 en-US: Namespace - field: type type: 1 i18n: zh-CN: 类型 en-US: Type - field: cluster_ip type: 1 i18n: zh-CN: 集群IP en-US: Cluster IP - field: selector type: 1 i18n: zh-CN: 选择器 en-US: Selector - field: creation_time type: 1 i18n: zh-CN: 创建时间 en-US: Creation Time aliasFields: - $.metadata.name - $.metadata.namespace - $.spec.type - $.spec.clusterIP - $.spec.selector - $.metadata.creationTimestamp calculates: - service=$.metadata.name - namespace=$.metadata.namespace - type=$.spec.type - cluster_ip=$.spec.clusterIP - selector=$.spec.selector - creation_time=$.metadata.creationTimestamp protocol: http http: host: ^_^host^_^ port: ^_^port^_^ url: /api/v1/services method: GET ssl: true authorization: type: ^_^authType^_^ bearerTokenToken: ^_^token^_^ parseType: jsonPath parseScript: '$.items.*'