You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@htrace.apache.org by cm...@apache.org on 2015/06/18 22:37:29 UTC

incubator-htrace git commit: HTRACE-190. htraced: allowing querying by process id (cmccabe)

Repository: incubator-htrace
Updated Branches:
  refs/heads/master 8c33794ab -> 3e7452936


HTRACE-190. htraced: allowing querying by process id (cmccabe)


Project: http://git-wip-us.apache.org/repos/asf/incubator-htrace/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-htrace/commit/3e745293
Tree: http://git-wip-us.apache.org/repos/asf/incubator-htrace/tree/3e745293
Diff: http://git-wip-us.apache.org/repos/asf/incubator-htrace/diff/3e745293

Branch: refs/heads/master
Commit: 3e745293600af83a564ac88760457987c47dad64
Parents: 8c33794
Author: Colin P. Mccabe <cm...@apache.org>
Authored: Tue Jun 16 18:12:58 2015 -0700
Committer: Colin Patrick Mccabe <cm...@cloudera.com>
Committed: Thu Jun 18 13:37:09 2015 -0700

----------------------------------------------------------------------
 htrace-htraced/go/src/org/apache/htrace/common/query.go     | 4 +++-
 .../go/src/org/apache/htrace/htraced/datastore.go           | 6 ++++++
 htrace-webapp/src/main/web/app/predicate.js                 | 9 +++++++++
 htrace-webapp/src/main/web/index.html                       | 4 ++++
 4 files changed, 22 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-htrace/blob/3e745293/htrace-htraced/go/src/org/apache/htrace/common/query.go
----------------------------------------------------------------------
diff --git a/htrace-htraced/go/src/org/apache/htrace/common/query.go b/htrace-htraced/go/src/org/apache/htrace/common/query.go
index 8c9128f..aae034c 100644
--- a/htrace-htraced/go/src/org/apache/htrace/common/query.go
+++ b/htrace-htraced/go/src/org/apache/htrace/common/query.go
@@ -81,6 +81,7 @@ const (
 	BEGIN_TIME  Field = "begin"
 	END_TIME    Field = "end"
 	DURATION    Field = "duration"
+	PROCESS_ID  Field = "processid"
 )
 
 func (field Field) IsValid() bool {
@@ -94,7 +95,8 @@ func (field Field) IsValid() bool {
 }
 
 func ValidFields() []Field {
-	return []Field{SPAN_ID, DESCRIPTION, BEGIN_TIME, END_TIME, DURATION}
+	return []Field{SPAN_ID, DESCRIPTION, BEGIN_TIME, END_TIME,
+		DURATION, PROCESS_ID}
 }
 
 type Predicate struct {

http://git-wip-us.apache.org/repos/asf/incubator-htrace/blob/3e745293/htrace-htraced/go/src/org/apache/htrace/htraced/datastore.go
----------------------------------------------------------------------
diff --git a/htrace-htraced/go/src/org/apache/htrace/htraced/datastore.go b/htrace-htraced/go/src/org/apache/htrace/htraced/datastore.go
index 0742555..35c7dad 100644
--- a/htrace-htraced/go/src/org/apache/htrace/htraced/datastore.go
+++ b/htrace-htraced/go/src/org/apache/htrace/htraced/datastore.go
@@ -573,6 +573,10 @@ func loadPredicateData(pred *common.Predicate) (*predicateData, error) {
 		}
 		p.uintKey = s2u64(v)
 		break
+	case common.PROCESS_ID:
+		// Any string is valid for a process ID.
+		p.strKey = pred.Val
+		break
 	default:
 		return nil, errors.New(fmt.Sprintf("Unknown field %s", pred.Field))
 	}
@@ -634,6 +638,8 @@ func (pred *predicateData) extractRelevantSpanData(span *common.Span) (uint64, s
 		return s2u64(span.End), ""
 	case common.DURATION:
 		return s2u64(span.Duration()), ""
+	case common.PROCESS_ID:
+		return 0, span.ProcessId
 	default:
 		panic(fmt.Sprintf("Field type %s isn't a 64-bit integer.", pred.Field))
 	}

http://git-wip-us.apache.org/repos/asf/incubator-htrace/blob/3e745293/htrace-webapp/src/main/web/app/predicate.js
----------------------------------------------------------------------
diff --git a/htrace-webapp/src/main/web/app/predicate.js b/htrace-webapp/src/main/web/app/predicate.js
index 87a5602..e48b901 100644
--- a/htrace-webapp/src/main/web/app/predicate.js
+++ b/htrace-webapp/src/main/web/app/predicate.js
@@ -61,6 +61,9 @@ htrace.PType = Backbone.Model.extend({
       return val;
     case "spanid":
       return htrace.normalizeSpanId(val);
+    case "processid":
+      htrace.checkStringIsNotEmpty(val);
+      return val;
     default:
       return "Normalization not implemented for field '" + this.field + "'";
     }
@@ -78,6 +81,8 @@ htrace.PType = Backbone.Model.extend({
       return "0";
     case "spanid":
       return "";
+    case "processid":
+      return "";
     default:
       return "(unknown)";
     }
@@ -104,6 +109,10 @@ htrace.parsePType = function(name) {
       return new htrace.PType({name: name, field:"duration", op:"le"});
     case "Span ID is":
       return new htrace.PType({name: name, field:"spanid", op:"eq"});
+    case "ProcessId contains":
+      return new htrace.PType({name: name, field:"processid", op:"cn"});
+    case "ProcessId is exactly":
+      return new htrace.PType({name: name, field:"processid", op:"eq"});
     default:
       return null
   }

http://git-wip-us.apache.org/repos/asf/incubator-htrace/blob/3e745293/htrace-webapp/src/main/web/index.html
----------------------------------------------------------------------
diff --git a/htrace-webapp/src/main/web/index.html b/htrace-webapp/src/main/web/index.html
index bd15c9a..0e8e6c3 100644
--- a/htrace-webapp/src/main/web/index.html
+++ b/htrace-webapp/src/main/web/index.html
@@ -132,6 +132,10 @@
                         class="add-field">Duration is at most</a></li>
                       <li><a href="javascript:void(0)" 
                         class="add-field">Span ID is</a></li>
+                      <li><a href="javascript:void(0)" 
+                        class="add-field">ProcessId contains</a></li>
+                      <li><a href="javascript:void(0)" 
+                        class="add-field">ProcessId is exactly</a></li>
                     </ul>
                   </div>
                   <button type="submit" class="btn btn-primary" id="searchButton">