跳转至

采集器「华为云-RabbitMQ」配置手册

阅读本文前,请先阅读:

使用本采集器前,必须安装「观测云集成 Core 核心包」及其配套的第三方依赖包

1. 配置结构

本采集器配置结构如下:

字段 类型 是否必须 说明
region_projects dict 必须 所需采集数据的「地域 - 项目 ID」列表
region_projects[#] str:list 必须 键值对中:
Key 代表地域(如:'cn-north-4'
Value 代表该地域下所需采集的项目 ID 列表
总表见附录

2. 配置示例

Python
1
2
3
4
5
configs = {
    'region_projects':{
        'cn-north-4': ['c631f046252d4ebdxxxxxxxxxxx', '15c6ce1c12da4059a8xxxxxxxxxx']
    }
}

配置过滤器(可选项)

本采集器脚本支持用户自定义过滤器,让用户通过对象属性筛选出目标资源。过滤器函数返回值为 True|False

  • True:目标资源需要被采集。

  • False 目标资源不需要被采集

支持筛选的对象属性:

属性 描述
instance_id 实例 ID
engine 实例引擎
connect_address 实例连接IP地址
status 实例状态
port 端口
Python
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
def filter_instance(instance):
    '''
    采集 实例id 为 xxxx 的实例
    '''
    instance_id = instance.get('instance_id')
    if instance_id in ['xxx']:
        return True
    return False


###### Do not modify the following contents #####
from guance_integration__runner import Runner
import guance_huaweicloud_rabbitmq__main as rabbitmq_main
import guance_huaweicloud_ces__main as ces_main


@DFF.API('HuaweiCloud RabbitMQ Collection', timeout=3600, fixed_crontab='* * * * *')
def run():
    collectors = [
        rabbitmq_main.DataCollector(account, collector_configs, filter_instance=filter_instance),
    ]
    Runner(collectors).run()

3. 数据上报格式

数据正常同步后,可以在观测云的「基础设施-资源目录」中查看数据。

上报的数据示例如下:

JSON
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
{
  "measurement": "huaweicloud_rabbitmq",
  "tags": {
    "RegionId"                  : "cn-north-4",
    "project_id"                : "xxxx",
    "enterprise_project_id"     : "0",
    "name"                      : "f127cbb0-xxxx-xxxx-xxxx-aed5a36da5d9",
    "instance_id"               : "f127cbb0-xxxx-xxxx-xxxx-aed5a36da5d9",
    "instance_name"             : "rabbitmq-xxxx",
    "engine"                    : "rabbitmq",
    "status"                    : "RUNNING"
  },
  "fields": {
    "charging_mode"             : "1",
    "connect_address"           : "192.xxx.0.xxx",
    "engine_version"            : "3.8.35",
    "port"                      : "xxxx",
    "access_user"               : "rabbit_mh",
    "available_zones"           : "[实例 JSON 数据]",
    "connect_address"           : "192.xxx.0.xxx",
    "created_at"                : "1687143955266",
    "description"               : "",
    "enable_publicip"           : false,
    "maintain_begin"            : "02:00:00",
    "maintain_end"              : "06:00:00",
    "management_connect_address": "http://192.xxx.0.xxx:15672",
    "resource_spec_code"        : "",
    "specification"             : "rabbitmq.2u4g.single * 1 broker",
    "storage_space"             : 83,
    "total_storage_space"       : 100,
    "used_storage_space"        : 0,
    "message"                   : "{实例 JSON 数据}"
  }
}

部分字段说明如下:

字段 类型 说明
specification String 实例规格。
RabbitMQ实例单机返回vm规格。
RabbitMQ实例集群返回vm规格和节点数。
charging_mode String 付费模式,1表示按需计费,0表示包年/包月计费。
available_zones String 实例节点所在的可用区,返回“可用区ID”。
maintain_begin String 维护时间窗开始时间,格式为HH:mm:ss
maintain_end String 维护时间窗结束时间,格式为HH:mm:ss
created_at String 完成创建时间。格式为时间戳,指从格林威治时间 1970年01月01日00时00分00秒起至指定时间的偏差总毫秒数。
resource_spec_code String 资源规格标识
dms.instance.rabbitmq.single.c3.2u4g:RabbitMQ单机,vm规格2u4g
dms.instance.rabbitmq.single.c3.4u8g:RabbitMQ单机,vm规格4u8g
dms.instance.rabbitmq.single.c3.8u16g:RabbitMQ单机,vm规格8u16g
dms.instance.rabbitmq.single.c3.16u32g:RabbitMQ单机,vm规格16u32g
dms.instance.rabbitmq.cluster.c3.4u8g.3:RabbitMQ集群,vm规格4u8g,3个节点
dms.instance.rabbitmq.cluster.c3.4u8g.5:RabbitMQ集群,vm规格4u8g,5个节点
dms.instance.rabbitmq.cluster.c3.4u8g.7:RabbitMQ集群,vm规格4u8g,7个节点
dms.instance.rabbitmq.cluster.c3.8u16g.3:RabbitMQ集群,vm规格8u16g,3个节点
dms.instance.rabbitmq.cluster.c3.8u16g.5:RabbitMQ集群,vm规格8u16g,5个节点
dms.instance.rabbitmq.cluster.c3.8u16g.7:RabbitMQ集群,vm规格8u16g,7个节点
dms.instance.rabbitmq.cluster.c3.16u32g.3:RabbitMQ集群,vm规格16u32g,3个节点
dms.instance.rabbitmq.cluster.c3.16u32g.5:RabbitMQ集群,vm规格16u32g,5个节点
dms.instance.rabbitmq.cluster.c3.16u32g.7:RabbitMQ集群,vm规格16u32g,7个节点

tags、fields 中的字段可能会随后续更新有所变动

tags.name 值为实例 ID,作为唯一标识

fields.message、fields.available_zones 为 JSON 序列化后字符串

X. 附录

请参考华为云官方文档: