Skip to main content

配置

Perfsee 运行时配置主要来源有三个:配置文件、环境变量和数据库,他们会按顺序被加载,后加载的数据会对之前的配置进行覆盖。

  1. 加载 ./packages/platform-server/src/config/default.ts 文件中的默认配置
  2. 加载 ./packages/platform-server/src/perfsee.config.ts 文件中的自定义配置
  3. 加载环境变量,依据 packages/platform-server/src/perfsee.env.ts 中的定义去覆盖配置
  4. 加载数据库 ApplicationSetting 表中的配置

修改配置

新增配置项

如果需要新增配置项,应在 ./packages/platform-server/src/config/def.ts 中相应的位置声明其类型并添加上详细的配置说明及使用方式。

// 例
export interface PerfseeConfig {
/**
* new config used for xxx
*/
newConfig: {
/**
* config field
*
* @default 'default value'
* @env PERFSEE_NEW_CONFIG_FIELD
* @see https://docs.for.such.config
*/
field: string
}
}

修改配置文件

配置文件存放位置为 ./packages/platform-server/src/perfsee.config.ts,可以根据自己的需求修改其中的配置。

caution

配置文件的修改需要在服务重新启动后生效

perfsee.newConfig = {
field: 'new value',
}

修改数据库配置

我们提供了管理员界面,可以在其中修改存储在数据库中的配置,修改后的配置会被保存到数据库中,并且立即生效。

配置项说明

基础配置

配置名类型环境变量默认值说明
secretstringPERFSEE_SERVER_SECRET加密密钥,用于加密 cookies, tokens 等数据
httpsbooleanPERFSEE_SERVER_HTTPSfalse是否启用 https
hoststringPERFSEE_SERVER_HOSTlocalhost服务器部署的域名
portnumberPERFSEE_SERVER_PORT3000服务器监听的端口
pathstringPERFSEE_SERVER_SUB_PATH''(空字符串)服务器部署的子路径,如果没有部署在根路径,那么需要设置此项
// 例
perfsee.https = true
perfsee.host = 'perfsee.com'

MySQL

所有的 MySQL 配置均在 perfsee.mysql 对象中设置。

配置名类型环境变量默认值说明
mysql.hoststringMYSQL_HOSTlocalhost数据库地址
mysql.portnumberMYSQL_PORT3306数据库端口
mysql.usernamestringMYSQL_USERNAMEroot数据库用户名
mysql.passwordstringMYSQL_PASSWORDroot数据库密码
mysql.databasestringMYSQL_DATABASEperfsee数据库名称
mysql.urlstringMYSQL_URL数据库连接地址,如果设置了此项,那么其他数据库配置将被忽略
// 例
perfsee.mysql = {
host: 'localhost',
port: 3306,
username: 'root',
password: 'root',
database: 'perfsee',
}
// 或
perfsee.mysql = {
url: 'mysql://root:root@localhost:3306/perfsee',
}

更多 MySQL 的相关配置可以参考 TypeORM 文档

Redis

所有的 Redis 配置均在 perfsee.redis 对象中设置。

配置名类型环境变量默认值说明
redis.hoststringREDIS_HOSTlocalhostRedis 地址
redis.portnumberREDIS_PORT6379Redis 端口
redis.passwordstringREDIS_PASSWORDRedis 链接密码
redis.dbnumberREDIS_DB0Redis 数据库
// 例
perfsee.redis = {
host: 'localhost',
port: 6379,
password: '',
db: 0,
}

更多 Redis 的相关配置可以参考 ioredis 文档

GraphQL

所有的 GraphQL 配置均在 perfsee.graphql 对象中设置。

配置名类型环境变量默认值说明
graphql.debugbooleantrue是否启用 GraphQL 调试模式
graphql.playgroundboolean | objecttrue是否启用 GraphQL playground
graphql.pathstring/graphqlGraphQL 端点服务的路径,默认通过 domain.com/graphql 访问
// 例
perfsee.graphql = {
debug: false,
playground: true,
}

更多 GraphQL 配置参考 Apollo Server 文档

邮件

所有的邮件配置均在 perfsee.email 对象中设置。

