配置参数
描述云原生集群优化平台配置文件的配置参数。
概述
云原生集群优化平台必须依赖于配置文件才能运行。可通过命令行参数--config来制定配置文件位置,例如:--config=conf/cluster-optimizer.yaml。默认路径为conf/cluster-optimizer.yaml
配置文件格式为YAML格式,示例如下:
server:
  port: 7070
engine:
  maxQueryDuration: 4h
optconf:
  dataSource:
    name: "root:optimizer@tcp(127.0.0.1:3306)/optconf?createDatabaseIfNotExist=true&charset=utf8mb4&readTimeout=30s&writeTimeout=30s&parseTime=true&loc=Local"
    maxOpenConns: 10
optdata:
  dataSource:
    name: "root:optimizer@tcp(127.0.0.1:3306)/optdata?createDatabaseIfNotExist=true&charset=utf8mb4&readTimeout=30s&writeTimeout=30s&parseTime=true&loc=Local"
    maxOpenConns: 10
optimize:
  defaultCron: "0 0 1 * * ?"
  strategyConfigs:
    "OOM": 
      enabled: false
    "Resource Recommendation":
      enabled: false
    "Low Utilization Node":
      enabled: false
    "No Quota":
      enabled: false
  enabled: true
sms:
  enabled: false
  ...
notification:
  templateBasePath: templates/notification
配置参数
server.port
参数server.port是云原生集群优化平台挺的对外服务端口。默认值是7070。
engine.maxQueryDuration
参数engine.maxQueryDuration设置查询度量服务器(例如Prometheus)的最大查询周期,默认值是1天。当查询时间范围超过最大查询周期是,会将其分割为多个查询窗口分别查询,从而降低服务器的压力。
optconf
参数optconf用于配置优化配置库。
其子参数包括dataSource.name和maxOpenConns,下面分别进行阐述。
dataSource.name
参数dataSource.name用于设置Mysql数据源名称,例如root:optimizer@tcp(127.0.0.1:3306)/optconf?createDatabaseIfNotExist=true&charset=utf8mb4&readTimeout=30s&writeTimeout=30s&parseTime=true&loc=Local。
其中,createDatabaseIfNotExist表示在数据库不存在的时候,优先创建此数据库。
maxOpenConns
参数maxOpenConns设置数据库最大开启连接数。
optdata
参数optdata用于配置优化数据库。
其子参数包括dataSource.name和maxOpenConns,其含义与optconf相应子参数一致,不再阐述。
optimize
参数optimize用于设置优化引擎相关参数,下面将分别阐述其子参数设置。
defaultCron
参数defaultCron用于设置优化引擎默认的调度参数,默认值是0 0 1 * * ?(每天凌晨1点执行),
enabled
参数enabled设置是否启用该优化引擎,默认值是true。
strategyConfigs
参数strategyConfigs用于配置该优化引擎的策略配置。其配置为键-值对的方式,键是策略的名称,值是该策略的配置。
策略名称是字符串,策略值的内容如下:
  enabled: false
  cron: "0 0 1 * * ?"
  parameters:
    - key1: value1
    - key2: value2
