public AnalyticsData getAnalytics(String pluginId, String type, String metricId, Map params) {
        return pluginRequestHelper.submitRequest(pluginId, REQUEST_GET_ANALYTICS, new DefaultPluginInteractionCallback<>() {
            @Override
            public String requestBody(String resolvedExtensionVersion) {
                return getMessageConverter(resolvedExtensionVersion).getAnalyticsRequestBody(type, metricId, params);
            }

            @Override
            public AnalyticsData onSuccess(String responseBody, Map<String, String> responseHeaders, String resolvedExtensionVersion) {
                AnalyticsData analyticsData = getMessageConverter(resolvedExtensionVersion).getAnalyticsFromResponseBody(responseBody);
                analyticsData.setAssetRoot(getCurrentStaticAssetsPath(pluginId));
                return analyticsData;
            }
        });
    }
@Test
    public void shouldGetAnalytics() throws Exception {
        String responseBody = "{ \"view_path\": \"path/to/view\", \"data\": \"{}\" }";

        AnalyticsPluginInfo pluginInfo = new AnalyticsPluginInfo(GoPluginDescriptor.builder().id(PLUGIN_ID).build(), null, null, null);
        pluginInfo.setStaticAssetsPath("/assets/root");
        metadataStore.setPluginInfo(pluginInfo);

        when(pluginManager.submitTo(eq(PLUGIN_ID), eq(ANALYTICS_EXTENSION), requestArgumentCaptor.capture())).thenReturn(new DefaultGoPluginApiResponse(SUCCESS_RESPONSE_CODE, responseBody));

        AnalyticsData pipelineAnalytics = analyticsExtension.getAnalytics(PLUGIN_ID, "pipeline", "pipeline_with_highest_wait_time",
                Map.of("pipeline_name", "test_pipeline"));

        String expectedRequestBody = "{" +
                "\"type\": \"pipeline\"," +
                "\"id\": \"pipeline_with_highest_wait_time\"," +
                " \"params\": {\"pipeline_name\": \"test_pipeline\"}}";

        assertRequest(requestArgumentCaptor.getValue(), PluginConstants.ANALYTICS_EXTENSION, "1.0", REQUEST_GET_ANALYTICS, expectedRequestBody);

        assertThat(pipelineAnalytics.getData(), is("{}"));
        assertThat(pipelineAnalytics.getViewPath(), is("path/to/view"));
        assertThat(pipelineAnalytics.getFullViewPath(), is("/assets/root/path/to/view"));
    }