This is an automated email from the ASF dual-hosted git repository. pvillard pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/nifi.git
The following commit(s) were added to refs/heads/master by this push: new 9df53e7 NIFI-6977 - Change the reporting behavior of Azure Reporting task to report report the time when metrics are generated 9df53e7 is described below commit 9df53e7204789ff84fc4ed7bd4ed4675588a21d9 Author: sjyang18 <ilson...@hotmail.com> AuthorDate: Thu Jan 9 19:39:36 2020 +0000 NIFI-6977 - Change the reporting behavior of Azure Reporting task to report report the time when metrics are generated Signed-off-by: Pierre Villard <pierre.villard...@gmail.com> This closes #4211. --- .../loganalytics/AbstractAzureLogAnalyticsReportingTask.java | 6 +++++- .../loganalytics/TestAzureLogAnalyticsReportingTask.java | 12 ++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/nifi-nar-bundles/nifi-azure-bundle/nifi-azure-reporting-task/src/main/java/org/apache/nifi/reporting/azure/loganalytics/AbstractAzureLogAnalyticsReportingTask.java b/nifi-nar-bundles/nifi-azure-bundle/nifi-azure-reporting-task/src/main/java/org/apache/nifi/reporting/azure/loganalytics/AbstractAzureLogAnalyticsReportingTask.java index 245e6bb..1017ee5 100644 --- a/nifi-nar-bundles/nifi-azure-bundle/nifi-azure-reporting-task/src/main/java/org/apache/nifi/reporting/azure/loganalytics/AbstractAzureLogAnalyticsReportingTask.java +++ b/nifi-nar-bundles/nifi-azure-bundle/nifi-azure-reporting-task/src/main/java/org/apache/nifi/reporting/azure/loganalytics/AbstractAzureLogAnalyticsReportingTask.java @@ -133,11 +133,15 @@ public abstract class AbstractAzureLogAnalyticsReportingTask extends AbstractRep protected void sendToLogAnalytics(final HttpPost request, final String workspaceId, final String linuxPrimaryKey, final String rawJson) throws IllegalArgumentException, RuntimeException, IOException { + final int bodyLength = rawJson.getBytes(UTF8).length; - final String nowRfc1123 = RFC_1123_DATE_TIME.format(ZonedDateTime.now(ZoneOffset.UTC)); + final ZonedDateTime zNow = ZonedDateTime.now(ZoneOffset.UTC); + final String nowRfc1123 = zNow.format(DateTimeFormatter.RFC_1123_DATE_TIME); + final String nowISO8601 = zNow.format(DateTimeFormatter.ISO_DATE_TIME); final String createAuthorization = createAuthorization(workspaceId, linuxPrimaryKey, bodyLength, nowRfc1123); request.addHeader("Authorization", createAuthorization); request.addHeader("x-ms-date", nowRfc1123); + request.addHeader("time-generated-field", nowISO8601); request.setEntity(new StringEntity(rawJson)); try (CloseableHttpClient httpClient = HttpClients.createDefault()) { postRequest(httpClient, request); diff --git a/nifi-nar-bundles/nifi-azure-bundle/nifi-azure-reporting-task/src/test/java/org/apache/nifi/reporting/azure/loganalytics/TestAzureLogAnalyticsReportingTask.java b/nifi-nar-bundles/nifi-azure-bundle/nifi-azure-reporting-task/src/test/java/org/apache/nifi/reporting/azure/loganalytics/TestAzureLogAnalyticsReportingTask.java index b8c4c17..1dbefa1 100644 --- a/nifi-nar-bundles/nifi-azure-bundle/nifi-azure-reporting-task/src/test/java/org/apache/nifi/reporting/azure/loganalytics/TestAzureLogAnalyticsReportingTask.java +++ b/nifi-nar-bundles/nifi-azure-bundle/nifi-azure-reporting-task/src/test/java/org/apache/nifi/reporting/azure/loganalytics/TestAzureLogAnalyticsReportingTask.java @@ -213,9 +213,13 @@ public class TestAzureLogAnalyticsReportingTask { testedReportingTask.onTrigger(reportingContextStub); HttpPost postRequest = testedReportingTask.getPostRequest(); - ArgumentCaptor<String> captor = ArgumentCaptor.forClass(String.class); - verify(postRequest, atLeast(1)).addHeader( eq("Authorization"), captor.capture()); - assertTrue(captor.getValue().contains("SharedKey")); + ArgumentCaptor<String> captorAuthorization = ArgumentCaptor.forClass(String.class); + ArgumentCaptor<String> captorXMsDate = ArgumentCaptor.forClass(String.class); + ArgumentCaptor<String> captorTimeGeneratedField = ArgumentCaptor.forClass(String.class); + verify(postRequest, atLeast(1)).addHeader( eq("Authorization"), captorAuthorization.capture()); + verify(postRequest, atLeast(1)).addHeader( eq("x-ms-date"), captorXMsDate.capture()); + verify(postRequest, atLeast(1)).addHeader( eq("time-generated-field"), captorTimeGeneratedField.capture()); + assertTrue(captorAuthorization.getValue().contains("SharedKey")); } @@ -252,4 +256,4 @@ public class TestAzureLogAnalyticsReportingTask { super.postRequest(mockClient, request); } } -} \ No newline at end of file +}