其中,enabled表示是否启用该优化策略,默认值是true。cron设置该策略的调度参数。parameters为策略提供配置,不同的策略,其参数存在差异,下面分别说明。
- 节点组推荐策略
Node Group Recommendation 
| 参数名 | 默认值 | 描述 | 
|---|---|---|
cpuMaxUsage | 
0.7 | 节点组最大CPU利用率,取值范围为*(0,1]* | 
memoryMaxUsage | 
0.8 | 节点组最大内存利用率,取值范围为*(0,1]* | 
cpuMinCores | 
2 | 推荐实例类型CPU最小值,单位核,必须大于或等于1 | 
memoryMinGBs | 
4 | 推荐实例类型内存最小值,单位GB,必须大于或等于1 | 
recommendTopK | 
5 | 最多推荐的实例类型数量,取值范围为*[1,10]* | 
- 节点推荐
Node Recommendation 
| 参数名 | 默认值 | 描述 | 
|---|---|---|
duration | 
24小时 | 时间范围,取值是Duration。 | 
step | 
24小时 | 时间范围步长,取值是Duration。 | 
resolution | 
2分钟 | 查询分辨率,取值是Duration。 | 
cpuStep | 
1 | CPU最小步长,单位核 | 
memoryStep | 
1 | 内存最小步长,单位GB | 
cpuMaxUsage | 
0.6 | 节点最大CPU利用率 | 
memoryMaxUsage | 
0.8 | 节点最大内存利用率 | 
- 低利用率节点
Underutilized Node 
| 参数名 | 默认值 | 描述 | 
|---|---|---|
duration | 
24小时 | 时间范围,取值是Duration | 
step | 
24小时 | 每批范围,取值是Duration | 
resolution | 
2分钟 | 查询分辨率 | 
cpuAvgThreshold | 
0.2 | CPU平均利用率阈值 | 
cpuMaxThreshold | 
0.6 | CPU最大利用率阈值 | 
memoryAvgThreshold | 
0.3 | 内存平均利用率阈值 | 
memoryMaxThreshold | 
0.6 | 内存最大利用率阈值 | 
- 低利用率GPU节点
Underutilized GPU Node。 
| 参数名 | 默认值 | 描述 | 
|---|---|---|
duration | 
24 | 时间范围,取值是Duration,默认值24小时 | 
step | 
24 | 每批范围,取值是Duration,默认值24小时 | 
resolution | 
2 | 查询分辨率,单位分钟 | 
gpuAvgThreshold | 
0.2 | GPU平均利用率阈值 | 
gpuMaxThreshold | 
0.8 | GPU最大利用率阈值 | 
- 低利用率磁盘
Underutilized Disk 
| 参数名 | 默认值 | 描述 | 
|---|---|---|
duration | 
24 | 时间范围,取值是Duration,默认值24小时 | 
step | 
24 | 每批范围,取值是Duration,默认值24小时 | 
resolution | 
2 | 查询分辨率,单位分钟 | 
threshold | 
0.3 | 磁盘利用率阈值,低于此阈值,我们认为利用率低。 | 
- 未使用持久化存储卷
Unused PV 
| 参数名 | 默认值 | 描述 | 
|---|---|---|
boundDuration | 
1 | 持久化存储卷绑定周期,默认值1小时。若在持久化存储卷绑定周期未绑定且未关联Persistent Volume Claim,则认为该存储卷未被使用。 | 
- 低利用率持久化存储卷
Underutilized PV 
| 参数名 | 默认值 | 描述 | 
|---|---|---|
duration | 
24 | 时间范围,取值是Duration,默认值24小时 | 
step | 
24 | 每批范围,取值是Duration,默认值24小时 | 
resolution | 
2 | 查询分辨率,单位分钟 | 
threshold | 
0.3 | PV利用率阈值,低于此阈值,我们认为利用率低。 | 
- 应用资源推荐
Resource Recommendation 
| 参数名 | 默认值 | 描述 | 
|---|---|---|
duration | 
24*8 | 时间范围,取值是Duration,默认值8天 | 
step | 
24 | 每批范围,取值是Duration,默认值24小时 | 
resolution | 
2 | 查询分辨率,单位分钟 | 
cpuStep | 
0.05 | CPU最小步长,单位核 | 
memoryStep | 
0.1 | 内存最小步长,单位GB | 
cpuMaxUsage | 
0.6 | 节点最大CPU利用率 | 
memoryMaxUsage | 
0.8 | 节点最大内存利用率 | 
- 应用未设置资源额度
Resource Quota Unset 
| 参数名 | 默认值 | 描述 | 
|---|---|---|
duration | 
24*8 | 时间范围,取值是Duration,默认值8天 | 
step | 
24 | 每批范围,取值是Duration,默认值24小时 | 
resolution | 
2 | 查询分辨率,单位分钟 | 
cpuStep | 
0.05 | CPU最小步长,单位核 | 
memoryStep | 
0.1 | 内存最小步长,单位GB | 
cpuMaxUsage | 
0.6 | 节点最大CPU利用率 | 
memoryMaxUsage | 
0.8 | 节点最大内存利用率 | 
- 内存溢出
OOM 
| 参数名 | 默认值 | 描述 | 
|---|---|---|
duration | 
24*8 | 时间范围,取值是Duration,默认值8天,仅关注该时间范围内出现内存溢出的事件。 | 
interval | 
1小时 | 过期时间清理周期 | 
短信发送配置sms
短信发送配置主要为系统发送验证码/安全码,其配置参数如下:
| 参数名 | 默认值 | 描述 | 
|---|---|---|
enabled | 
true | 
是否开启短信 | 
provider | 
短信服务商,目前支持AWS、Azure、阿里云、腾讯云、百度云等 | |
accessKeyId | 
AccessKeyId对应于短信服务商的相应字段,不同的短信服务商对应的字段略有差异。 | |
accessKeySecret | 
AccessKeySecret对于应短信服务商的相应字段,不同的短信服务商对应的字段略有差异。 | |
signName | 
短信服务商的签名 | |
template | 
短信服务商的模板ID | |
extras | 
[] | 
短信服务商所需其他参数有序列表 | 
示例:对于腾讯云来说,其配置如下:
sms:
  enabled: true
  provider: "Tencent Cloud SMS"
  accessKeyID: AK******
  accessKeySecret: NY******
  signName: 云智优本
  template: 210000
  extras: 
  - 1000000000
