I am doing some load tests and running out of memory. I suspect that metrics is the problem, as the memory usage slowly rises and I get tons of warnings saying the test is generating to many metrics. In the warning it suggest a limit of 100k and we are into the millions, the test is using more than 100GB memory, so I cannot simply add more memory.
The exact warning is “The test has generated metrics with 100163 unique time series, which is higher than the suggested limit of 100000 and could cause high memory usage. Consider not using high-cardinality values like unique IDs as metric tags or, if you need them in the URL, use the name metric tag or URL grouping. See Tags and Groups | Grafana k6 documentation for details. component=metrics-engine-ingester”
I have tried as the warning suggest to put tags on the request, however they do not follow http standards, so every request is a POST. And i suspec that is why the tag is not working, however i could also just be using it wrong.
This is an example of the request i have:
`export function getThings(userInfo) {
var url = GetUrl()
var body = GetBaseBody(userInfo)
body.cmd = “getThings”
var response = http.post(url.toString(), body, {
tags: {group: 'PostsItemURL', name: 'PostsItemURL'},
})
return response.body.data
}
`
I have looked here for the URL grouping: HTTP Requests
Am i doing it wrong, or does it not work with this somewhat special api? Can i simply turn of the metrics, as i dont need them in the particular scenario where i run out of memory?