@ dotcom- relisity- kit/ app- info
一个以一致的方式获取应用信息(如系统代码)的效用. 此模块是 FT.com 可靠性工具包。 。 。 .
使用量
安装 @dotcom-reliability-kit/app-info 作为依附关系:
npm install --save @dotcom-reliability-kit/app-info
在代码中包含 :
import appInfo from '@dotcom-reliability-kit/app-info';
[TIP] 如果您使用此软件包并带有 TypeScript , 我们建议您使用以下设置:
tsconfig.json避免类型错误的文件 :{ "esModuleInterop": true, "module": "nodenext", "moduleResolution": "nodenext" }
这个 appInfo 对象具有若干属性,可用于访问应用程序信息.
appInfo.commitHash
得到承诺散列 应用程序上一个部署。 这将是一个字符串( 如果 process.env.HEROKU_SLUG_COMMIT, (中文(简体) ), process.env.GIT_COMMIT_LONG,或 process.env.GIT_COMMIT 定义)或 null 否则.
对赫鲁库来说 这取决于 Dyno 元数据实验室特性 并且不会参与地方发展.
对于AWS Lambda,您可以使用一个插件,例如 无服务器插件- git 变量 或设置 GIT_COMMIT 部署时的环境变量.
appInfo.environment
获取应用程序环境, 通常是 development 或者说 production。这将是一个字符串,按顺序尝试并默认为 development数字 :
DEPLOYMENT_ENVIRONMENTRELEASE_ENVENVIRONMENTNODE_ENV
appInfo.region
获取应用程序正在运行的区域 。 这将是一个字符串( 如果 process.env.REGION 或者说 process.env.AWS_REGION 定义)或 null 否则.
appInfo.releaseDate
获取应用程序Heroku发布日期 。 这将是一个字符串( 如果 process.env.HEROKU_RELEASE_CREATED_AT 定义)或 null 否则.
对赫鲁库来说 这取决于 Dyno 元数据实验室特性 并且不会参与地方发展.
appInfo.releaseVersion
获取应用程序 Heroku 发布版本 。 这将是一个字符串( 如果 process.env.HEROKU_RELEASE_VERSION 或者说 process.env.AWS_LAMBDA_FUNCTION_VERSION 定义)或 null 否则.
对赫鲁库来说 这取决于 Dyno 元数据实验室特性 并且不会参与地方发展.
appInfo.systemCode
拿到申请表 Biz 行动 系统代码。 这将是一个字符串( 如果 process.env.SYSTEM_CODE 如果不是定义,则将从 name 财产 $CWD/package.json如果两者都不存在,则将注定 null。 。 。 .
如果系统代码是从应用程序读取的 package.json 然后它将被剥去任何 "ft-" 前缀 – 这是一个遗留名称, 我们的应用系统代码不是从它开始的 .
appInfo.processType
获取运行进程的类型, 即应用程序内当前进程的名称 .
将 AWS Lambda 改为: process.env.AWS_LAMBDA_FUNCTION_NAME。 。 。 .
对于Heroku来说,这是从以下第一部分衍生出来的: process.env.DYNO,由Heroku设定,例如,一个叫作 web.1 将会有 processType 设置为 web。应用程序中的流程类型由应用程序的 Procfile。 。 。 .
如果没有 process.env.AWS_LAMBDA_FUNCTION_NAME 或者说 process.env.DYNO 设置中,此属性将会是 null
appInfo.cloudProvider
获取云提供器的类型, 它被设定为 Heroku 或 AWS 取决于我们认为系统的主机位置 .
这来自一些我们高度信任的环境变量,只有Heroku或AWS/Lambda定义
appInfo.herokuAppId
拿着 process.env.HEROKU_APP_ID 这是应用程序的独有标识符。例如“9daa2797-e49b-4624-932f-ec3f9688e3da”
这是由 Dyno 元数据衍生出来的
appInfo.herokuDynoId
拿着 process.env.HEROKU_DYNO_ID 是阴道标识符
这是由 Dyno 元数据衍生出来的
appInfo.instanceId
获取应用程序运行实例的独有标识符 。 这将是一个不同的UUID,每个运行的过程,包括集群工人.
appInfo.semanticConventions
此对象包含主对象的别名 appInfo 对应 OpenTeleometry 属性 语义公约。我们使用下列绘图:
appInfo.semanticConventions.cloud.provider别名appInfo.cloudProviderappInfo.semanticConventions.cloud.region别名appInfo.regionappInfo.semanticConventions.deployment.environment别名appInfo.environmentappInfo.semanticConventions.service.name别名appInfo.systemCodeappInfo.semanticConventions.service.version别名appInfo.releaseVersionappInfo.semanticConventions.service.instance.id别名appInfo.instanceId
[尖叫声] 其它所有属性默认为
null如果无法计算,则语义公约属性默认为undefined。这是为了确保与 OpenTeleometry SDKs 更好的兼容性.
移动
咨询 移徙指南 如果你想要迁移到这个软件包的后期主要版本.
捐款
见 可靠性工具包中心贡献指南。 。 。 .
许可证
凭 麻省理工学院 执照.
版权:"2022","金融时报"有限公司.