From f3ed8eea7cc7fe599cdde134dcc3cf9bb6a91f64 Mon Sep 17 00:00:00 2001 From: Sai Sindhur Malleni Date: Sat, 14 Jan 2017 13:21:30 -0500 Subject: [PATCH] Adding Cloud Comparison Dashboard for Shaker This commit adds a new cloud comparison dashboard to compare shaker results. + Adding documentation Change-Id: I6c483bdc8a08be9e62a893c8c33e1b173b04d607 --- ansible/README.shaker-viz.rst | 29 +++++- ansible/install/kibana-visuals.yml | 3 + .../roles/kibana-visualization/tasks/main.yml | 7 +- .../templates/shaker-cloud-comparison.json.j2 | 10 ++ .../shaker_cloud_comparison_dashboard.yml | 94 +++++++++++++++++++ ...shaker_cloud_comparison_visualizations.yml | 43 +++++++++ 6 files changed, 180 insertions(+), 6 deletions(-) create mode 100644 ansible/install/roles/kibana-visualization/templates/shaker-cloud-comparison.json.j2 create mode 100644 ansible/install/roles/kibana-visualization/vars/shaker_cloud_comparison_dashboard.yml create mode 100644 ansible/install/roles/kibana-visualization/vars/shaker_cloud_comparison_visualizations.yml diff --git a/ansible/README.shaker-viz.rst b/ansible/README.shaker-viz.rst index 9868b204b..6bcc4eb6e 100644 --- a/ansible/README.shaker-viz.rst +++ b/ansible/README.shaker-viz.rst @@ -1,7 +1,11 @@ -Shaker Data Plane Performance Dashboard -======================================= +Shaker Data Plane Performance Dashboards +======================================== -The Shaker dashboard aims to present data plane performance of OpenStack VMs +Two dashboards have been provided with Browbeat for Shaker. + +Browbeat Shaker Scenarios with Throughput vs Concurrency +------------------------------------------------------- +This Shaker dashboard aims to present data plane performance of OpenStack VMs connected in different network topologies in a summarized form. Three distinct visulizations representing L2, L3 E-W and L3 N-S topologies along with the corrensponding markdown to exaplain each visualization make the "Browbeat Shaker @@ -13,6 +17,21 @@ concurrency of 2, it means that each pair of VMs involved average at 4000 Mbps for the duration of the test, bringing the total throughput to 8000 Mbps(avg throughput*concurrency). -You can filter based on browbeat_uuid and shaker_uuid to view results from a -specific run only. +Browbeat Shaker Cloud Performance Comparison +-------------------------------------------- +This Shaker dashboard lets you compare network performance results from various +clouds. This dashboard is ideal if you want to compare data plane performance +with different neutron configurations in different clouds. For each topology, a +visualization comparing ``tcp_download`` and ``tcp_upload`` per cloud name and +a visualization comparing ping latency per cloud name is generated in the +dashboard along with instructions in markdown for advanced filtering and +querying. + + + +.. note:: You can filter based on ``browbeat_uuid`` and ``shaker_uuid`` to view results + from a specific run or shaker scenario only and ``record.concurrency`` and + ``record.accommodation`` to filter based on the subest of the test results you + want to view. + diff --git a/ansible/install/kibana-visuals.yml b/ansible/install/kibana-visuals.yml index ea547105c..ab5d62b44 100644 --- a/ansible/install/kibana-visuals.yml +++ b/ansible/install/kibana-visuals.yml @@ -13,11 +13,14 @@ - "{{browbeat_path}}/ansible/install/roles/kibana-visualization/vars/keystone_processes_threads_visualizations.yml" - "{{browbeat_path}}/ansible/install/roles/kibana-visualization/vars/keystone_ssl_visualizations.yml" - "{{browbeat_path}}/ansible/install/roles/kibana-visualization/vars/shaker_scenario_throughput_concurrency_visualizations.yml" + - "{{browbeat_path}}/ansible/install/roles/kibana-visualization/vars/shaker_cloud_comparison_visualizations.yml" # Vars for templatized Dashboards: - "{{browbeat_path}}/ansible/install/roles/kibana-visualization/vars/keystone_controller_count_dashboards.yml" - "{{browbeat_path}}/ansible/install/roles/kibana-visualization/vars/keystone_osp_version_token_dashboards.yml" - "{{browbeat_path}}/ansible/install/roles/kibana-visualization/vars/keystone_processes_threads_dashboards.yml" - "{{browbeat_path}}/ansible/install/roles/kibana-visualization/vars/keystone_ssl_dashboards.yml" - "{{browbeat_path}}/ansible/install/roles/kibana-visualization/vars/shaker_scenario_throughput_concurrency_dashboard.yml" + - "{{browbeat_path}}/ansible/install/roles/kibana-visualization/vars/shaker_cloud_comparison_dashboard.yml" + roles: - kibana-visualization diff --git a/ansible/install/roles/kibana-visualization/tasks/main.yml b/ansible/install/roles/kibana-visualization/tasks/main.yml index 9372db6c3..cda1ac185 100644 --- a/ansible/install/roles/kibana-visualization/tasks/main.yml +++ b/ansible/install/roles/kibana-visualization/tasks/main.yml @@ -29,13 +29,15 @@ dest: "{{browbeat_path}}/visualization/Shaker/visualization/{{item.title}}.json" with_flattened: - "{{shaker_scenario_throughput_concurrency_visualizations}}" + - "{{shaker_cloud_comparison_visualizations}}" -- name: Generate Shaker Dashboard +- name: Generate Shaker Dashboards template: src: dashboard.json.j2 dest: "{{browbeat_path}}/visualization/Shaker/dashboard/{{item.file_name}}" with_flattened: - "{{shaker_scenario_throughput_concurrency_dashboard}}" + - "{{shaker_cloud_comparison_dashboard}}" - name: Remove Searches uri: @@ -147,6 +149,8 @@ state: absent with_items: - "{{shaker_scenario_throughput_concurrency_visualizations}}" + - "{{shaker_cloud_comparison_visualizations}}" + - name: Cleanup Shaker Dashboards file: @@ -154,3 +158,4 @@ state: absent with_items: - "{{shaker_scenario_throughput_concurrency_dashboard}}" + - "{{shaker_cloud_comparison_dashboard}}" diff --git a/ansible/install/roles/kibana-visualization/templates/shaker-cloud-comparison.json.j2 b/ansible/install/roles/kibana-visualization/templates/shaker-cloud-comparison.json.j2 new file mode 100644 index 000000000..0c2736122 --- /dev/null +++ b/ansible/install/roles/kibana-visualization/templates/shaker-cloud-comparison.json.j2 @@ -0,0 +1,10 @@ +{ + "title": "{{item.title}}", + "visState": "{\"title\":\"{{item.title}}\",\"type\":\"histogram\",\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"defaultYExtents\":false,\"mode\":\"grouped\",\"scale\":\"linear\",\"setYExtents\":false,\"shareYAxis\":true,\"times\":[],\"yAxis\":{}},\"aggs\":[{\"id\":\"1\",\"type\":\"avg\",\"schema\":\"metric\",\"params\":{\"field\":\"result.value\"}},{\"id\":\"2\",\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"result.result_type\",\"size\":10,\"order\":\"desc\",\"orderBy\":\"1\"}},{\"id\":\"3\",\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"cloud_name\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\"}}],\"listeners\":{}}", + "uiStateJSON": "{\"spy\":{\"mode\":{\"name\":null,\"fill\":false}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"index\":\"[browbeat-shaker-]YYYY.MM.DD\",\"query\":{\"query_string\":{\"query\":\"{{item.query}}\",\"analyze_wildcard\":true}},\"filter\":[]}" + } + } diff --git a/ansible/install/roles/kibana-visualization/vars/shaker_cloud_comparison_dashboard.yml b/ansible/install/roles/kibana-visualization/vars/shaker_cloud_comparison_dashboard.yml new file mode 100644 index 000000000..c0bcb5927 --- /dev/null +++ b/ansible/install/roles/kibana-visualization/vars/shaker_cloud_comparison_dashboard.yml @@ -0,0 +1,94 @@ +--- +# +# Shaker Scenario Throughput vs Concurrency Dashboard +# + +shaker_cloud_comparison_dashboard: + - file_name: "ShakerCloudComparison.json" + title: "Browbeat Shaker Cloud Performance Comparison" + darkTheme: "true" + panels: + - id: "Shaker-Cloud-Comparison-L2-Throughput" + type: "visualization" + panelIndex: 1 + size_x: 6 + size_y: 3 + col: 1 + row: 1 + - id: "Browbeat-Shaker-Cloud-Comprison-L2-Throughput" + type: "visualization" + panelIndex: 2 + size_x: 6 + size_y: 5 + col: 1 + row: 4 + - id: "Shaker-Cloud-Comparison-L2-Latency" + type: "visualization" + panelIndex: 3 + size_x: 6 + size_y: 3 + col: 7 + row: 1 + - id: "Browbeat-Shaker-Cloud-Comprison-L2-Latency" + type: "visualization" + panelIndex: 4 + size_x: 6 + size_y: 5 + col: 7 + row: 4 + - id: "Shaker-Cloud-Comparison-L3-ES-Throughput" + type: "visualization" + panelIndex: 5 + size_x: 6 + size_y: 3 + col: 1 + row: 9 + - id: "Shaker-Cloud-Comparison-L3-East-West-Latency" + type: "visualization" + panelIndex: 6 + size_x: 6 + size_y: 3 + col: 7 + row: 9 + - id: "Browbeat-Shaker-Cloud-Comparison-L3-East-West-Throughput" + type: "visualization" + panelIndex: 7 + size_x: 6 + size_y: 5 + col: 1 + row: 12 + - id: "Browbeat-Shaker-Cloud-Comparison-L3-East-West-Latency" + type: "visualization" + panelIndex: 8 + size_x: 6 + size_y: 5 + col: 7 + row: 12 + - id: "Shaker-Cloud-Comparison-L3-North-South-Throughput" + type: "visualization" + panelIndex: 9 + size_x: 6 + size_y: 3 + col: 1 + row: 17 + - id: "Shaker-Cloud-Comparison-L3-North-South-Latency" + type: "visualization" + panelIndex: 10 + size_x: 6 + size_y: 3 + col: 7 + row: 17 + - id: "Browbeat-Shaker-Cloud-Comparison-L3-North-South-Throughput" + type: "visualization" + panelIndex: 11 + size_x: 6 + size_y: 5 + col: 1 + row: 20 + - id: "Browbeat-Shaker-Cloud-Comparison-L3-North-South-Latency" + type: "visualization" + panelIndex: 12 + size_x: 6 + size_y: 5 + col: 7 + row: 20 diff --git a/ansible/install/roles/kibana-visualization/vars/shaker_cloud_comparison_visualizations.yml b/ansible/install/roles/kibana-visualization/vars/shaker_cloud_comparison_visualizations.yml new file mode 100644 index 000000000..75a43c2ef --- /dev/null +++ b/ansible/install/roles/kibana-visualization/vars/shaker_cloud_comparison_visualizations.yml @@ -0,0 +1,43 @@ +--- +# +# Shaker Scenario-Throughput-Concurrency - Visualizations Variables +# + +shaker_cloud_comparison_visualizations: + - title: "Shaker-Cloud-Comparison-L2-Throughput" + template: "markdown.json.j2" + markdown: "# Shaker-L2-Flent\\\\n ## Throughput in Mbps\\\\nTo filter based on concurrency please query for key record.concurrency and to filter based based on number of compute nodes, please query for key acommodation.compute_nodes" + - title: "Browbeat-Shaker-Cloud-Comprison-L2-Throughput" + template: "shaker-cloud-comparison.json.j2" + query: "shaker_test_info.deployment.template: l2.hot AND (result.result_type: tcp_download OR result.result_type: tcp_upload)" + - title: "Shaker-Cloud-Comparison-L2-Latency" + template: "markdown.json.j2" + markdown: "# Shaker-L2-Flent\\\\n ## Latency in ms\\\\nTo filter based on concurrency please query for key record.concurrency and to filter based based on number of compute nodes, please query for accommodation.compute_nodes" + - title: "Browbeat-Shaker-Cloud-Comprison-L2-Latency" + template: "shaker-cloud-comparison.json.j2" + query: "shaker_test_info.deployment.template: l2.hot AND result.result_type: ping_icmp" + - title: "Shaker-Cloud-Comparison-L3-ES-Throughput" + template: "markdown.json.j2" + markdown: "# Shaker-L3-East-West-Flent\\\\n## Throughput in Mbps\\\\nTo filter based on concurrency please query for key record.concurrency and to filter based based on number of compute nodes, please query for key accommodation.compute_nodes" + - title: "Browbeat-Shaker-Cloud-Comparison-L3-East-West-Throughput" + template: "shaker-cloud-comparison.json.j2" + query: "shaker_test_info.deployment.template: l3_east_west.hot AND (result.result_type: tcp_download OR result.result_type: tcp_upload)" + - title: "Shaker-Cloud-Comparison-L3-East-West-Latency" + template: "markdown.json.j2" + markdown: "# Shaker-L3-East-West-Flent\\\\n## Latency in ms\\\\nTo filter based on concurrency please query for key record.concurrency and to filter based based on number of compute nodes, please query for key accommodation.compute_nodes" + - title: "Browbeat-Shaker-Cloud-Comparison-L3-East-West-Latency" + template: "shaker-cloud-comparison.json.j2" + query: "shaker_test_info.deployment.template: l3_east_west.hot.hot AND result.result_type: ping_icmp" + - title: "Shaker-Cloud-Comparison-L3-North-South-Throughput" + template: "markdown.json.j2" + markdown: "# Shaker-L3-North-South-Flent\\\\n## Throughput in Mbps\\\\nTo filter based on concurrency please query for key record.concurrency and to filter based based on number of compute nodes, please query for key accommodation.compute_nodes" + - title: "Browbeat-Shaker-Cloud-Comparison-L3-North-South-Throughput" + template: "shaker-cloud-comparison.json.j2" + query: "shaker_test_info.deployment.template: l3_north_south.hot AND (result.result_type: tcp_download OR result.result_type: tcp_upload)" + - title: "Shaker-Cloud-Comparison-L3-North-South-Latency" + template: "markdown.json.j2" + markdown: "# Shaker-L3-North-South-Flent\\\\n## Latency in ms\\\\nTo filter based on concurrency please query for key record.concurrency and to filter based based on number of compute nodes, please query for key accommodation.compute_nodes" + - title: "Browbeat-Shaker-Cloud-Comparison-L3-North-South-Latency" + template: "shaker-cloud-comparison.json.j2" + query: "shaker_test_info.deployment.template: l3_north_south.hot AND result.result_type: ping_icmp" +