# 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 mid-middleware custom-custom monitoring os-operating system monitoring category: cn # The monitoring type eg: linux windows tomcat mysql aws... app: docker # The monitoring i18n name name: zh-CN: Docker en-US: Docker # The description and help of this monitoring type help: zh-CN: HertzBeat 对 Docker 容器的通用性能指标(system、containers、stats)进行采集监控。
注意⚠️:为了监控 Docker 中的容器信息,您需要打开端口,让采集请求获取到对应的信息, 点击查看开启步骤 en-US: HertzBeat monitoring Docker of general performance metrics such as containers, status etc.
Note⚠️:In order to monitoring metrics of Docker, you need to enable the data export port so that the collector can collect data from here,Click here to view the steps. zh-TW: HertzBeat 對 Docker 容器的通用性能指標(system、containers、stats)進行采集監控。
注意⚠️:爲了監控 Docker 中的容器信息,您需要打開端口,讓采集請求獲取到對應的信息, 點擊查看開啓步驟 helpLink: zh-CN: https://hertzbeat.apache.org/zh-cn/docs/help/docker/ en-US: https://hertzbeat.apache.org/docs/help/docker/ # Input params define for monitoring(render web ui by the definition) params: # field - field name identifier - field: host # name - parameter field display name name: zh-CN: 目标Host en-US: Target Host # type-field type, style (most map input tag type attribute) type: host # Is it mandatory? true-required false-optional required: true - field: port name: zh-CN: 端口 en-US: Port type: number # When type is number, use range to represent the range range: '[0,65535]' required: true defaultValue: 2375 - field: ssl name: zh-CN: SSL连接 en-US: SSL # shen the type is boolean, the front end uses switch to display the switch type: boolean required: false metrics: - name: system i18n: zh-CN: 系统 en-US: system # 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 priority: 0 # metrics fields list fields: # metric information includes field name type field type: 0-number, 1-string whether instance is the primary key of the instance unit: metric unit - field: name i18n: zh-CN: 主机名 en-US: name type: 1 - field: version i18n: zh-CN: 版本 en-US: version type: 1 - field: os i18n: zh-CN: 操作系统 en-US: os type: 1 - field: root_dir i18n: zh-CN: 根目录 en-US: root dir type: 1 - field: containers i18n: zh-CN: 容器总数 en-US: containers type: 0 - field: containers_running i18n: zh-CN: 运行容器数 en-US: running containers type: 0 - field: containers_paused i18n: zh-CN: 暂停容器数 en-US: paused containers type: 0 - field: containers_stopped i18n: zh-CN: 已停止容器数 en-US: stopped containers type: 0 - field: images i18n: zh-CN: 镜像数 en-US: images type: 0 - field: ncpu i18n: zh-CN: CPU数量 en-US: ncpu type: 0 - field: mem_total i18n: zh-CN: 内存总量 en-US: total memory type: 0 unit: MB - field: system_time i18n: zh-CN: 系统时间 en-US: system time type: 1 aliasFields: - Name - ServerVersion - OperatingSystem - OSType - Architecture - DockerRootDir - Containers - ContainersRunning - ContainersPaused - ContainersStopped - Images - NCPU - MemTotal - SystemTime calculates: - name = Name - version = OperatingSystem + " " + ServerVersion - os = OSType + " " + Architecture - root_dir = DockerRootDir - containers = Containers - containers_running = ContainersRunning - containers_paused = ContainersPaused - containers_stopped = ContainersStopped - images = Images - ncpu = NCPU - mem_total = MemTotal - system_time = SystemTime units: - mem_total=B->MB protocol: http # When the protocol is the http protocol, the specific collection configuration http: # Host: ipv4 ipv6 domain name host: ^_^host^_^ # port port: ^_^port^_^ # url request interface path url: /info # request method GET POST PUT DELETE PATCH method: GET # Whether to enable ssl/tls, that is, http or https, the default is false ssl: ^_^ssl^_^ # response data analysis method: default-system rules, jsonPath-jsonPath script, website-api usability metric monitoring parseType: default - name: containers i18n: zh-CN: 容器总数 en-US: containers # The smaller the priority value (0-127), the higher the priority of the metrics. Lower-priority metricss will be scheduled after higher-priority metricss have been collected. metricss with the same priority will be scheduled to collect data in parallel. # priority 0's metrics is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue priority: 1 # metrics fields list fields: # metric information includes field name type field type: 0-number, 1-string whether instance is the primary key of the instance unit: metric unit - field: id i18n: zh-CN: 主键 en-US: ID type: 1 - field: name i18n: zh-CN: 名称 en-US: name type: 1 - field: image i18n: zh-CN: 镜像 en-US: image type: 1 - field: command i18n: zh-CN: 命令行 en-US: command type: 1 - field: state i18n: zh-CN: 状态 en-US: state type: 1 - field: status i18n: zh-CN: 状态 en-US: status type: 1 aliasFields: - Id - $.Names[0] - Image - Command - State - Status calculates: - id = Id - name=#`$.Names[0]` - image = Image - command = Command - state = State - status = Status # Protocols used for monitoring and collection eg: sql, ssh, http, telnet, wmi, snmp, sdk protocol: http # When the protocol is the http protocol, the specific collection configuration http: # Host: ipv4 ipv6 domain name host: ^_^host^_^ # port port: ^_^port^_^ # url request interface path url: /containers/json?all=true # request method GET POST PUT DELETE PATCH method: GET # Whether to enable ssl/tls, that is, http or https, the default is false ssl: ^_^ssl^_^ # Response data analysis method: default-system rules, jsonPath-jsonPath script, website-api usability metric monitoring parseType: jsonPath parseScript: '$.*' - name: stats i18n: zh-CN: 状态 en-US: stats priority: 2 fields: - field: name i18n: zh-CN: 名称 en-US: name type: 1 - field: available_memory i18n: zh-CN: 可用内存 en-US: available memory type: 0 unit: MB - field: used_memory i18n: zh-CN: 已用内存 en-US: used memory type: 0 unit: MB - field: memory_usage i18n: zh-CN: 内存使用率 en-US: memory usage type: 0 unit: '%' - field: cpu_delta i18n: zh-CN: 已使用CPU数 en-US: cpu delta type: 0 - field: number_cpus i18n: zh-CN: 可使用CPU数 en-US: cpus number type: 0 - field: cpu_usage i18n: zh-CN: CPU使用率 en-US: cpu usage type: 0 unit: '%' aliasFields: - $.name - $.memory_stats.usage - $.memory_stats.limit - $.cpu_stats.cpu_usage.total_usage - $.precpu_stats.cpu_usage.total_usage - $.cpu_stats.online_cpus - $.cpu_stats.system_cpu_usage - $.precpu_stats.system_cpu_usage calculates: - name=$.name - available_memory = $.memory_stats.limit - used_memory=$.memory_stats.usage - memory_usage=($.memory_stats.usage / $.memory_stats.limit) * 100 - cpu_delta=$.cpu_stats.cpu_usage.total_usage - $.precpu_stats.cpu_usage.total_usage - number_cpus=$.cpu_stats.online_cpus - cpu_usage=(($.cpu_stats.cpu_usage.total_usage - $.precpu_stats.cpu_usage.total_usage) / ($.cpu_stats.system_cpu_usage - $.precpu_stats.system_cpu_usage)) * $.cpu_stats.online_cpus * 100 units: - available_memory=B->MB - used_memory=B->MB protocol: http http: # Host: ipv4 ipv6 domain name host: ^_^host^_^ # port port: ^_^port^_^ # url request interface path url: /containers/^o^id^o^/stats # request method GET POST PUT DELETE PATCH method: GET # Whether to enable ssl/tls, that is, http or https, the default is false ssl: ^_^ssl^_^ params: stream: false # Response data analysis method: default-system rules, jsonPath-jsonPath script, website-api usability metric monitoring parseType: jsonPath parseScript: '$'