Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id B268C200B3B for ; Mon, 11 Jul 2016 20:50:38 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id B1320160A7D; Mon, 11 Jul 2016 18:50:38 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id D5877160A78 for ; Mon, 11 Jul 2016 20:50:37 +0200 (CEST) Received: (qmail 50439 invoked by uid 500); 11 Jul 2016 18:50:37 -0000 Mailing-List: contact commits-help@iota.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@iota.incubator.apache.org Delivered-To: mailing list commits@iota.incubator.apache.org Received: (qmail 50430 invoked by uid 99); 11 Jul 2016 18:50:37 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 11 Jul 2016 18:50:37 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id A47D7C06C5 for ; Mon, 11 Jul 2016 18:50:36 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -4.507 X-Spam-Level: X-Spam-Status: No, score=-4.507 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, KAM_LAZY_DOMAIN_SECURITY=1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-1.287] autolearn=disabled Received: from mx2-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id cxGA--aEPpEl for ; Mon, 11 Jul 2016 18:50:35 +0000 (UTC) Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx2-lw-eu.apache.org (ASF Mail Server at mx2-lw-eu.apache.org) with SMTP id F37C35FBE8 for ; Mon, 11 Jul 2016 18:50:32 +0000 (UTC) Received: (qmail 50169 invoked by uid 99); 11 Jul 2016 18:50:32 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 11 Jul 2016 18:50:32 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id BD3B8EC22C; Mon, 11 Jul 2016 18:50:31 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: tonyfaustini@apache.org To: commits@iota.incubator.apache.org Date: Mon, 11 Jul 2016 18:50:36 -0000 Message-Id: <8ea8c4ae0155454d8746dd57e5f34a4e@git.apache.org> In-Reply-To: References: X-Mailer: ASF-Git Admin Mailer Subject: [6/8] incubator-iota git commit: Adding draft visualization for Monitoring Events on Fey archived-at: Mon, 11 Jul 2016 18:50:38 -0000 Adding draft visualization for Monitoring Events on Fey Project: http://git-wip-us.apache.org/repos/asf/incubator-iota/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-iota/commit/4cda6c76 Tree: http://git-wip-us.apache.org/repos/asf/incubator-iota/tree/4cda6c76 Diff: http://git-wip-us.apache.org/repos/asf/incubator-iota/diff/4cda6c76 Branch: refs/heads/master Commit: 4cda6c76e1df1ceb02b8214b3d01369cf38fb87d Parents: 788b90a Author: Barbara Gomes Authored: Mon Jul 11 10:40:22 2016 -0700 Committer: Barbara Gomes Committed: Mon Jul 11 10:52:19 2016 -0700 ---------------------------------------------------------------------- fey-core/src/main/resources/eventsTable.html | 35 ++++++++++++++++++++ .../scala/org/apache/iota/fey/Monitor.scala | 24 ++++++++++++++ .../scala/org/apache/iota/fey/MyService.scala | 10 ++++++ .../scala/org/apache/iota/fey/TrieNode.scala | 4 +++ 4 files changed, 73 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-iota/blob/4cda6c76/fey-core/src/main/resources/eventsTable.html ---------------------------------------------------------------------- diff --git a/fey-core/src/main/resources/eventsTable.html b/fey-core/src/main/resources/eventsTable.html new file mode 100644 index 0000000..9f6734a --- /dev/null +++ b/fey-core/src/main/resources/eventsTable.html @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + $EVENTS_TABLE_CONTENT +
GUIDEventInfoTimestamp
+ + + \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-iota/blob/4cda6c76/fey-core/src/main/scala/org/apache/iota/fey/Monitor.scala ---------------------------------------------------------------------- diff --git a/fey-core/src/main/scala/org/apache/iota/fey/Monitor.scala b/fey-core/src/main/scala/org/apache/iota/fey/Monitor.scala index 3cff0fb..3c02e73 100644 --- a/fey-core/src/main/scala/org/apache/iota/fey/Monitor.scala +++ b/fey-core/src/main/scala/org/apache/iota/fey/Monitor.scala @@ -20,6 +20,8 @@ package org.apache.iota.fey import akka.actor.Actor import akka.event.{DiagnosticLoggingAdapter, Logging} +import scala.collection.mutable.ArrayBuffer + /** * Created by barbaragomes on 7/8/16. */ @@ -80,6 +82,28 @@ protected object Monitor{ */ val events: Trie = new Trie() + //Static HTML content from d3 + val html = scala.io.Source.fromInputStream(getClass.getResourceAsStream("/eventsTable.html"), "UTF-8") + .getLines() + .mkString("\n") + + def getHTMLevents: String = { + html.replace("$EVENTS_TABLE_CONTENT", mapEventsToRows(events.getRootChildren(), "").mkString("\n")) + } + + def mapEventsToRows(actors: ArrayBuffer[TrieNode], prefix:String): ArrayBuffer[String] = { + actors.map(actor => { + val currentPath = if (prefix == "/user/FEY-CORE") actor.path else s"$prefix/${actor.path}" + val events = actor.events.map(event => { + getTableLine(currentPath, event.timestamp, event.event, event.info) + }) + mapEventsToRows(actor.children, currentPath) ++ events + }).flatten + } + + private def getTableLine(path: String,timestamp: Long, event: String, info: String):String = { + s"$path$event$info$timestamp" + } } /** http://git-wip-us.apache.org/repos/asf/incubator-iota/blob/4cda6c76/fey-core/src/main/scala/org/apache/iota/fey/MyService.scala ---------------------------------------------------------------------- diff --git a/fey-core/src/main/scala/org/apache/iota/fey/MyService.scala b/fey-core/src/main/scala/org/apache/iota/fey/MyService.scala index bc1cfa0..41a6982 100644 --- a/fey-core/src/main/scala/org/apache/iota/fey/MyService.scala +++ b/fey-core/src/main/scala/org/apache/iota/fey/MyService.scala @@ -40,6 +40,7 @@ sealed trait MyService extends HttpService { val home = pathPrefix("fey") val activeActors = path("activeactors") val actorLifecycle = path("actorslifecycle") + val eventsTable = path("monitoringevents") val test = path("test") val myRoute = @@ -64,6 +65,15 @@ sealed trait MyService extends HttpService { } } } + } ~ + eventsTable { + get{ + respondWithMediaType(`text/html`) { + complete { + Monitor.getHTMLevents + } + } + } } } http://git-wip-us.apache.org/repos/asf/incubator-iota/blob/4cda6c76/fey-core/src/main/scala/org/apache/iota/fey/TrieNode.scala ---------------------------------------------------------------------- diff --git a/fey-core/src/main/scala/org/apache/iota/fey/TrieNode.scala b/fey-core/src/main/scala/org/apache/iota/fey/TrieNode.scala index 95deacc..517abd5 100644 --- a/fey-core/src/main/scala/org/apache/iota/fey/TrieNode.scala +++ b/fey-core/src/main/scala/org/apache/iota/fey/TrieNode.scala @@ -59,6 +59,10 @@ class Trie{ getObjectEvent(root, null) } + def getRootChildren():ArrayBuffer[TrieNode] = { + root.children + } + private def getObject(root: TrieNode, parent: TrieNode):JsObject = { if(root != null) { Json.obj("name" -> root.path,