This is an automated email from the ASF dual-hosted git repository. rcordier pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 613a87b7d4cf17a879c170084375fa507b3cfce1 Author: Rene Cordier <[email protected]> AuthorDate: Wed May 27 14:21:44 2020 +0700 JAMES-3171 Add metrics to MailboxGetMethod process --- .../scala/org/apache/james/jmap/method/MailboxGetMethod.scala | 9 ++++++--- .../src/main/scala/org/apache/james/jmap/method/Method.scala | 2 ++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/MailboxGetMethod.scala b/server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/MailboxGetMethod.scala index ca9f2e7..1ccb921 100644 --- a/server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/MailboxGetMethod.scala +++ b/server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/MailboxGetMethod.scala @@ -30,6 +30,7 @@ import org.apache.james.jmap.utils.quotas.QuotaLoaderWithPreloadedDefaultFactory import org.apache.james.mailbox.model.MailboxMetaData import org.apache.james.mailbox.model.search.MailboxQuery import org.apache.james.mailbox.{MailboxManager, MailboxSession} +import org.apache.james.metrics.api.MetricFactory import org.reactivestreams.Publisher import play.api.libs.json.{JsError, JsObject, JsSuccess, Json} import reactor.core.scala.publisher.{SFlux, SMono} @@ -38,11 +39,13 @@ import reactor.core.scheduler.Schedulers class MailboxGetMethod @Inject() (serializer: Serializer, mailboxManager: MailboxManager, quotaFactory : QuotaLoaderWithPreloadedDefaultFactory, - mailboxFactory: MailboxFactory) extends Method { + mailboxFactory: MailboxFactory, + metricFactory: MetricFactory) extends Method { override val methodName: MethodName = MethodName("Mailbox/get") override def process(invocation: Invocation, mailboxSession: MailboxSession): Publisher[Invocation] = { - asMailboxGetRequest(invocation.arguments) + metricFactory.runPublishingTimerMetricLogP99(JMAP_RFC8621_PREFIX + methodName.value, + asMailboxGetRequest(invocation.arguments) .flatMap(mailboxGetRequest => getMailboxes(mailboxGetRequest, mailboxSession) .collectSeq() .map(_.sortBy(_.sortOrder)) @@ -54,7 +57,7 @@ class MailboxGetMethod @Inject() (serializer: Serializer, .map(mailboxGetResponse => Invocation( methodName = methodName, arguments = Arguments(serializer.serialize(mailboxGetResponse).as[JsObject]), - methodCallId = invocation.methodCallId))) + methodCallId = invocation.methodCallId)))) } private def asMailboxGetRequest(arguments: Arguments): SMono[MailboxGetRequest] = { diff --git a/server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/Method.scala b/server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/Method.scala index 21b33b5..02751dc 100644 --- a/server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/Method.scala +++ b/server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/Method.scala @@ -25,6 +25,8 @@ import org.apache.james.mailbox.MailboxSession import org.reactivestreams.Publisher trait Method { + val JMAP_RFC8621_PREFIX: String = "JMAP-RFC8621-" + val methodName: MethodName def process(invocation: Invocation, mailboxSession: MailboxSession): Publisher[Invocation] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
