diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 2c478474d0..b6f50eb9cb 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -81,6 +81,7 @@ /logzio/ @DataDog/agent-integrations /n2ws/ @eliadeini eliad.eini@n2ws.com /neo4j/ @davidfauth help@neo4j.com +/neoload/ @Neotys-Labs/r-d /neutrona/ @DavidFlamini david@neutrona.com /nextcloud/ @eplanet /nn_sdwan/ @nikhilguptanetnologyio @habibmadaninetnologyio @@ -331,6 +332,9 @@ /neo4j/*metadata.csv @davidfauth help@neo4j.com @DataDog/documentation /neo4j/manifest.json @davidfauth help@neo4j.com @DataDog/documentation /neo4j/README.md @davidfauth help@neo4j.com @DataDog/documentation +/neoload/*metadata.csv @Neotys-Labs/r-d @DataDog/documentation +/neoload/manifest.json @Neotys-Labs/r-d @DataDog/documentation +/neoload/README.md @Neotys-Labs/r-d @DataDog/documentation /neutrona/*metadata.csv @DavidFlamini david@neutrona.com @DataDog/documentation /neutrona/manifest.json @DavidFlamini david@neutrona.com @DataDog/documentation /neutrona/README.md @DavidFlamini david@neutrona.com @DataDog/documentation diff --git a/neoload/CHANGELOG.md b/neoload/CHANGELOG.md new file mode 100644 index 0000000000..88f4b0e841 --- /dev/null +++ b/neoload/CHANGELOG.md @@ -0,0 +1,5 @@ +# CHANGELOG - NeoLoad Integration + +## 1.0.0 / 2022-12-13 + +* [Added] Initial NeoLoad Integration Tile diff --git a/neoload/README.md b/neoload/README.md new file mode 100644 index 0000000000..2028ecc85a --- /dev/null +++ b/neoload/README.md @@ -0,0 +1,43 @@ +# NeoLoad integration + +## Overview + +[Tricentis NeoLoad][1] simplifies and scales performance testing for APIs and microservices, as well as end-to-end application testing through protocol and browser-based capabilities. + +With the NeoLoad integration, you can track NeoLoad test performance metrics to: + +- Correlate application performance with load testing metrics in NeoLoad. +- Analyze and visualize NeoLoad metrics in Datadog like throughput, errors, and performance using the out-of-the-box dashboard or [Metrics Explorer][7]. + +## Setup + +### Configuration + +For detailed instructions on NeoLoad configuration, follow the [NeoLoad documentation][2]. Since NeoLoad version 9.1, you can choose which metrics to send in the **Push Counters** configuration of the Datadog Connector in NeoLoad. + +Install the NeoLoad integration in Datadog to add the default NeoLoad dashboard to your dashboard list. + + +## Data Collected + +### Metrics + +See [metadata.csv][3] for a list of metrics provided by this integration. + +### Events + +All NeoLoad performance tests events are sent to your [Datadog Events Explorer][4]. +NeoLoad sends events to the Datadog API when a performance test starts and ends. +Set the option in the **Push Counters** configuration of the Datadog Connector in NeoLoad. Available since NeoLoad 9.1. + +## Troubleshooting + +Need help? Contact [Datadog support][5] or [Tricentis NeoLoad support][6]. + +[1]: https://www.tricentis.com/products/performance-testing-neoload +[2]: https://documentation.tricentis.com/neoload/latest/en/content/reference_guide/datadog.htm +[3]: https://github.com/DataDog/integrations-extras/blob/master/neoload/metadata.csv +[4]: https://docs.datadoghq.com/events/ +[5]: https://docs.datadoghq.com/help/ +[6]: https://support-hub.tricentis.com/ +[7]: /metric/explorer diff --git a/neoload/assets/dashboards/neoload_overview.json b/neoload/assets/dashboards/neoload_overview.json new file mode 100644 index 0000000000..b6dfe75c28 --- /dev/null +++ b/neoload/assets/dashboards/neoload_overview.json @@ -0,0 +1,304 @@ +{ + "title": "NeoLoad", + "description": "NeoLoad dashboard for analyzing performance tests", + "widgets": [{ + "id": 7213586869898414, + "definition": { + "type": "image", + "url": "https://be.tricentis.com/media-assets/2022/07/PL-NeoLoad-1.png", + "url_dark_theme": "https://be-test.tricentis.com/media-assets/2022/10/Tricentis_NeoLoad-Secondary-White@2x.png", + "sizing": "none", + "margin": "sm", + "has_background": false, + "has_border": false, + "vertical_align": "center", + "horizontal_align": "left" + }, + "layout": { + "x": 0, + "y": 0, + "width": 4, + "height": 2 + } + }, { + "id": 793579956743484, + "definition": { + "title": "NeoLoad Virtual Users ", + "title_size": "16", + "title_align": "left", + "show_legend": true, + "legend_layout": "auto", + "legend_columns": ["avg", "min", "max", "value", "sum"], + "type": "timeseries", + "requests": [{ + "formulas": [{ + "alias": "NeoLoad user load", + "style": { + "palette_index": 1, + "palette": "classic" + }, + "formula": "query1" + } + ], + "response_format": "timeseries", + "queries": [{ + "query": "sum:NeoLoad.Controller.User.Load{$test-result-name,$test-result-id,$test-id,$test-name}", + "data_source": "metrics", + "name": "query1" + } + ], + "style": { + "palette": "dog_classic", + "line_type": "solid", + "line_width": "normal" + }, + "display_type": "bars" + } + ], + "events": [{ + "q": "source:my_apps" + } + ], + "custom_links": [{ + "override_label": "events", + "is_hidden": false + } + ] + }, + "layout": { + "x": 4, + "y": 0, + "width": 6, + "height": 2 + } + }, { + "id": 7101843706787120, + "definition": { + "title": "Performance Engineering Events", + "title_size": "16", + "title_align": "left", + "type": "event_timeline", + "query": "$test-result-name $test-result-id $test-name $test-id", + "tags_execution": "and" + }, + "layout": { + "x": 0, + "y": 2, + "width": 4, + "height": 2 + } + }, { + "id": 7686753511996862, + "definition": { + "title": "NeoLoad req/s", + "title_size": "16", + "title_align": "left", + "show_legend": true, + "legend_layout": "auto", + "legend_columns": ["avg", "min", "max", "value", "sum"], + "type": "timeseries", + "requests": [{ + "formulas": [{ + "formula": "query2", + "style": { + "palette_index": 4, + "palette": "green" + } + } + ], + "response_format": "timeseries", + "queries": [{ + "query": "avg:NeoLoad.Request.PerSecond{$test-result-name,$test-result-id,$test-id,$test-name}", + "data_source": "metrics", + "name": "query2" + } + ], + "style": { + "palette": "dog_classic", + "line_type": "solid", + "line_width": "normal" + }, + "display_type": "bars" + } + ] + }, + "layout": { + "x": 4, + "y": 2, + "width": 3, + "height": 3 + } + }, { + "id": 3881498452398372, + "definition": { + "title": "NeoLoad requests errors", + "title_size": "16", + "title_align": "left", + "show_legend": true, + "legend_layout": "auto", + "legend_columns": ["avg", "min", "max", "value", "sum"], + "type": "timeseries", + "requests": [{ + "formulas": [{ + "formula": "query1", + "style": { + "palette_index": 5, + "palette": "warm" + } + } + ], + "response_format": "timeseries", + "queries": [{ + "query": "sum:NeoLoad.Request.Errors{$test-result-name,$test-result-id,$test-id,$test-name}", + "data_source": "metrics", + "name": "query1" + } + ], + "style": { + "palette": "dog_classic", + "line_type": "solid", + "line_width": "normal" + }, + "display_type": "bars" + } + ], + "custom_links": [{ + "override_label": "events", + "is_hidden": false + } + ] + }, + "layout": { + "x": 7, + "y": 2, + "width": 3, + "height": 3 + } + }, { + "id": 7759398302419378, + "definition": { + "title": "Performance Engineering Events", + "title_size": "16", + "title_align": "left", + "type": "event_stream", + "query": "$test-result-name $test-result-id $test-name $test-id", + "event_size": "l" + }, + "layout": { + "x": 0, + "y": 4, + "width": 4, + "height": 5 + } + }, { + "id": 8389637738594750, + "definition": { + "title": "NeoLoad Transactions/s", + "title_size": "16", + "title_align": "left", + "show_legend": true, + "legend_layout": "auto", + "legend_columns": ["avg", "min", "max", "value", "sum"], + "type": "timeseries", + "requests": [{ + "formulas": [{ + "formula": "query1", + "style": { + "palette_index": 8, + "palette": "dd20" + } + } + ], + "response_format": "timeseries", + "queries": [{ + "query": "avg:NeoLoad.Transaction.PerSecond{$test-result-name,$test-result-id,$test-id,$test-name}", + "data_source": "metrics", + "name": "query1" + } + ], + "style": { + "palette": "dog_classic", + "line_type": "solid", + "line_width": "normal" + }, + "display_type": "bars" + } + ] + }, + "layout": { + "x": 4, + "y": 5, + "width": 3, + "height": 3 + } + }, { + "id": 5712085288055526, + "definition": { + "title": "NeoLoad network throughput", + "title_size": "16", + "title_align": "left", + "show_legend": true, + "legend_layout": "auto", + "legend_columns": ["avg", "min", "max", "value", "sum"], + "type": "timeseries", + "requests": [{ + "formulas": [{ + "formula": "query2", + "style": { + "palette_index": 4, + "palette": "cool" + } + } + ], + "response_format": "timeseries", + "queries": [{ + "query": "sum:NeoLoad.Controller.Throughput{$test-result-name,$test-result-id,$test-id,$test-name}", + "data_source": "metrics", + "name": "query2" + } + ], + "style": { + "palette": "dog_classic", + "line_type": "solid", + "line_width": "normal" + }, + "display_type": "bars" + } + ] + }, + "layout": { + "x": 7, + "y": 5, + "width": 3, + "height": 3 + } + } + ], + "template_variables": [{ + "name": "test-result-name", + "prefix": "test-result-name", + "available_values": [], + "default": "*" + }, { + "name": "test-result-id", + "prefix": "test-result-id", + "available_values": [], + "default": "*" + }, { + "name": "test-name", + "prefix": "test-name", + "available_values": [], + "default": "*" + }, { + "name": "test-id", + "prefix": "test-id", + "available_values": [], + "default": "*" + } + ], + "layout_type": "ordered", + "is_read_only": false, + "notify_list": [], + "reflow_type": "fixed", + "id": "wez-hb9-wqn" +} diff --git a/neoload/assets/logos/TricentisLogo.svg b/neoload/assets/logos/TricentisLogo.svg new file mode 100644 index 0000000000..28b45c0cb0 --- /dev/null +++ b/neoload/assets/logos/TricentisLogo.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/neoload/assets/service_checks.json b/neoload/assets/service_checks.json new file mode 100644 index 0000000000..0637a088a0 --- /dev/null +++ b/neoload/assets/service_checks.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/neoload/images/neoload-dashboard.png b/neoload/images/neoload-dashboard.png new file mode 100644 index 0000000000..8ba36d8521 Binary files /dev/null and b/neoload/images/neoload-dashboard.png differ diff --git a/neoload/manifest.json b/neoload/manifest.json new file mode 100644 index 0000000000..03f36ca08f --- /dev/null +++ b/neoload/manifest.json @@ -0,0 +1,55 @@ +{ + "manifest_version": "2.0.0", + "app_uuid": "3d16e6da-7ac2-47b4-95c0-0d221686f05a", + "app_id": "neoload", + "display_on_public_website": true, + "tile": { + "overview": "README.md#Overview", + "configuration": "README.md#Setup", + "support": "README.md#Support", + "changelog": "CHANGELOG.md", + "description": "Monitor and Analyze NeoLoad Performance Test Results", + "title": "NeoLoad", + "media": [{ + "media_type": "image", + "caption": "NeoLoad Performance Testing dashboard", + "image_url": "images/neoload-dashboard.png" + }], + "classifier_tags": [ + "Supported OS::Linux", + "Supported OS::Windows", + "Supported OS::macOS", + "Offering::Integration", + "Category::Monitoring", + "Category::Notification" + ] + }, + "assets": { + "integration": { + "source_type_name": "neoload", + "configuration": {}, + "events": { + "creates_events": true + }, + "metrics": { + "prefix": "NeoLoad.", + "check": "NeoLoad.Controller.User.Load", + "metadata_path": "metadata.csv" + }, + "service_checks": { + "metadata_path": "assets/service_checks.json" + } + }, + "dashboards": { + "NeoLoad Performance Testing": "assets/dashboards/neoload_overview.json" + }, + "logs": {} + }, + "author": { + "name": "Tricentis", + "homepage": "https://www.tricentis.com/products/performance-testing-neoload", + "sales_email": "sales@tricentis.com", + "support_email": "support@tricentis.com" + }, + "oauth": {} +} diff --git a/neoload/metadata.csv b/neoload/metadata.csv new file mode 100644 index 0000000000..9876ad96ba --- /dev/null +++ b/neoload/metadata.csv @@ -0,0 +1,6 @@ +metric_name,metric_type,interval,unit_name,per_unit_name,description,orientation,integration,short_name,curated_metric +NeoLoad.Controller.User.Load,count,,user,,Number of Virtual Users running during a NeoLoad test,0,neoload,, +NeoLoad.Controller.Throughput,count,,megabyte,second,Throughput during a NeoLoad test,0,neoload,, +NeoLoad.Request.PerSecond,rate,,request,second,Number of HTTP requests sent per second during a NeoLoad test,0,neoload,, +NeoLoad.Transaction.PerSecond,rate,,transaction,second,Number of Transactions completed per second during a NeoLoad test,0,neoload,, +NeoLoad.Request.Errors,count,,error,,Number of errors during a NeoLoad test,0,neoload,,