其中,accessKeyID和accessKeySecret是腾讯云短信服务的密钥,分别对应云API密钥上申请的标识身份的SecretId及其对应的SecretKey。
signName是短信签名,template是短信模板ID,extra是额外参数,在腾讯云短信服务中,extra是应用ID,分为对应于发送短信接口中的SignName、TemplateId和SmsSdkAppId.
notification
参数notification用于配置优化平台的通知配置。
notification.templateBasePath
参数notification.templateBasePath设置通知模板的路径,默认值是templates/notification。
目前,默认的模板名称是default。
邮件配置 email
邮件配置主要用于系统发送电子邮件。其配置参数如下:
| 参数名称 | 默认值 | 描述 | 
|---|---|---|
enabled | 
true | 
确定是否启用邮件功能。 | 
provider | 
指定电子邮件服务提供商。支持的提供商包括 AWS、Azure、阿里云、腾讯云等。 | |
clientId | 
对应电子邮件服务提供商的 ClientId。不同提供商的字段名称可能有所不同。 | 
|
clientSecret | 
对应电子邮件服务提供商的 ClientSecret。不同提供商的字段名称可能有所不同。 | 
|
host | 
指定电子邮件服务提供商 SMTP 服务器的主机名或 IP 地址。这对于将邮件流量定向到正确的服务器以处理外发邮件至关重要。 | |
port | 
定义用于连接电子邮件服务提供商 SMTP 服务器的网络端口。常见的端口值为 TLS/STARTTLS 的 587、SSL 的 465 和非加密通信的 25。端口选择必须符合电子邮件服务的安全要求。 | |
disableSSL | 
确定是否禁用与 SMTP 服务器连接的 SSL 加密。如果设置为 true,则关闭 SSL,这可能对某些服务器配置或在加密由其他方式管理的环境中是必要的。但是,禁用 SSL 可能会使通信暴露于潜在的安全风险中。 | |
endpoint | 
定义用于连接电子邮件服务提供商 API 的 URL 或特定网络端点。这对于基于云或 API 驱动的电子邮件服务特别重要,在这些服务中,电子邮件通过 HTTP 请求而不是传统的 SMTP 发送。 | |
method | 
指定与电子邮件服务提供商 API 交互时使用的 HTTP 方法(如 POST、GET、PUT 等)。通常使用 POST 来发送电子邮件,因为它允许在请求体中传输电子邮件内容和元数据。 | |
region | 
指定电子邮件服务提供商服务器所在的地理区域。这对于优化延迟、遵守数据驻留要求以及可能的成本管理非常重要,具体取决于电子邮件服务提供商。 | |
template | 
电子邮件服务提供商用于发送消息的模板。默认值为 templates/email_code.tpl。 | 
|
fromAddress | 
设置出现在电子邮件 “发件人” 字段中的电子邮件地址。收件人会将此地址视为发件人地址。此地址应为电子邮件服务提供商系统中已验证或授权的地址。 | |
fromName | 
指定与 fromAddress 关联的显示名称。此名称会在收件人的收件箱中显示为发件人的名称,增强电子邮件的品牌形象和识别度。 | 
许可证配置 license
许可证配置主要用于商业版的许可证配置。其配置参数如下:
| 参数名称 | 默认值 | 描述 | 
|---|---|---|
accessKeyId | 
accessKeyId 是分配给您的账户或应用程序的唯一标识符,用于在线检索许可证时对请求进行身份验证。此密钥是认证过程的关键部分,并与 accessKeySecret 一起使用,以确保对许可服务的安全访问。 | 
|
accessKeySecret | 
accessKeySecret 是与 accessKeyId 配对的密钥,用于对 API 请求进行签名和身份验证,确保与许可服务的安全通信。此密钥必须保密,因为它提供了与许可证检索和验证相关的关键操作的访问权限。 | 
|
managerBaseUrl | 
managerBaseUrl 指定许可管理服务的基本 URL。此 URL 用作与许可证检索相关的所有 API 请求的端点。 | 
|
certificate | 
指的是离线提供的许可证证书。此证书用于验证许可证的真实性和完整性。 | |
signature | 
包含离线提供的许可证加密签名。此签名用于验证许可证证书的完整性和真实性,确保其未被篡改。 |