配置名类型环境变量默认值说明
email.enablebooleanEMAIL_ENABLEfalse是否启用邮件服务
email.smtp.hoststringEMAIL_SMTP_HOST邮件服务地址
email.smtp.portnumberEMAIL_SMTP_PORT邮件服务端口
email.smtp.securebooleanEMAIL_SMTP_SECURE邮件服务是否启用 SSL
email.smtp.auth.userstringEMAIL_SMTP_AUTH_USER邮件服务用户名
email.smtp.auth.passstringEMAIL_SMTP_AUTH_PASS邮件服务密码
email.from.namestringEMAIL_FROM_NAME邮件发送者名称
email.from.addressstringEMAIL_FROM_ADDRESS邮件发送者地址
// 例
perfsee.email.enable = true
perfsee.email.smtp = {
host: 'smtp.example.com',
port: 465,
secure: true,
auth: {
user: 'username',
pass: 'password',
},
}
perfsee.email.from = {
name: 'Perfsee',
address: 'no-reply@perfsee.com',
}

对象存储

所有的对象存储配置均在 perfsee.objectStorage 对象中设置。

配置名类型环境变量默认值说明
objectStorage.enablebooleanfalse是否启用对象存储,false 为仅使用本地临时存储
objectStorage.artifactobject{}用于存储分析报告的对象存储配置
objectStorage.jobLogobject用于存储分析日志文件的对象存储配置。留空则使用 objectStorage.artifact 存储日志
// 例
perfsee.objectStorage.artifact = {
provider: 'aws',
region: 'eu-west-1',
aws_access_key_id: '',
aws_secret_access_key: '',
// other aws storage perfsee...
}
// 如果不需要单独存储日志,可以不配置
perfsee.objectStorage.jobLog = {
provider: 'aws',
region: 'eu-west-1',
aws_access_key_id: '',
aws_secret_access_key: '',
// other aws storage perfsee...
}

Auth

所有的 Auth 配置均在 perfsee.auth 对象中设置。

配置名类型环境变量默认值说明
auth.enableSignupbooleantrue是否允许用户直接注册
auth.enableOauthbooleanfalse是否允许用户使用第三方账号登录
auth.oauthProvidersobjectDEFAULT_ADMIN_EMAILadmin@perfsee.com第三方登录配置
auth.adminobjectDEFAULT_ADMIN_PASSWORD默认管理员账号配置
// 例
perfsee.auth.enableSignup = true
perfsee.auth.enableOauth = true
perfsee.auth.oauthProviders = {
github: {
clientId: 'xxx',
clientSecret: 'xxx',
args: {
scope: ['user'],
response_type: 'user',
},
},
}
perfsee.auth.admin = {
email: 'admin@perfsee.com',
password: 'xxx',
}

项目

所有的项目配置均在 perfsee.project 对象中设置。

配置名类型环境变量默认值说明
project.enableCreatebooleantrue是否允许用户直接创建项目
project.enableDeletebooleantrue是否允许用户删除项目
project.enableImportbooleanfalse是否允许用户从第三方仓库导入项目
project.externalProvidersArray['github']允许导入的第三方仓库类型
// 例
perfsee.project = {
enableCreate: true,
enableDelete: true,
enableImport: true,
externalProviders: ['github'],
}

任务

所有的任务配置均在 perfsee.job 对象中设置。

配置名类型环境变量默认值说明
job.pollingLimitnumber10每个实例最大同时处理的任务请求数量
job.pollingQueueLimitnumber10每个实例最大任务请求等待队列长度
job.pollingTimeoutSecnumber5任务请求超时时间
job.executionTimeoutSecnumber1800任务执行超时时间
job.defaultZonestring'China'默认任务区域
job.zonesstring[]['China']任务区域列表
// 例
perfsee.job = {
pollingLimit: 10,
pollingQueueLimit: 10,
pollingTimeoutSec: 5,
executionTimeoutSec: 30 * 60,
}

Runner

所有的 Runner 配置均在 perfsee.runner 对象中设置。

配置名类型环境变量默认值说明
runner.validateRegistrationTokenbooleantrue是否验证 Runner 注册时的 Token
// 例
// 在开发模式中关闭 Runner 注册时的 Token 验证
perfsee.runner.validateRegistrationToken = perfsee.env !== 'development'

集成服务

所有的集成服务配置均在 perfsee.integration 对象中设置。

GitHub Bot

Github 集成配置,用于提供项目导入及 PR 检查等 Github Bot 功能。

// 例
perfsee.integration.github = {
enable: true,
appName: 'perfsee',
appId: 'xxx',
privateKeyFile: '/path/to/bot/private.key',
}