From 3c4e192d555325f247f9633741d3e01729921855 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andy=20Dang=F0=9F=A4=96?= Date: Mon, 2 Aug 2021 16:10:11 -0700 Subject: [PATCH 1/4] Shade okhttp3 as well --- spark-bundle/build.gradle.kts | 1 + 1 file changed, 1 insertion(+) diff --git a/spark-bundle/build.gradle.kts b/spark-bundle/build.gradle.kts index 4e42cbc..2ea206a 100644 --- a/spark-bundle/build.gradle.kts +++ b/spark-bundle/build.gradle.kts @@ -53,6 +53,7 @@ shadowJar.apply { // okio is consumed by songbird relocate("okio", "com.shaded.whylabs.okio") + relocate("okhttp3", "com.shaded.whylabs.okhttp3") archiveFileName.set("$artifactBaseName-${versionString}.jar") } From d3b8ab96199ce41186e4d8a77efa929d1a052267 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andy=20Dang=F0=9F=A4=96?= Date: Mon, 2 Aug 2021 16:10:32 -0700 Subject: [PATCH 2/4] =?UTF-8?q?Bump=20version:=200.1.3=20=E2=86=92=200.1.4?= =?UTF-8?q?-b0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .bumpversion.cfg | 2 +- build.gradle.kts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 175c725..f9a934f 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.1.3 +current_version = 0.1.4-b0 commit = True tag = False parse = (?P\d+)\.(?P\d+)\.(?P\d+)(\-(?P[a-z]+)(?P\d+))? diff --git a/build.gradle.kts b/build.gradle.kts index f898574..a689eb4 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -5,8 +5,8 @@ plugins { } group = "ai.whylabs" -version = "0.1.3" -//version = "0.1.3-${project.properties.getOrDefault("versionType", "SNAPSHOT")}" +version = "0.1.4-b0" +//version = "0.1.4-b0-${project.properties.getOrDefault("versionType", "SNAPSHOT")}" extra["isReleaseVersion"] = !version.toString().endsWith("SNAPSHOT") allprojects { From 16a849cd179af318a2b4a7290f7f39c5cbf27e57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andy=20Dang=F0=9F=A4=96?= Date: Mon, 2 Aug 2021 18:16:38 -0700 Subject: [PATCH 3/4] Add more information to API exception --- spark/src/main/scala/com/whylogs/spark/RetryUtil.scala | 8 +++++++- spark/src/main/scala/com/whylogs/spark/WhyLogs.scala | 9 +++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/spark/src/main/scala/com/whylogs/spark/RetryUtil.scala b/spark/src/main/scala/com/whylogs/spark/RetryUtil.scala index 45ad0e7..8452093 100644 --- a/spark/src/main/scala/com/whylogs/spark/RetryUtil.scala +++ b/spark/src/main/scala/com/whylogs/spark/RetryUtil.scala @@ -1,5 +1,6 @@ package com.whylogs.spark +import ai.whylabs.service.invoker.ApiException import org.slf4j.LoggerFactory import scala.concurrent.ExecutionContext.Implicits.global @@ -31,7 +32,12 @@ object RetryUtil { }.recoverWith { case t: Throwable => if (context.retries >= config.maxTries) { - throw new PermanentFailure("Failed too many times.", context.lastCause) + val lastCause = context.lastCause + lastCause match { + case apiException: ApiException => + throw new PermanentFailure("Failed too many times", new ApiException(s"Error code: ${apiException.getCode}. Headers: ${apiException.getResponseHeaders}. Body: ${apiException.getResponseBody}")) + case _ => throw new PermanentFailure("Failed too many times.", lastCause) + } } completeAfter(context.lastWaitMillis) .flatMap { _ => diff --git a/spark/src/main/scala/com/whylogs/spark/WhyLogs.scala b/spark/src/main/scala/com/whylogs/spark/WhyLogs.scala index 72c45e5..902cab4 100644 --- a/spark/src/main/scala/com/whylogs/spark/WhyLogs.scala +++ b/spark/src/main/scala/com/whylogs/spark/WhyLogs.scala @@ -11,6 +11,7 @@ import org.slf4j.LoggerFactory import java.net.{HttpURLConnection, URL} import java.nio.file.{Files, StandardOpenOption} import java.time.Instant +import java.util.concurrent.TimeUnit import scala.collection.JavaConverters._ import scala.concurrent.Await import scala.concurrent.duration.Duration @@ -202,13 +203,13 @@ case class WhyProfileSession(private val dataFrame: DataFrame, Files.write(tmp, profileData, StandardOpenOption.WRITE, StandardOpenOption.TRUNCATE_EXISTING) // Create the upload url + val req = new LogAsyncRequest() + req.setSegmentTags(segmentTags) + req.datasetTimestamp(timestamp) val uploadResultFuture = RetryUtil.withRetries() { - val req = new LogAsyncRequest() - req.setSegmentTags(segmentTags) - req.datasetTimestamp(timestamp) logApi.logAsync(orgId, modelId, req) } - val uploadResult = Await.result(uploadResultFuture, Duration.create(10, "s")) + val uploadResult = Await.result(uploadResultFuture, Duration.create(10, TimeUnit.SECONDS)) // Write the profile to the upload url val profileUploadResult = RetryUtil.withRetries() { From 70e758c0dff0090b57475e51a7f99e54e08483d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andy=20Dang=F0=9F=A4=96?= Date: Mon, 2 Aug 2021 18:28:57 -0700 Subject: [PATCH 4/4] =?UTF-8?q?Bump=20version:=200.1.4-b0=20=E2=86=92=200.?= =?UTF-8?q?1.4-b1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .bumpversion.cfg | 2 +- build.gradle.kts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index f9a934f..6efeb18 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.1.4-b0 +current_version = 0.1.4-b1 commit = True tag = False parse = (?P\d+)\.(?P\d+)\.(?P\d+)(\-(?P[a-z]+)(?P\d+))? diff --git a/build.gradle.kts b/build.gradle.kts index a689eb4..2c154d7 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -5,8 +5,8 @@ plugins { } group = "ai.whylabs" -version = "0.1.4-b0" -//version = "0.1.4-b0-${project.properties.getOrDefault("versionType", "SNAPSHOT")}" +version = "0.1.4-b1" +//version = "0.1.4-b1-${project.properties.getOrDefault("versionType", "SNAPSHOT")}" extra["isReleaseVersion"] = !version.toString().endsWith("SNAPSHOT") allprojects {