用于创建和填充 k6 指标的函数
Posted
技术标签:
【中文标题】用于创建和填充 k6 指标的函数【英文标题】:Function for creating and populating k6 metrics 【发布时间】:2019-07-26 06:25:18 【问题描述】:我正在尝试在 js 中为 k6 工具脚本创建一个函数,这将使我能够为“事务名称”创建多种类型的指标作为输入,然后创建另一个函数来填充这些指标。这将有助于避免为不同的事务名称编写类似的代码,并有助于保持指标名称的一致。
// line of code to define the metrics
let Search_RT_Trend = new Trend("Search_duration");
let Search_PassRate = new Rate("Search_PassRate");
let Search_PassCount = new Counter("Search_PassCount");
let Search_FailCount = new Counter("Search_FailCount");
// line of code populating the data in metrics
Search_RT_Trend.add(res.timings.duration);
Search_PassRate.add(1);
Search_PassCount.add(1);
Search_FailCount.add(1);
希望创建两个函数来输入交易名称,可能如下:
CreateMetric ("Search")
PopulateMetric ("Search")
如何做到这一点?
【问题讨论】:
【参考方案1】:这样的?
function MetaMetric(name)
this.RT_Trend = new Trend(`$name_duration`);
this.PassRate = new Rate(`$name_PassRate`);
this.PassCount = new Counter(`$name_PassCount`);
this.FailCount = new Counter(`$name_FailCount`);
MetaMetric.prototype.track = function (req)
this.RT_Trend.add(req.timings.duration);
if (req.timings.duration < 200 /* or whatever */)
this.PassRate.add(1);
this.PassCount.add(1);
else
this.PassRate.add(0);
this.FailCount.add(1);
;
let myMetaMetric = new MetaMetric("Search")
export default function ()
let resp = http.get("https://httpbin.test.loadimpact.com/");
myMetaMetric.track(resp);
sleep(3 * Math.random());
需要考虑的一些事项:
当您拥有Rate
指标时,您不需要通过和失败Counter
指标。 Rate
本质上是通过和失败之间的比率,所以它基本上是这两个计数器的组合:)
您可能会发现 k6 checks 和 thresholds 很有用。
【讨论】:
以上是关于用于创建和填充 k6 指标的函数的主要内容,如果未能解决你的问题,请参考以下文章
为啥 .json 输出中的内置指标“vus”不反映控制台输出?
哪些损失函数和指标用于具有非常高的负数与正数比率的多标签分类?