采集器「Azure-SQL Servers Database 采集」配置手册
阅读本文前,请先阅读:
使用本采集器前,必须安装「观测云集成 Core 核心包」及其配套的第三方依赖包
1. 配置结构
本采集器配置结构如下:
字段 |
类型 |
是否必须 |
说明 |
subscriptions |
list |
必须 |
所需采集的订阅 ID 列表 |
subscriptions[#] |
str |
|
订阅 ID |
locations |
list |
非必须 |
地域列表 |
locations[#] |
str |
|
地域,例:westus2 |
2. 配置示例
指定订阅
采集订阅 ID 为:xxxx1
下的所有实例对象
Python |
---|
| collector_configs = {
'subscriptions': ['xxxx1']
}
|
指定订阅和地域
采集订阅 ID 为:xxxx1 且在 westus2
,westus
地域下的所有实例对象
Python |
---|
| collector_configs = {
'subscriptions': ['xxxx1'],
'locations': ['westus2', 'westus']
}
|
配置过滤器(可选项)
本采集器脚本支持用户自定义过滤器,让用户通过对象属性筛选出目标资源。过滤器函数返回值为 True|False
-
True:目标资源需要被采集。
-
False 目标资源不需要被采集
支持筛选的对象属性:
属性 |
描述 |
name |
资源 ID |
resourceId |
资源 ID (同 name 字段) |
resourceName |
资源名称 |
resourceGroup |
资源组名称 |
location |
资源位置 |
databaseId |
数据库 ID |
status |
数据库的状态 |
Python |
---|
1
2
3
4
5
6
7
8
9
10
11
12
13
14 | # 示例:开启过滤器,根据对象的 resourceId 属性过滤,配置格式如下:
def filter_instance(instance):
'''
采集 resourceId 为 xxx 的实例
'''
# return True
r_id = instance['resourceId']
if r_id in ['xxx']:
return True
return False
@DFF.API('Azure-SQL Servers Databases Collection', timeout=3600, fixed_crontab='*/15 * * * *')
def run():
Runner(main.DataCollector(account, collector_configs, filters=[filter_instance])).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 | {
"measurement": "azure_sql_servers_databases",
"tags": {
"cloud_provider" : "azure",
"database_id" : "0e29be1c-xxxx",
"resource_name" : "master",
"location" : "westus2",
"name" : "/subscriptions/{subscriptionId}/resourcegroups/xxx/providers/microsoft.sql/servers/sss/databases/master",
"resource_group" : "xxx",
"resource_id" : "/subscriptions/{subscriptionId}/resourcegroups/xxx/providers/microsoft.sql/servers/sss/databases/master",
"status" : "Online",
"subscription_id": "{subscriptionId}",
"tenant_id" : "ce9fe5b4-xxxx"
},
"fields": {
"collation" : "SQL_Latin1_General_CP1_CI_AS",
"creation_date" : "2024-09-05T07:44:02.883Z",
"current_sku" : "{数据库 SKU}",
"max_size_bytes": "53687091200",
"message" : "{实例 JSON 数据}",
"read_scale" : "Disabled",
"tags" : "{Azure 控制台配置的 tags}"
}
}
|
tags、fields 中的字段可能会随后续更新有所变动
fields.message、fields.current_sku、fields.tags 均为 JSON 序列化后字符串
X. 附录
Azure 相关文档: