{"id":13652335,"url":"https://github.com/vdaburon/jmeter-elastic-apm","last_synced_at":"2026-02-11T00:32:13.740Z","repository":{"id":216518010,"uuid":"741460207","full_name":"vdaburon/jmeter-elastic-apm","owner":"vdaburon","description":"Manage Elastic Application Performance Monitoring integration for Apache JMeter to see the page timeline in Kibana APM","archived":false,"fork":false,"pushed_at":"2025-01-14T13:02:53.000Z","size":640,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-24T00:02:00.112Z","etag":null,"topics":["apm","elastic-apm","elasticsearch","elasticsearch-apm","jmeter","jmeter-plugin","monitoring"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vdaburon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-01-10T12:50:27.000Z","updated_at":"2025-01-14T13:02:56.000Z","dependencies_parsed_at":"2024-01-11T19:22:43.004Z","dependency_job_id":"523c6561-970a-4bbf-94f2-d657aecd1c10","html_url":"https://github.com/vdaburon/jmeter-elastic-apm","commit_stats":{"total_commits":23,"total_committers":2,"mean_commits":11.5,"dds":0.04347826086956519,"last_synced_commit":"2fe6fbc0013deda9636b2e81c506ceb87510ff03"},"previous_names":["vdaburon/jmeter-elk-apm","vdaburon/jmeter-elastic-apm"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/vdaburon/jmeter-elastic-apm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vdaburon%2Fjmeter-elastic-apm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vdaburon%2Fjmeter-elastic-apm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vdaburon%2Fjmeter-elastic-apm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vdaburon%2Fjmeter-elastic-apm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vdaburon","download_url":"https://codeload.github.com/vdaburon/jmeter-elastic-apm/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vdaburon%2Fjmeter-elastic-apm/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29323584,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-10T20:44:44.282Z","status":"ssl_error","status_checked_at":"2026-02-10T20:44:43.393Z","response_time":65,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apm","elastic-apm","elasticsearch","elasticsearch-apm","jmeter","jmeter-plugin","monitoring"],"created_at":"2024-08-02T02:00:58.414Z","updated_at":"2026-02-11T00:32:13.686Z","avatar_url":"https://github.com/vdaburon.png","language":"Java","funding_links":[],"categories":["APM Integration"],"sub_categories":["AI"],"readme":"\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://github.com/vdaburon/jmeter-elastic-apm/blob/main/doc/logo_projet_jm_apm_timeline.png\" alt=\"jmeter-elastic-apm logo\"/\u003e\n\n  \u003cp align=\"center\"\u003eManages the integration of ElasticSearch Application Performance Monitoring API in the Apache JMeter.\u003c/p\u003e\n  \u003cp align=\"center\"\u003e\u003ca href=\"https://github.com/vdaburon/jmeter-elastic-apm\"\u003eLink to github project jmeter-elastic-apm\u003c/a\u003e\u003c/p\u003e\n\u003c/p\u003e\n\nAn article \"Why and How To Integrate Elastic APM in Apache JMeter\" about this plugin and some advices: \u003cbr/\u003e\nhttps://dzone.com/articles/integrating-elastic-apm-in-apache-jmeter\n\n# Apache JMeter with integration of ElasticSearch Application Performance Monitoring\nThis tool manages the integration of ElasticSearch Application Performance Monitoring API in the Apache JMeter.\n\nThe main goal is to show the timeline of pages declared in JMeter script in the Kibana APM. For each page on the JMeter side, have all the server-side calls grouped together, the SQL queries and the inter-application exchanges in the notion of page.\n\nThis tool adds JSR223 groovy sampler to create a new APM Transaction before a JMeter Transaction Controller\nand adds JSR223 groovy sampler to end the transaction after the JMeter Transaction Controller\n\nThis tool **adds** also User Defined Variables for elastic APM configuration\n\nThis tool could **remove** all JSR223 groovy that contains api calls to return to the initial JMeter script.\n\n##  Example\nA simple JMeter script with 3 Transaction Controller corresponding to 3 different pages\n\n![Simple script](doc/images/simple_script.png)\n\nLaunch the tool to modify the script : script1.jmx\n\u003cpre\u003e\njava -jar jmeter-elastic-apm-\u0026lt;version\u0026gt;-jar-with-dependencies.jar -file_in script1.jmx -file_out script1_add.jmx -action ADD -regex SC.*\n\u003c/pre\u003e\nand the script (script1_add.jmx) after **action** = **ADD**\n\nEach JMeter Transaction Controller (page) is surround with a begin transaction and an end transaction (use groovy api call).\n\nIn the \"groovy begin transaction apm\", the groovy code calls the ElasticApm API (simplified code) :\n\u003cpre\u003e\nTransaction transaction = ElasticApm.startTransaction();\nScope scope = transaction.activate();\ntransaction.setName(transactionName); // contains the JMeter Transaction Controller Name\n\u003c/pre\u003e\n\nAnd in the \"groovy end transaction apm\", the groovy code calls the ElasticApmp API  (simplified code):\n\u003cpre\u003e\ntransaction.end();\n\u003c/pre\u003e\n\n![Script with elastic APM configuration and groovy code](doc/images/script_add.png)\n\nIn View Results Tree, you will see new request headers (traceparent and elastic-apm-traceparent) automatically added by the elastic apm agent with the transaction id (e.g: 4443e451a1f7d42abdfbd739d455eac5) created by the jsr223 groovy begin transaction apm.\n\n![View Results Tree with traceparent](doc/images/jmeter_request_header_with_traceparent.png)\n\nYou will see all Transactions in Kibana with the vision of the page in JMeter (JMeter Transaction Controller usually == page) (click on image to see the full size image)\n\n![kibana jmeter page](doc/images/kibana_jmeter_transactions.png)\n\nAnd the TIMELINE for JMeter Transaction Controller, you see the JMeter Page and the web application gestdoc running in Tomcat (click on image to see the full size image)\n\n![kibana timeline_tc](doc/images/kibana_jmeter_timeline_tc.png)\n\n## Simplified architecture diagram\nThe simplified architecture : Apache JMeter and a java apm agent, Apache Tomcat and the java apm agent with web application gestdoc, ElasticSearch suite with ElasticSearch, APM Server and Kibana, a user views the Kibana Dashboards with navigator.\n\n![simplified architecture](doc/images/architecture_jmeter_tomcat_elastic_apm.png)\n\n## License\nSee the LICENSE file Apache 2 [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0)\n\n## Ready to use\nIn the [Release of the project](https://github.com/vdaburon/jmeter-elastic-apm/releases)  you will find the tool compiled in one (uber) jar file which is directly usable.\n\n## Help\n\u003cpre\u003e\n[main] INFO io.github.vdaburon.jmeter.elasticapmxml.ElasticApmJMeterManager - main begin\nusage: io.github.vdaburon.jmeter.elasticapmxml.ElasticApmJMeterManager -action \u0026lt;action\u0026gt; [-extract_end \u0026lt;extract_end\u0026gt;]\n       [-extract_start \u0026lt;extract_start\u0026gt;] [-extract_udv \u0026lt;extract_udv\u0026gt;] -file_in \u0026lt;file_in\u0026gt; -file_out \u0026lt;file_out\u0026gt; [-help]\n       [-regex \u0026lt;regex\u0026gt;]\nio.github.vdaburon.jmeter.elasticapmxml.ElasticApmJMeterManager\n -action \u0026lt;action\u0026gt;                 action ADD or REMOVE, ADD : add groovy api call and REMOVE : remove groovy api call\n -extract_end \u0026lt;extract_end\u0026gt;       optional, file contains groovy end call api (e.g : extract_end.xml), default read file\n                                  in the jar\n -extract_start \u0026lt;extract_start\u0026gt;   optional, file contains groovy start call api (e.g : extract_start.xml), default read\n                                  file in the jar\n -extract_udv \u0026lt;extract_udv\u0026gt;       optional, file contains User Defined Variables (e.g : extract_udv.xml), default read\n                                  file in the jar\n -file_in \u0026lt;file_in\u0026gt;               JMeter file to read (e.g : script.jmx)\n -file_out \u0026lt;file_out\u0026gt;             JMeter file modified to write (e.g : script_add.jmx)\n -help                            Help and show parameters\n -regex \u0026lt;regex\u0026gt;                   regular expression matches Transaction Controller Label (default .*) (e.g : SC[0-9]+_.\n                                  for SC01_P01_HOME or SC09_P12_LOGOUT)\nE.g : java -jar jmeter-elastic-apm-\u0026lt;version\u0026gt;-jar-with-dependencies.jar -file_in script1.jmx -file_out script1_add.jmx\n-action ADD -regex SC.*\nE.g : java -jar jmeter-elastic-apm-\u0026lt;version\u0026gt;-jar-with-dependencies.jar -file_in script1_add.jmx -file_out\nscript1_remove.jmx -action REMOVE -regex .*\n[main] INFO io.github.vdaburon.jmeter.elasticapmxml.ElasticApmJMeterManager - main end (exit 1) ERROR\n\n\u003c/pre\u003e\n\n## Properties in the User Defined Variables\n\nThis tool add \"User Defined Variables\" with default value\n\n![User Defined Variables for elastic APM](doc/images/udv_elastic_properties.png)\n\nThis variables could be changed with JMeter properties at launch time, this properties could be set with -J\u0026lt;property\u0026gt;\n\nelastic APM properties are :\n\n| property name    | comment                                                                                                                             |\n|------------------|-------------------------------------------------------------------------------------------------------------------------------------|\n| param_apm_active | default : TRUE , TRUE OR FALSE, if TRUE then api is call                                                                            |\n| param_apm_prefix | default : Empty , Prefix of the transaction name, could be empty, if param_apm_prefix = \"TR_\" then SC01_LOGIN will be TR_SC01_LOGIN |\n\nE.g : jmeter -Jparam_apm_prefix=TRANS_ , SC01_LOGIN will be TRANS_SC01_LOGIN in Kibana transactions list\n\n## Limitation at one level Transaction Controller\nThe main limitation of this tool is only one Transaction Controller level. You can't instrument a Transaction Controller that contains others Transaction Controller because the groovy script use ONE variable to save the Transaction Controller Label. The Parent Transaction Controller set the label and the children Transaction Controller set the same variable and overwrite previous parent label. As a result, the parent will not have an end of transaction.\n\nYou can manually remove the groovy code before the parent Transaction Controller or give the regular expression for only children Transaction Controller.\n\n## Start Apache JMeter with ELASTIC APM agent and ELASTIC APM api library\n\n### Declare the ELASTIC APM Agent\n\nUrl to find the apm agent : [https://mvnrepository.com/artifact/co.elastic.apm/elastic-apm-agent](https://mvnrepository.com/artifact/co.elastic.apm/elastic-apm-agent)\n\nAdd the ELASTIC APM Agent somewhere in the filesystem (could be in the \u0026lt;JMETER_HOME\u0026gt;\\lib but not mandatory)\n\nIn \u0026lt;JMETER_HOME\u0026gt;\\bin modify the jmeter.bat or setenv.bat\n\nAdd ELASTIC APM configuration likes :\n\u003cpre\u003e\nset APM_SERVICE_NAME=yourServiceName\nset APM_ENVIRONMENT=yourEnvironment\nset APM_SERVER_URL=http://apm_host:8200\n\nset JVM_ARGS=-javaagent:\u0026lt;PATH_TO_AGENT_APM_JAR\u0026gt;\\elastic-apm-agent-\u0026lt;version\u0026gt;.jar -Delastic.apm.service_name=%APM_SERVICE_NAME% -Delastic.apm.environment=%APM_ENVIRONMENT% -Delastic.apm.server_urls=%APM_SERVER_URL%\n\u003c/pre\u003e\n\nAnother solution, create a windows shell likes \u003ccode\u003ejmeter_with_elasticapm.bat\u003c/code\u003e in the \u0026lt;JMETER_HOME\u0026gt;\\bin:\n\u003cpre\u003e\nset APM_SERVICE_NAME=yourServiceName\nset APM_ENVIRONMENT=yourEnvironment\nset APM_SERVER_URL=http://apm_host:8200\nset JVM_ARGS=-javaagent:\u0026lt;PATH_TO_AGENT_APM_JAR\u0026gt;\\elastic-apm-agent-\u0026lt;version\u0026gt;.jar -Delastic.apm.service_name=%APM_SERVICE_NAME% -Delastic.apm.environment=%APM_ENVIRONMENT% -Delastic.apm.server_urls=%APM_SERVER_URL% \u0026 jmeter.bat \n\u003c/pre\u003e\nRemark the **\u0026 jmeter.bat** at end of the line with set JVM_ARGS\n\n### Add the ELASTIC APM library\nAdd the ELASTIC APM api library in the \u0026lt;JMETER_HOME\u0026gt;\\lib\\apm-agent-api-\u0026lt;version\u0026gt;.jar\n\nThis library is use by JSR223 groovy code.\n\nUrl to find the ELASTIC APM library : [https://mvnrepository.com/artifact/co.elastic.apm/apm-agent-api](https://mvnrepository.com/artifact/co.elastic.apm/apm-agent-api)\n\n\n## Use jmeter maven plugin and elastic java agent\nYou could launch a load test with the jmeter maven plugin and ELASTIC APM Agent\n\n[https://github.com/jmeter-maven-plugin/jmeter-maven-plugin](https://github.com/jmeter-maven-plugin/jmeter-maven-plugin)\n\nPaths are relative to the home maven project\n- Put your csv files in \u003cproject\u003e/src/test/jmeter directory (e.g : logins.csv)\n- Put the apm-agent-api-${elastic_apm_version}.jar in \u003cproject\u003e/src/test/jmeter directory\n- Put  your jmeter script that contains groovy code added with **jmeter-elastic-apm** tool in \u003cproject\u003e/src/test/jmeter directory (e.g : script1_add.jmx)\n- In the maven build section, in the configuration \u003e testPlanLibraries \u003e declare the apm api library \u003cartifact\u003eco.elastic.apm:apm-agent-api:${elastic_apm_version}\u003c/artifact\u003e\n- In the jMeterProcessJVMSettings \u003e arguments add apm agent configuration likes:\n\u003cpre\u003e\n\u003cjMeterProcessJVMSettings\u003e\n\u003carguments\u003e\n\u003cargument\u003e-javaagent:${project.build.directory}/jmeter/testFiles/elastic-apm-agent-${elastic_apm_version}.jar\u003c/argument\u003e\n\u003cargument\u003e-Delastic.apm.service_name=${elastic_apm_service_name}\u003c/argument\u003e\n\u003cargument\u003e-Delastic.apm.environment=${elastic_apm_environment}\u003c/argument\u003e\n\u003cargument\u003e-Delastic.apm.server_urls=${elastic_apm_urls}\u003c/argument\u003e\n\u003c/arguments\u003e\n\u003c/jMeterProcessJVMSettings\u003e\n\u003c/pre\u003e\n\nA pom.xml example, the elastic_apm_version is set to \"1.37.0\" for the ELASTIC APM Agent agent and the ELASTIC APM library but you could choose another version :\n```XML\n\u003cproject xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd\"\u003e\n    \u003cmodelVersion\u003e4.0.0\u003c/modelVersion\u003e\n    \u003cgroupId\u003eio.github.vdaburon.jmeter\u003c/groupId\u003e\n    \u003cartifactId\u003egestdoc-maven-launch-loadtest-apm\u003c/artifactId\u003e\n    \u003cversion\u003e1.0\u003c/version\u003e\n    \u003cproperties\u003e\n        \u003cproject.build.sourceEncoding\u003eUTF-8\u003c/project.build.sourceEncoding\u003e\n        \u003cmaven.compiler.source\u003e1.8\u003c/maven.compiler.source\u003e\n        \u003cmaven.compiler.target\u003e1.8\u003c/maven.compiler.target\u003e\n        \u003cjvm_xms\u003e256\u003c/jvm_xms\u003e\n        \u003cjvm_xmx\u003e756\u003c/jvm_xmx\u003e\n\n        \u003c!-- elastic APM --\u003e\n        \u003celastic_apm_version\u003e1.37.0\u003c/elastic_apm_version\u003e\n        \u003celastic_apm_service_name\u003eYourServiceNane\u003c/elastic_apm_service_name\u003e\n        \u003celastic_apm_environment\u003eYourEnvironment\u003c/elastic_apm_environment\u003e\n        \u003celastic_apm_urls\u003ehttp://apm_server:8200\u003c/elastic_apm_urls\u003e\n    \u003c/properties\u003e\n\n    \u003cbuild\u003e\n        \u003cplugins\u003e\n            \u003cplugin\u003e\n                \u003c!-- launch test : mvn clean verify --\u003e\n                \u003cgroupId\u003ecom.lazerycode.jmeter\u003c/groupId\u003e\n                \u003cartifactId\u003ejmeter-maven-plugin\u003c/artifactId\u003e\n                \u003cversion\u003e3.6.1\u003c/version\u003e\n                \u003cexecutions\u003e\n                    \u003c!-- Generate JMeter configuration --\u003e\n                    \u003cexecution\u003e\n                        \u003cid\u003econfiguration\u003c/id\u003e\n                        \u003cgoals\u003e\n                            \u003cgoal\u003econfigure\u003c/goal\u003e\n                        \u003c/goals\u003e\n                    \u003c/execution\u003e\n                    \u003c!-- Run JMeter tests --\u003e\n                    \u003cexecution\u003e\n                        \u003cid\u003ejmeter-tests\u003c/id\u003e\n                        \u003cgoals\u003e\n                            \u003cgoal\u003ejmeter\u003c/goal\u003e\n                        \u003c/goals\u003e\n                    \u003c/execution\u003e\n                \u003c/executions\u003e\n                \u003cconfiguration\u003e\n                    \u003cjmeterVersion\u003e5.5\u003c/jmeterVersion\u003e\n                    \u003ctestPlanLibraries\u003e\n                        \u003cartifact\u003eco.elastic.apm:apm-agent-api:${elastic_apm_version}\u003c/artifact\u003e\n                    \u003c/testPlanLibraries\u003e\n                    \u003cdownloadExtensionDependencies\u003efalse\u003c/downloadExtensionDependencies\u003e\n                    \u003cjMeterProcessJVMSettings\u003e\n                        \u003cxms\u003e${jvm_xms}\u003c/xms\u003e\n                        \u003cxmx\u003e${jvm_xmx}\u003c/xmx\u003e\n                        \u003carguments\u003e\n                            \u003cargument\u003e-javaagent:${project.build.directory}/jmeter/testFiles/elastic-apm-agent-${elastic_apm_version}.jar\u003c/argument\u003e\n                            \u003cargument\u003e-Delastic.apm.service_name=${elastic_apm_service_name}\u003c/argument\u003e\n                            \u003cargument\u003e-Delastic.apm.environment=${elastic_apm_environment}\u003c/argument\u003e\n                            \u003cargument\u003e-Delastic.apm.server_urls=${elastic_apm_urls}\u003c/argument\u003e\n                            \u003cargument\u003e-Duser.language=en\u003c/argument\u003e\n                        \u003c/arguments\u003e\n                    \u003c/jMeterProcessJVMSettings\u003e\n                    \u003ctestFilesIncluded\u003e\n                        \u003cjMeterTestFile\u003escript1_add.jmx\u003c/jMeterTestFile\u003e\n                    \u003c/testFilesIncluded\u003e\n                    \u003clogsDirectory\u003e${project.build.directory}/jmeter/results\u003c/logsDirectory\u003e\n                    \u003cgenerateReports\u003efalse\u003c/generateReports\u003e\n                    \u003ctestResultsTimestamp\u003efalse\u003c/testResultsTimestamp\u003e\n                    \u003cresultsFileFormat\u003ecsv\u003c/resultsFileFormat\u003e\n                \u003c/configuration\u003e\n            \u003c/plugin\u003e\n        \u003c/plugins\u003e\n    \u003c/build\u003e\n\u003c/project\u003e\n```\n### Usage Maven\nThe maven groupId, artifactId and version, this plugin is in the **Maven Central Repository** [![Maven Central jmeter-elastic-apm](https://maven-badges.herokuapp.com/maven-central/io.github.vdaburon/jmeter-elastic-apm/badge.svg)](https://maven-badges.herokuapp.com/maven-central/io.github.vdaburon/jmeter-elastic-apm)\n\n```xml\n\u003cgroupId\u003eio.github.vdaburon\u003c/groupId\u003e\n\u003cartifactId\u003ejmeter-elastic-apm\u003c/artifactId\u003e\n\u003cversion\u003e1.4\u003c/version\u003e\n```\n\n## Advanced usage\n### Change the XML extract file\nThe action ADD of this tool is reading 3 XML files that contains extract of the XML JMeter script to add the 1) \"User Defined Variables\", 2) \"JSR223 groovy begin transaction apm\" and 3) \"JRS223 groovy end transaction apm\".\n\nThis files are include in the tool jar file.\n\nYou can change the XML files to include by indicating the path to the new XML files with the parameters -extract_udv or -extract_start or -extract_end\n\nYou want to change the \"JSR223 start transaction apm\" with your own file.\n\nE.g. : \n\u003cpre\u003e\njava -jar jmeter-elastic-apm-\u0026lt;version\u0026gt;-jar-with-dependencies.jar -file_in script1.jmx -file_out script1_add.jmx -action ADD -regex SC.* -extract_start my_xml_file.xml\n\u003c/pre\u003e\n\nYou want to change all 3 files with yours XML files.\n\nE.g. : \n\u003cpre\u003e\njava -jar jmeter-elastic-apm-\u0026lt;version\u0026gt;-jar-with-dependencies.jar -file_in script1.jmx -file_out script1_add.jmx\n-action ADD -regex SC.* -extract_start my_xml_start_file.xml -extract_end my_xml_end_file.xml -extract_udv my_xml_udv_file.xml\n\u003c/pre\u003e\n\nAnother solution is to open the tool jar file with 7zip and replace the 3 files by yours files but keep the same XML file name and save the new jar.\n\n## Reserved tags\nThis tool is looking to **reserved tags** or special string in the XML extract files or in the JMeter script to **REMOVE** previously add JSR223 Samplers and User Defined Variables.\n\nThis tags are :\n- In the \"JSR223 groovy start transaction apm\", the reserved tags are : \"@@TC\\_NAME\" in the Parameters text field, this string will be replaced by the label of the following Transaction Controller and the \"@@ELASTIC\\_APM\\_BEGIN\" in the Comment text field\n- In the \"JRS223 groovy end transaction apm\", the reserved tag is \"@@ELASTIC\\_APM\\_END\" in the Comment text field\n- In the \"User Defined Variables\", the reserved tag is \"@@ELASTIC\\_APM\\_UDV\" in the Comment text field\n\n## Call this tool likes a library\nTo call this tool in an other tool, add the jar jmeter-elastic-apm-\u0026lt;version\u0026gt;-jar and this 2 libraries dependence (common-cli and org.slf4j) in the classpath and :\n\u003cpre\u003e\nimport io.github.vdaburon.jmeter.elasticapmxml.ElasticApmJMeterManager;\n\nString sRegexTc = \".*\";\nString sFileIn = \"script1.jmx\";\nString sFileOut = \"script1_add.jmx\";\nElasticApmJMeterManager.modifyAddSamplerForElasticApm(sFileIn, sFileOut, ElasticApmJMeterManager.ACTION_ADD, sRegexTc, ElasticApmJMeterManager.EXTRACT_START_JSR223, ElasticApmJMeterManager.EXTRACT_END_JSR223, ElasticApmJMeterManager.EXTRACT_UDV_ELASTIC);\n\u003c/pre\u003e\n\n## Version\nVersion 1.4 2025-01-14, Default property \"param_apm_prefix\" is now empty by default because you can't remove it with empty value but easily add no empty value e.g: -Jparam_apm_prefix=TR_\n\nVersion 1.3 2024-02-01, Change method name ELK to ELASTIC et file name tp extract_udv_elastic_under_testplan.jmx\n\nVersion 1.2 2024-01-30, Change globally ELK to ELASTIC\n\nVersion 1.1, 2024-01-10, Correct the class name in the uber jar and correct REMOVE result\n\nVersion 1.0, first version of this tool.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvdaburon%2Fjmeter-elastic-apm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvdaburon%2Fjmeter-elastic-apm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvdaburon%2Fjmeter-elastic-apm/lists"}