{"id":24288547,"url":"https://github.com/vdaburon/otel-apm-jmeter-plugin","last_synced_at":"2026-04-17T22:07:03.695Z","repository":{"id":272637298,"uuid":"917081371","full_name":"vdaburon/otel-apm-jmeter-plugin","owner":"vdaburon","description":"JMeter tool plugin to Manage the integration of OpenTelemetry from Elastic Application Performance Monitoring in a JMeter script.","archived":false,"fork":false,"pushed_at":"2025-01-15T17:23:47.000Z","size":396,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-15T19:51:06.937Z","etag":null,"topics":["apm","elastic","jmeter","jmeter-plugin","jmeter-plugins","opentelemetry","otel","otel-javaagent"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"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}},"created_at":"2025-01-15T10:15:41.000Z","updated_at":"2025-01-15T17:23:48.000Z","dependencies_parsed_at":"2025-01-15T19:51:14.038Z","dependency_job_id":"7e324421-e96b-43a6-aaa4-30f2391cdfbf","html_url":"https://github.com/vdaburon/otel-apm-jmeter-plugin","commit_stats":null,"previous_names":["vdaburon/otel-apm-jmeter-plugin"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vdaburon%2Fotel-apm-jmeter-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vdaburon%2Fotel-apm-jmeter-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vdaburon%2Fotel-apm-jmeter-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vdaburon%2Fotel-apm-jmeter-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vdaburon","download_url":"https://codeload.github.com/vdaburon/otel-apm-jmeter-plugin/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242123697,"owners_count":20075417,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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","jmeter","jmeter-plugin","jmeter-plugins","opentelemetry","otel","otel-javaagent"],"created_at":"2025-01-16T10:16:41.771Z","updated_at":"2026-04-17T22:07:03.676Z","avatar_url":"https://github.com/vdaburon.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://github.com/vdaburon/otel-apm-jmeter-plugin/blob/main/doc/otelapmjmplugin_logo.png\" alt=\"otel elastic apm jmeter logo\"/\u003e\n\n  \u003cp align=\"center\"\u003eApache JMeter tool plugin to Manage the integration of OpenTelemetry from Elastic Application Performance Monitoring in a JMeter script.\u003c/p\u003e\n  \u003cp align=\"center\"\u003e\u003ca href=\"https://github.com/vdaburon/otel-apm-jmeter-plugin\"\u003eLink to github project otel-apm-jmeter-plugin\u003c/a\u003e\u003c/p\u003e\n\u003c/p\u003e\n\n# Apache JMeter tool plugin to manage the OpenTelemetry Elastic Application Performance Monitoring (OTEL ELASTIC APM) in JMeter script\n[![Maven Central](https://img.shields.io/maven-central/v/io.github.vdaburon/otel-apm-jmeter-plugin)](https://central.sonatype.com/artifact/io.github.vdaburon/otel-apm-jmeter-plugin)\n[![Apache License](http://img.shields.io/badge/license-Apache-green.svg)](https://github.com/vdaburon/CreateHtmlForFilesInDirectory/blob/main/LICENSE)\n![Free](https://img.shields.io/badge/free-open--source-green.svg)\n[![Apache JMeter](https://img.shields.io/badge/Apache%20JMeter-green)](https://jmeter.apache.org/)\n\n\n## GUI interface in the JMeter Tools Menu\nThis tool is present in the Menu Tools \u003e vdn@github - OTEL ELASTIC APM Integration Tool\n\n![Menu Tools](doc/images/jmeter_menu_tools_with_otel_elastic_apm.png)\n\nWhen you click and the menu line \"vdn@github - OTEL ELASTIC APM Integration Tool\", the tool GUI is display\n\n![Menu Tools](doc/images/otel_elastic_apm_integration_tool_gui.png)\n\n### Parameters\nParameters are :\n* file_in the JMeter script to read\n* file_out the file result, if the text field is empty then the file_out is the file name of file_in without the extension with suffix \"_modif.jmx\" \u003cbr/\u003e\n  e.g. file_in = script1.jmx, file_out is empty then file_out will be script1_modif.jmx\n* action = ADD or REMOVE, \n  * ADD = Add \"User Defined Variables for OTEL_ACTIVE\", add a \"setUp Thread Group for init OpenTelemetry\" contains JSR22 Groovy code and add \"JSR223 groovy otel api call\"\n  * REMOVE = remove \"User Defined Variables for OTEL APM\", remove \"setUp Thread Group for init OpenTelemetry\" and children, and remove \"JSR223 groovy otel api call\", the script will be as before action ADD\n* regex the regular expression matches the \"Transaction Controller\" label, if the label doesn't match the regular expression then **NO** \"JSR223 groovy otel api\" surround the \"Transaction Controller\"\n  * default all = .* (this regular expression matches all labels)\n  * e.g. regex = SC\\d+_P.+ matches labels \"SC01_P01_LOGIN\" or \"SC20_P12B_LOGOUT\" or SC01_P01_LOGIN|SC02_P02_FIND|SC02_P012_LOGOUT for some Transaction Controllers\n\nButton \"MODIFY SCRIPT\", this button launch the tool with parameters.\u003cbr/\u003e\nButton \"MODIFY SCRIPT AND LOAD NEW SCRIPT\", this button launch the tool with parameters and next if no error LOAD the generated script in the current JMeter.\n\nStatus, the status line contains the tool status or the tool result.\n\ne.g. : Status Results **OK**\n* Tool OTEL ELASTIC APM Integration Finished OK, ACTION = ADD, fileOut=C:\\Temp\\script1_add.jmx\n* Tool OTEL ELASTIC APM Integration Finished OK, ACTION = REMOVE, fileOut=C:\\Temp\\script1_add_modif.jmx\n\ne.g. : Status Results **KO**\n* Tool OTEL ELASTIC APM Integration Finished KO, CAN'T READ jmx fileIn = C:\\Temp\\script1zzzz.jmx\n* Tool OTEL ELASTIC APM Integration Finished KO, exception = java.util.regex.PatternSyntaxException: Unmatched closing ')' near index 1 .*)\n* Tool OTEL ELASTIC APM Integration Finished KO, CAN'T CREATE or jmx file doesn't exist (look in the log file), fileOut  = c:\\toto (in log file : java.io.FileNotFoundException: c:\\toto (Access denied)\n  )\n\n## More documentation from jmeter-otel-apm project\nFor more documentation (configuration of the OpenTelemetry ELASTIC Java Agent, download OTEL Elastic Java Agent, JMeter start script shell modified ...) look at README from [jmeter-otel-apm](https://github.com/vdaburon/jmeter-otel-apm)\n\nAll Transactions in Kibana APM Dashboards 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 OTEL Elastic Agent, Apache Tomcat and the Java OTEL Elastic 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_otel_apm.png)\n\n## Command line tool (CLI)\nThis tool could be use with script shell Windows or Linux.\n\nScripts shell are in \u0026lt;JMETER_HOME\u0026gt;/bin\n* otel-apm-integrate.cmd for Windows OS\n* otel-apm-integrate.sh for Linux/Mac OS\n\nHelp to see all parameters :\n\n\u003cpre\u003e\nC:\\apache-jmeter\\bin\u0026gt;otel-apm-integrate.cmd -help\nusage: io.github.vdaburon.jmeter.otelxml.OtelJMeterManager -action \u0026lt;action\u0026gt; [-extract_end \u0026lt;extract_end\u0026gt;] [-extract_start\n       \u0026lt;extract_start\u0026gt;] [-extract_udv \u0026lt;extract_udv\u0026gt;] -file_in \u0026lt;file_in\u0026gt; -file_out \u0026lt;file_out\u0026gt; [-help] [-regex \u0026lt;regex\u0026gt;]\nio.github.vdaburon.jmeter.otelxml.OtelJMeterManager\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 and setUp Thread Group for init\n                                  OpenTelemetry (e.g : extract_udv.xml), default read 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-otel-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-otel-apm-\u0026lt;version\u0026gt;-jar-with-dependencies.jar -file_in script1_add.jmx -file_out\nscript1_remove.jmx -action REMOVE -regex .*\n\u003c/pre\u003e\n\ne.g. action = ADD :\n\u003cpre\u003e\nC:\\apache-jmeter\\bin\u003eotel-apm-integrate.cmd -file_in C:\\temp\\script1.jmx -file_out C:\\temp\\script1_add_cli.jmx -action ADD -regex SC.*\n\u003c/pre\u003e\n\ne.g. action = REMOVE :\n\u003cpre\u003e\n/var/opt/apache-jmeter/bin\u003eotel-apm-integrate.sh -file_in /tmp/script1_add.jmx -file_out /tmp/script1_remove_cli.jmx -action REMOVE\n\u003c/pre\u003e\n\n## Tool installed with jmeter-plugins-manager\nThis tool could be installed with the jmeter-plugins-manager from https://jmeter-plugins.org/\u003cbr\u003e\nThe tool name is : \"vdn@github - otel-apm-tool\"\n\n## Usage Maven\nThe maven groupId, artifactId and version, this plugin is in the **Maven Central Repository** [![Maven Central](https://img.shields.io/maven-central/v/io.github.vdaburon/otel-apm-jmeter-plugin)](https://central.sonatype.com/artifact/io.github.vdaburon/otel-apm-jmeter-plugin)\n\n```xml\n\u003cgroupId\u003eio.github.vdaburon\u003c/groupId\u003e\n\u003cartifactId\u003eotel-apm-jmeter-plugin\u003c/artifactId\u003e\n\u003cversion\u003e1.2\u003c/version\u003e\n```\n## Versions\nVersion 1.2 2026-04-16, Use library jmeter-otel-apm v1.2 (before v1.1), test with elastic-otel-javaagent-1.10.0.jar. Readme : update badge links. Update Maven Plugins in pom.xml: commons-cli v1.11.0, maven-compiler-plugin v3.12.1, maven-assembly-plugin v3.8.0, maven-gpg-plugin v3.2.8, central-publishing-maven-plugin v0.10.0.\n\nVersion 1.1 2025-09-15, Use library jmeter-otel-apm v1.1 (before v1.0), test with elastic-otel-javaagent-1.5.0.jar (before 1.1.0).\n\nversion 1.0  2025-01-15, First release\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvdaburon%2Fotel-apm-jmeter-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvdaburon%2Fotel-apm-jmeter-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvdaburon%2Fotel-apm-jmeter-plugin/lists"}