10 Jan 2022 03:27 PM
I'm using the Jenkins Performance Signature plugin with Dynatrace SAAS. It works as expected, but I'm having difficulty including Key Requests metrics in the performance report. In the spec file I have, for example:
"spec_version": "2.0",
"timeseries": [
{
"timeseriesId": "builtin:service.keyRequest.count.server",
"aggregation": "count",
"entityIds": "SERVICE_METHOD-xxxxxxxxxxxxxxxx"
},
{
"timeseriesId": "builtin:service.keyRequest.response.server",
"aggregation": "percentile",
"entityIds": "SERVICE_METHOD-xxxxxxxxxxxxxxx",
"upperSevere": 1000000,
"upperWarning": 900000
}"
where xxxxxxxxxxxxxxxx is the 16 character alphanumeric Service Method ID in the Dynatrace URL when I click on the appropriate key request.
However, when I run my Jenkins pipeline, in the console output I get:
java.lang.NullPointerException
at de.tsystems.mms.apm.performancesignature.dynatracesaas.DynatraceReportStepExecution.lambda$validateSpecTMs$24(DynatraceReportStepExecution.java:310)
at java.util.ArrayList.forEach(Unknown Source)
at de.tsystems.mms.apm.performancesignature.dynatracesaas.DynatraceReportStepExecution.validateSpecTMs(DynatraceReportStepExecution.java:307)
at de.tsystems.mms.apm.performancesignature.dynatracesaas.DynatraceReportStepExecution.run(DynatraceReportStepExecution.java:283)
at de.tsystems.mms.apm.performancesignature.dynatracesaas.DynatraceReportStepExecution.run(DynatraceReportStepExecution.java:67)
at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution.lambda$start$0(SynchronousNonBlockingStepExecution.java:47)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Finished: FAILURE
If I remove the keyRequest timeseries from the spec file Performance Signature handles the remaining definitions without problems.
I'm wondering whether it's because the keyRequest metrics seem to exist only in Dynatrace's Metrics v2 API, rather than the Timeseries v1 API. If so, does the definition in the spec file have to be altered before Performance Signature can process it correctly?
More broadly, if this doesn't work, are there any alternative approaches to include key request metrics in Performance Signature? The ideal, for me, would be a way of testing whether the 95th percentile timing for requests breaches a target (1 second, for example). I can obtain this information at a service level easily enough by using tags, but as far as I'm aware I can't tag individual requests (hence my attempted use of keyRequest timeseries.
@raphael_pionke, @andreas_grabner , any ideas, please?
Thanks!
Solved! Go to Solution.
10 Jan 2022 04:01 PM
Hi. The Performance Signature Plugin has a listing on the Dynatrace Hub with a link to a support email in case you have questions. While Raphael might watch this community portal I suggest you reach out to that support email as well. Here is the link to the hub listing: https://www.dynatrace.com/hub/detail/t-systems-jenkins/?query=performance+signature