共享用途
这个项目拥有一些通用的公用功能,可以在F5自动化工具链项目中共享.
捐款
通过投稿/README.md阅读,了解如何为该项目出稿.
ipUtils (英语)
这些公用事业将协助IP地址计算
最小化IP( ip)
最小化 F5 IPv4/6 地址的字符串表示式中的零
iIPv4( ip)
检查地址是否为 IPv4
isIPv6( ip) 语句
检查地址是否为 IPv6
分块地址( 地址)
将 IPv4 或 IPv6 地址分割为地址和端口对
获取 Cidr 从Netmask( netmask, 无斜线)
返回给定网盖的 CIDR 。 可选返回 CIDR 不带“ /”
解析IpAddress( 地址)
将一个IP地址分解到它的组件: IP, 路由域, CIRD, netmask, 有路由的IP
承诺Utils
这些公用设施将帮助管理你计划中的承诺.
延迟( t, v)
此函数会延迟 t (时间为毫秒) 。 其解决后 v (可选).
序列(函数)
此函数将依次解决一系列函数 。 注意每个函数必须返回承诺 .
并行( 函数 [])
此功能将同时解决一系列功能. 注意每个函数必须返回承诺 .
种族成功( 保证[ )
此功能将运行一系列承诺 。 然后用第一个承诺的结果来决定.
重试 保证( fn, 选项, 参数[ ]
fn - 要运行的函数 . 选项 - 有.retries和.delay的对象。 两者都需要. args - 一系列被传递到 fn.
这将用参数参数运行函数 fn, 最多等于选项的数倍 。 复试,或至决.
阵列Utils
这种utils的集合侧重于对数组有用的通用函数.
保证阵列( 可变)
取出变量,将其转换为数组(如果不是数组),然后返回。 如果未定义, 将会返回 []。 。 。 .
将ArrayContain anyOf(阵列1,阵列2)
检查阵列中是否有 tArray 成员 .
行算盘( 阵列, 目标)
检查是否有目标成员在阵列中.
插入 OrAtBetGinning( 阵列、 目标、 项、 比较)
在数组中或数组起步时,在另一项目后插入项目.
在OrAtBetGinning(阵列、目标、项目、比较)之前插入
在数组或数组起步处,在另一个项目之前插入一个项目.
插入 OrAtEnd( 阵列、 目标、 项目、 比较)
在数组中或数组结束时,在另一个项目后插入项目.
插入 OrAtEnd( 阵列、 目标、 项、 比较)
在数组或数组末端的另外一个项目之前插入一个项目.
请求Utils
此图集用于发送 http 请求 .
发送(请求选项、正文、选项)
使用选项和正文发送 http/ https 请求 。 这个是包裹 节点的 http/https 请求功能.
安全断层
这些 BIG- IP 只使用 BIG- IP 半径服务器为您加密并解密 JSON 字符串 .
加密( 字符串)
此函数将使用字符串并返回该字符串的加密数组 .
解密( 字符串)
此函数将带入加密字符串并返回未加密字符串 .
追踪器
此 lib 包含有利于跟踪性能的类别和功能,当前执行使用 Jaeger,它遵循 OpenTeleometry (参见 https://openterometry.io/docs/concepts/data-sources/ 互联网档案馆的存檔,存档日期2013-12-21 基础教育)
性能追踪不用于生产但是由于追踪与生产代码的其余部分是结合的,a Tracer 必须存在,然后如果在即时(默认)时无法启用,则将起到不操作的作用.
构建
杰格客户
这个 jaeger-client 被列出为可选的依赖性,只有在追踪器初始化时才会被加载/需要,并且只有在能够进行追踪时才会被载入。 这样,在创建出出产楼时,我们就不会包括模块.
建议项目使用单独的脚本来创建可追踪的建筑. 例如,可使用下列方法创建生产大楼: npm run build 用于 npm ci --only=production --no-optional,而使用 npm run buildperf 用于 npm ci --only=production,然后允许包含可选的减费.
错误包
Jaeger 对更古老的节点版本投出错误( 具体针对依赖性) thriftrw -> error),其中只读名称属性正在被修改。 因此,我们不得不修改包锁.json 并把它钉到7.2.1, 否则, thriftw 使用它自己的节点单元子目录,更古老的错误版本为7.0.2.
设置
有两种方式可以在即时反应时启动追踪器:
- 通过构造器选项,或
- 设置嵌入变量
- 这是快速调试或尚未持续设置的项目的选项 .
- App设置一般在 App 启动完成后被加载; env 变量充当备份,以便在 app 启动时启动跟踪并提前获取信息.
- 对于使用 iControl REST 框架的项目: 重新点名是具体的, 它是如何启动的, 运行的文件需要更新以包含 env 变量)
示例变量:
export F5_PERF_TRACING_ENDPOINT=http://{jaegerHost}:{jaegerPort}/api/traces
export F5_PERF_TRACING_DEBUG=true
export F5_PERF_TRACING_ENABLED=true
使用量
西班牙语
- 跨度是追踪的基本单位。 一个跨度可以有其他相关的跨度,或者在同一级别,或者作为儿童跨度. 子女跨度表示在父母跨度内完成的某些操作的子集.
- 一个跨可以有与之相关的日志(事件),以及标记(与跨度相关的键值对属性).
- 给定带url的典型 REST 端点的样本用途
/shared/myProject/myResource/{myResourceId}它允许 POST 创建新资源-
使用
tracer.startHttpSpan()收到请求时端点处理器的开头将创建:- 一条有 api 路径的新跨度
/shared/myProject/myResource/{myResourceId}. 该{myResourceId}这里有字面意思 - 我们不需要每个资源集的跨度 . - 相关http标签(如:.
http.url:shared/myProject/myResource/resourceId123, (中文(简体) ),http.method:POST(中文(简体) )
- 一条有 api 路径的新跨度
-
使用
tracer.startChildSpan()在以后的行动中,(例如:validateResource()再来一次createNewResource())和通过之前的 http 跨度,因为父词会用自己的起始和结束时间、标记和事件来创建这些孩子的跨度。 这样就可以进一步钻探和检查.
-
追踪器. close ()
- 必须明确呼吁
tracer.close()当不再需要追踪器来冲出任何未决操作并避免内存漏出时.
许可证
版权
版权:2014-2024 F5网络股份有限公司.