You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@curator.apache.org by ca...@apache.org on 2016/10/26 22:51:33 UTC
[1/4] curator git commit: [CURATOR-349] Expose extra metrics in
TracerDriver
Repository: curator
Updated Branches:
refs/heads/CURATOR-3.0 d034aeaed -> d8798c21d
[CURATOR-349] Expose extra metrics in TracerDriver
Project: http://git-wip-us.apache.org/repos/asf/curator/repo
Commit: http://git-wip-us.apache.org/repos/asf/curator/commit/2f6e2177
Tree: http://git-wip-us.apache.org/repos/asf/curator/tree/2f6e2177
Diff: http://git-wip-us.apache.org/repos/asf/curator/diff/2f6e2177
Branch: refs/heads/CURATOR-3.0
Commit: 2f6e2177e98d0f418b47a664a48c87abf5a72595
Parents: 022de39
Author: allenlyu <al...@fb.com>
Authored: Tue Sep 20 14:56:47 2016 -0700
Committer: lvfangmin <lv...@gmail.com>
Committed: Wed Oct 19 17:38:29 2016 -0700
----------------------------------------------------------------------
.../org/apache/curator/ConnectionState.java | 37 ++++-
.../apache/curator/CuratorZookeeperClient.java | 15 +-
.../main/java/org/apache/curator/RetryLoop.java | 7 +-
.../curator/drivers/AdvancedTracerDriver.java | 50 ++++++
.../org/apache/curator/drivers/EventTrace.java | 53 ++++++
.../apache/curator/drivers/OperationTrace.java | 162 +++++++++++++++++++
.../framework/imps/BackgroundSyncImpl.java | 11 +-
.../framework/imps/CreateBuilderImpl.java | 17 +-
.../framework/imps/CuratorFrameworkImpl.java | 4 +-
.../framework/imps/DeleteBuilderImpl.java | 10 +-
.../framework/imps/ExistsBuilderImpl.java | 14 +-
.../FindAndDeleteProtectedNodeInBackground.java | 6 +-
.../framework/imps/GetACLBuilderImpl.java | 10 +-
.../framework/imps/GetChildrenBuilderImpl.java | 10 +-
.../framework/imps/GetDataBuilderImpl.java | 10 +-
.../framework/imps/SetACLBuilderImpl.java | 10 +-
.../framework/imps/SetDataBuilderImpl.java | 13 +-
.../curator/framework/imps/SyncBuilderImpl.java | 6 +-
.../framework/imps/TempGetDataBuilderImpl.java | 6 +-
src/site/confluence/logging.confluence | 2 +-
20 files changed, 380 insertions(+), 73 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/curator/blob/2f6e2177/curator-client/src/main/java/org/apache/curator/ConnectionState.java
----------------------------------------------------------------------
diff --git a/curator-client/src/main/java/org/apache/curator/ConnectionState.java b/curator-client/src/main/java/org/apache/curator/ConnectionState.java
index dc6ac53..9712899 100644
--- a/curator-client/src/main/java/org/apache/curator/ConnectionState.java
+++ b/curator-client/src/main/java/org/apache/curator/ConnectionState.java
@@ -19,6 +19,8 @@
package org.apache.curator;
import org.apache.curator.utils.CloseableUtils;
+import org.apache.curator.drivers.EventTrace;
+import org.apache.curator.drivers.OperationTrace;
import org.apache.curator.drivers.TracerDriver;
import org.apache.curator.ensemble.EnsembleProvider;
import org.apache.curator.utils.DebugUtils;
@@ -78,7 +80,7 @@ class ConnectionState implements Watcher, Closeable
Exception exception = backgroundExceptions.poll();
if ( exception != null )
{
- tracer.get().addCount("background-exceptions", 1);
+ new EventTrace("background-exceptions", tracer.get()).commit();
throw exception;
}
@@ -160,9 +162,10 @@ class ConnectionState implements Watcher, Closeable
for ( Watcher parentWatcher : parentWatchers )
{
- TimeTrace timeTrace = new TimeTrace("connection-state-parent-process", tracer.get());
+
+ OperationTrace trace = new OperationTrace("connection-state-parent-process", tracer.get());
parentWatcher.process(event);
- timeTrace.commit();
+ trace.commit();
}
}
@@ -199,13 +202,31 @@ class ConnectionState implements Watcher, Closeable
{
log.error(String.format("Connection timed out for connection string (%s) and timeout (%d) / elapsed (%d)", zooKeeper.getConnectionString(), connectionTimeoutMs, elapsed), connectionLossException);
}
- tracer.get().addCount("connections-timed-out", 1);
+ new EventTrace("connections-timed-out", tracer.get(), getSessionId()).commit();
throw connectionLossException;
}
}
}
}
+ /**
+ * Return the current session id
+ */
+ public long getSessionId() {
+ long sessionId = -1;
+ if (isConnected()) {
+ try {
+ ZooKeeper zk = zooKeeper.getZooKeeper();
+ if (zk != null) {
+ sessionId = zk.getSessionId();
+ }
+ } catch (Exception e) {
+ // Ignore the exception
+ }
+ }
+ return sessionId;
+ }
+
private synchronized void reset() throws Exception
{
log.debug("reset");
@@ -259,6 +280,10 @@ class ConnectionState implements Watcher, Closeable
break;
}
}
+ // the session expired is logged in handleExpiredSession, so not log here
+ if (state != Event.KeeperState.Expired) {
+ new EventTrace(state.toString(), tracer.get(), getSessionId()).commit();
+ }
if ( checkNewConnectionString && zooKeeper.hasNewConnectionString() )
{
@@ -271,7 +296,7 @@ class ConnectionState implements Watcher, Closeable
private void handleNewConnectionString()
{
log.info("Connection string changed");
- tracer.get().addCount("connection-string-changed", 1);
+ new EventTrace("connection-string-changed", tracer.get(), getSessionId()).commit();
try
{
@@ -287,7 +312,7 @@ class ConnectionState implements Watcher, Closeable
private void handleExpiredSession()
{
log.warn("Session expired event received");
- tracer.get().addCount("session-expired", 1);
+ new EventTrace("session-expired", tracer.get(), getSessionId()).commit();
try
{
http://git-wip-us.apache.org/repos/asf/curator/blob/2f6e2177/curator-client/src/main/java/org/apache/curator/CuratorZookeeperClient.java
----------------------------------------------------------------------
diff --git a/curator-client/src/main/java/org/apache/curator/CuratorZookeeperClient.java b/curator-client/src/main/java/org/apache/curator/CuratorZookeeperClient.java
index c9f5199..9c1c3d0 100644
--- a/curator-client/src/main/java/org/apache/curator/CuratorZookeeperClient.java
+++ b/curator-client/src/main/java/org/apache/curator/CuratorZookeeperClient.java
@@ -19,6 +19,7 @@
package org.apache.curator;
import com.google.common.base.Preconditions;
+import org.apache.curator.drivers.OperationTrace;
import org.apache.curator.drivers.TracerDriver;
import org.apache.curator.ensemble.EnsembleProvider;
import org.apache.curator.ensemble.fixed.FixedEnsembleProvider;
@@ -160,7 +161,7 @@ public class CuratorZookeeperClient implements Closeable
Preconditions.checkState(started.get(), "Client is not started");
log.debug("blockUntilConnectedOrTimedOut() start");
- TimeTrace trace = startTracer("blockUntilConnectedOrTimedOut");
+ OperationTrace trace = startAdvancedTracer("blockUntilConnectedOrTimedOut");
internalBlockUntilConnectedOrTimedOut();
@@ -242,6 +243,16 @@ public class CuratorZookeeperClient implements Closeable
}
/**
+ * Start a new advanced tracer with more metrics being recorded
+ * @param name name of the event
+ * @return the new tracer ({@link OperationTrace#commit()} must be called)
+ */
+ public OperationTrace startAdvancedTracer(String name)
+ {
+ return new OperationTrace(name, tracer.get(), state.getSessionId());
+ }
+
+ /**
* Return the current tracing driver
*
* @return tracing driver
@@ -317,7 +328,7 @@ public class CuratorZookeeperClient implements Closeable
latch.countDown();
}
};
-
+
state.addParentWatcher(tempWatcher);
long startTimeMs = System.currentTimeMillis();
try
http://git-wip-us.apache.org/repos/asf/curator/blob/2f6e2177/curator-client/src/main/java/org/apache/curator/RetryLoop.java
----------------------------------------------------------------------
diff --git a/curator-client/src/main/java/org/apache/curator/RetryLoop.java b/curator-client/src/main/java/org/apache/curator/RetryLoop.java
index 48d4d5c..ea34349 100644
--- a/curator-client/src/main/java/org/apache/curator/RetryLoop.java
+++ b/curator-client/src/main/java/org/apache/curator/RetryLoop.java
@@ -18,6 +18,7 @@
*/
package org.apache.curator;
+import org.apache.curator.drivers.EventTrace;
import org.apache.curator.drivers.TracerDriver;
import org.apache.curator.utils.DebugUtils;
import org.apache.curator.utils.ThreadUtils;
@@ -104,7 +105,7 @@ public class RetryLoop
try
{
client.internalBlockUntilConnectedOrTimedOut();
-
+
result = proc.call();
retryLoop.markComplete();
}
@@ -189,7 +190,7 @@ public class RetryLoop
if ( retryPolicy.allowRetry(retryCount++, System.currentTimeMillis() - startTimeMs, sleeper) )
{
- tracer.get().addCount("retries-allowed", 1);
+ new EventTrace("retries-allowed", tracer.get()).commit();
if ( !Boolean.getBoolean(DebugUtils.PROPERTY_DONT_LOG_CONNECTION_ISSUES) )
{
log.debug("Retrying operation");
@@ -198,7 +199,7 @@ public class RetryLoop
}
else
{
- tracer.get().addCount("retries-disallowed", 1);
+ new EventTrace("retries-disallowed", tracer.get()).commit();
if ( !Boolean.getBoolean(DebugUtils.PROPERTY_DONT_LOG_CONNECTION_ISSUES) )
{
log.debug("Retry policy not allowing retry");
http://git-wip-us.apache.org/repos/asf/curator/blob/2f6e2177/curator-client/src/main/java/org/apache/curator/drivers/AdvancedTracerDriver.java
----------------------------------------------------------------------
diff --git a/curator-client/src/main/java/org/apache/curator/drivers/AdvancedTracerDriver.java b/curator-client/src/main/java/org/apache/curator/drivers/AdvancedTracerDriver.java
new file mode 100644
index 0000000..40faa99
--- /dev/null
+++ b/curator-client/src/main/java/org/apache/curator/drivers/AdvancedTracerDriver.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.curator.drivers;
+
+import java.util.concurrent.TimeUnit;
+
+/**
+ * Expose more metrics for the operations and events
+ */
+public abstract class AdvancedTracerDriver implements TracerDriver
+{
+ /**
+ * Record the given trace event
+ *
+ * @param trace the metrics of the operation
+ */
+ public abstract void addTrace(OperationTrace trace);
+
+ /**
+ * Add to a named counter
+ *
+ * @param name name of the counter
+ * @param increment amount to increment
+ */
+ public abstract void addEvent(EventTrace trace);
+
+ @Deprecated
+ @Override
+ public final void addTrace(String name, long time, TimeUnit unit) {}
+
+ @Deprecated
+ @Override
+ public final void addCount(String name, int increment) {}
+}
http://git-wip-us.apache.org/repos/asf/curator/blob/2f6e2177/curator-client/src/main/java/org/apache/curator/drivers/EventTrace.java
----------------------------------------------------------------------
diff --git a/curator-client/src/main/java/org/apache/curator/drivers/EventTrace.java b/curator-client/src/main/java/org/apache/curator/drivers/EventTrace.java
new file mode 100644
index 0000000..1c6e031
--- /dev/null
+++ b/curator-client/src/main/java/org/apache/curator/drivers/EventTrace.java
@@ -0,0 +1,53 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.curator.drivers;
+
+public class EventTrace
+{
+ private final String name;
+ private final TracerDriver driver;
+ private final long sessionId;
+
+ public EventTrace(String name, TracerDriver driver) {
+ this(name, driver, -1);
+ }
+
+ public EventTrace(String name, TracerDriver driver, long sessionId) {
+ this.name = name;
+ this.driver = driver;
+ this.sessionId = sessionId;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public long getSessionId() {
+ return this.sessionId;
+ }
+
+ public void commit() {
+ if (this.driver instanceof AdvancedTracerDriver) {
+ ((AdvancedTracerDriver) this.driver).addEvent(this);
+ } else {
+ this.driver.addCount(this.name, 1);
+ }
+ }
+}
+
http://git-wip-us.apache.org/repos/asf/curator/blob/2f6e2177/curator-client/src/main/java/org/apache/curator/drivers/OperationTrace.java
----------------------------------------------------------------------
diff --git a/curator-client/src/main/java/org/apache/curator/drivers/OperationTrace.java b/curator-client/src/main/java/org/apache/curator/drivers/OperationTrace.java
new file mode 100644
index 0000000..b8de3a3
--- /dev/null
+++ b/curator-client/src/main/java/org/apache/curator/drivers/OperationTrace.java
@@ -0,0 +1,162 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.curator.drivers;
+
+import org.apache.curator.drivers.TracerDriver;
+import org.apache.zookeeper.KeeperException;
+import org.apache.zookeeper.data.Stat;
+
+import java.io.UnsupportedEncodingException;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * Used to trace the metrics of a certain Zookeeper operation.
+ */
+public class OperationTrace
+{
+ private final String name;
+ private final TracerDriver driver;
+
+ private int returnCode = KeeperException.Code.OK.intValue();
+ private long latencyMs;
+ private long requestBytesLength;
+ private long responseBytesLength;
+ private String path;
+ private boolean withWatcher;
+ private long sessionId;
+ private Stat stat;
+
+ private final long startTimeNanos = System.nanoTime();
+
+ public OperationTrace(String name, TracerDriver driver) {
+ this(name, driver, -1);
+ }
+
+ public OperationTrace(String name, TracerDriver driver, long sessionId) {
+ this.name = name;
+ this.driver = driver;
+ this.sessionId = sessionId;
+ }
+
+ public OperationTrace setReturnCode(int returnCode) {
+ this.returnCode = returnCode;
+ return this;
+ }
+
+ public OperationTrace setRequestBytesLength(long length) {
+ this.requestBytesLength = length;
+ return this;
+ }
+
+ public OperationTrace setRequestBytesLength(String data) {
+ if (data == null) {
+ return this;
+ }
+
+ try {
+ this.setRequestBytesLength(data.getBytes("UTF-8").length);
+ } catch (UnsupportedEncodingException e) {
+ // Ignore the exception.
+ }
+
+ return this;
+ }
+
+ public OperationTrace setRequestBytesLength(byte[] data) {
+ if (data == null) {
+ return this;
+ }
+
+ return this.setRequestBytesLength(data.length);
+ }
+
+ public OperationTrace setResponseBytesLength(long length) {
+ this.responseBytesLength = length;
+ return this;
+ }
+
+ public OperationTrace setResponseBytesLength(byte[] data) {
+ if (data == null) {
+ return this;
+ }
+
+ return this.setResponseBytesLength(data.length);
+ }
+
+ public OperationTrace setPath(String path) {
+ this.path = path;
+ return this;
+ }
+
+ public OperationTrace setWithWatcher(boolean withWatcher) {
+ this.withWatcher = withWatcher;
+ return this;
+ }
+
+ public OperationTrace setStat(Stat stat) {
+ this.stat = stat;
+ return this;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public int getReturnCode() {
+ return this.returnCode;
+ }
+
+ public long getLatencyMs() {
+ return this.latencyMs;
+ }
+
+ public long getRequestBytesLength() {
+ return this.requestBytesLength;
+ }
+
+ public long getResponseBytesLength() {
+ return this.responseBytesLength;
+ }
+
+ public long getSessionId() {
+ return this.sessionId;
+ }
+
+ public String getPath() {
+ return this.path;
+ }
+
+ public boolean isWithWatcher() {
+ return this.withWatcher;
+ }
+
+ public Stat getStat() {
+ return this.stat;
+ }
+
+ public void commit() {
+ long elapsed = System.nanoTime() - startTimeNanos;
+ this.latencyMs = TimeUnit.MILLISECONDS.convert(elapsed, TimeUnit.NANOSECONDS);
+ if (this.driver instanceof AdvancedTracerDriver) {
+ ((AdvancedTracerDriver) this.driver).addTrace(this);
+ } else {
+ this.driver.addTrace(this.name, elapsed, TimeUnit.NANOSECONDS);
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/curator/blob/2f6e2177/curator-framework/src/main/java/org/apache/curator/framework/imps/BackgroundSyncImpl.java
----------------------------------------------------------------------
diff --git a/curator-framework/src/main/java/org/apache/curator/framework/imps/BackgroundSyncImpl.java b/curator-framework/src/main/java/org/apache/curator/framework/imps/BackgroundSyncImpl.java
index af8e458..fe1b16c 100644
--- a/curator-framework/src/main/java/org/apache/curator/framework/imps/BackgroundSyncImpl.java
+++ b/curator-framework/src/main/java/org/apache/curator/framework/imps/BackgroundSyncImpl.java
@@ -18,10 +18,12 @@
*/
package org.apache.curator.framework.imps;
-import org.apache.curator.TimeTrace;
+import org.apache.curator.drivers.OperationTrace;
import org.apache.curator.framework.api.CuratorEventType;
import org.apache.zookeeper.AsyncCallback;
+import java.io.UnsupportedEncodingException;
+
class BackgroundSyncImpl implements BackgroundOperation<String>
{
private final CuratorFrameworkImpl client;
@@ -36,16 +38,17 @@ class BackgroundSyncImpl implements BackgroundOperation<String>
@Override
public void performBackgroundOperation(final OperationAndData<String> operationAndData) throws Exception
{
- final TimeTrace trace = client.getZookeeperClient().startTracer("BackgroundSyncImpl");
+ final OperationTrace trace = client.getZookeeperClient().startAdvancedTracer("BackgroundSyncImpl");
+ final String data = operationAndData.getData();
client.getZooKeeper().sync
(
- operationAndData.getData(),
+ data,
new AsyncCallback.VoidCallback()
{
@Override
public void processResult(int rc, String path, Object ctx)
{
- trace.commit();
+ trace.setReturnCode(rc).setRequestBytesLength(data).commit();
CuratorEventImpl event = new CuratorEventImpl(client, CuratorEventType.SYNC, rc, path, null, ctx, null, null, null, null, null);
client.processBackgroundOperation(operationAndData, event);
}
http://git-wip-us.apache.org/repos/asf/curator/blob/2f6e2177/curator-framework/src/main/java/org/apache/curator/framework/imps/CreateBuilderImpl.java
----------------------------------------------------------------------
diff --git a/curator-framework/src/main/java/org/apache/curator/framework/imps/CreateBuilderImpl.java b/curator-framework/src/main/java/org/apache/curator/framework/imps/CreateBuilderImpl.java
index 0f893d8..d59ba69 100644
--- a/curator-framework/src/main/java/org/apache/curator/framework/imps/CreateBuilderImpl.java
+++ b/curator-framework/src/main/java/org/apache/curator/framework/imps/CreateBuilderImpl.java
@@ -23,7 +23,7 @@ import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Predicate;
import com.google.common.collect.Iterables;
import org.apache.curator.RetryLoop;
-import org.apache.curator.TimeTrace;
+import org.apache.curator.drivers.OperationTrace;
import org.apache.curator.framework.api.*;
import org.apache.curator.framework.api.transaction.CuratorTransactionBridge;
import org.apache.curator.framework.api.transaction.OperationType;
@@ -510,11 +510,12 @@ class CreateBuilderImpl implements CreateBuilder, BackgroundOperation<PathAndByt
{
try
{
- final TimeTrace trace = client.getZookeeperClient().startTracer("CreateBuilderImpl-Background");
+ final OperationTrace trace = client.getZookeeperClient().startAdvancedTracer("CreateBuilderImpl-Background");
+ final byte[] data = operationAndData.getData().getData();
client.getZooKeeper().create
(
operationAndData.getData().getPath(),
- operationAndData.getData().getData(),
+ data,
acling.getAclList(operationAndData.getData().getPath()),
createMode,
new AsyncCallback.StringCallback()
@@ -522,7 +523,7 @@ class CreateBuilderImpl implements CreateBuilder, BackgroundOperation<PathAndByt
@Override
public void processResult(int rc, String path, Object ctx, String name)
{
- trace.commit();
+ trace.setReturnCode(rc).setRequestBytesLength(data).setPath(path).commit();
if ( (rc == KeeperException.Code.NONODE.intValue()) && createParentsIfNeeded )
{
@@ -708,7 +709,7 @@ class CreateBuilderImpl implements CreateBuilder, BackgroundOperation<PathAndByt
private String pathInForeground(final String path, final byte[] data) throws Exception
{
- TimeTrace trace = client.getZookeeperClient().startTracer("CreateBuilderImpl-Foreground");
+ OperationTrace trace = client.getZookeeperClient().startAdvancedTracer("CreateBuilderImpl-Foreground");
final AtomicBoolean firstTime = new AtomicBoolean(true);
String returnPath = RetryLoop.callWithRetry
@@ -758,13 +759,13 @@ class CreateBuilderImpl implements CreateBuilder, BackgroundOperation<PathAndByt
}
);
- trace.commit();
+ trace.setRequestBytesLength(data).setPath(path).commit();
return returnPath;
}
private String findProtectedNodeInForeground(final String path) throws Exception
{
- TimeTrace trace = client.getZookeeperClient().startTracer("CreateBuilderImpl-findProtectedNodeInForeground");
+ OperationTrace trace = client.getZookeeperClient().startAdvancedTracer("CreateBuilderImpl-findProtectedNodeInForeground");
String returnPath = RetryLoop.callWithRetry
(
@@ -791,7 +792,7 @@ class CreateBuilderImpl implements CreateBuilder, BackgroundOperation<PathAndByt
}
);
- trace.commit();
+ trace.setPath(path).commit();
return returnPath;
}
http://git-wip-us.apache.org/repos/asf/curator/blob/2f6e2177/curator-framework/src/main/java/org/apache/curator/framework/imps/CuratorFrameworkImpl.java
----------------------------------------------------------------------
diff --git a/curator-framework/src/main/java/org/apache/curator/framework/imps/CuratorFrameworkImpl.java b/curator-framework/src/main/java/org/apache/curator/framework/imps/CuratorFrameworkImpl.java
index 442579d..6aa9f66 100644
--- a/curator-framework/src/main/java/org/apache/curator/framework/imps/CuratorFrameworkImpl.java
+++ b/curator-framework/src/main/java/org/apache/curator/framework/imps/CuratorFrameworkImpl.java
@@ -27,7 +27,7 @@ import com.google.common.collect.ImmutableList;
import org.apache.curator.CuratorConnectionLossException;
import org.apache.curator.CuratorZookeeperClient;
import org.apache.curator.RetryLoop;
-import org.apache.curator.TimeTrace;
+import org.apache.curator.drivers.OperationTrace;
import org.apache.curator.framework.AuthInfo;
import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.CuratorFrameworkFactory;
@@ -884,7 +884,7 @@ public class CuratorFrameworkImpl implements CuratorFramework
{
try
{
- TimeTrace trace = client.startTracer("EventListener");
+ OperationTrace trace = client.startAdvancedTracer("EventListener");
listener.eventReceived(CuratorFrameworkImpl.this, curatorEvent);
trace.commit();
}
http://git-wip-us.apache.org/repos/asf/curator/blob/2f6e2177/curator-framework/src/main/java/org/apache/curator/framework/imps/DeleteBuilderImpl.java
----------------------------------------------------------------------
diff --git a/curator-framework/src/main/java/org/apache/curator/framework/imps/DeleteBuilderImpl.java b/curator-framework/src/main/java/org/apache/curator/framework/imps/DeleteBuilderImpl.java
index 833904b..7fbe36e 100644
--- a/curator-framework/src/main/java/org/apache/curator/framework/imps/DeleteBuilderImpl.java
+++ b/curator-framework/src/main/java/org/apache/curator/framework/imps/DeleteBuilderImpl.java
@@ -19,7 +19,7 @@
package org.apache.curator.framework.imps;
import org.apache.curator.RetryLoop;
-import org.apache.curator.TimeTrace;
+import org.apache.curator.drivers.OperationTrace;
import org.apache.curator.framework.api.*;
import org.apache.curator.framework.api.transaction.CuratorTransactionBridge;
import org.apache.curator.framework.api.transaction.OperationType;
@@ -145,7 +145,7 @@ class DeleteBuilderImpl implements DeleteBuilder, BackgroundOperation<String>, E
{
try
{
- final TimeTrace trace = client.getZookeeperClient().startTracer("DeleteBuilderImpl-Background");
+ final OperationTrace trace = client.getZookeeperClient().startAdvancedTracer("DeleteBuilderImpl-Background");
client.getZooKeeper().delete
(
operationAndData.getData(),
@@ -155,7 +155,7 @@ class DeleteBuilderImpl implements DeleteBuilder, BackgroundOperation<String>, E
@Override
public void processResult(int rc, String path, Object ctx)
{
- trace.commit();
+ trace.setReturnCode(rc).setPath(path).commit();
if ( (rc == KeeperException.Code.NOTEMPTY.intValue()) && deletingChildrenIfNeeded )
{
backgroundDeleteChildrenThenNode(operationAndData);
@@ -234,7 +234,7 @@ class DeleteBuilderImpl implements DeleteBuilder, BackgroundOperation<String>, E
private void pathInForeground(final String path, String unfixedPath) throws Exception
{
- TimeTrace trace = client.getZookeeperClient().startTracer("DeleteBuilderImpl-Foreground");
+ OperationTrace trace = client.getZookeeperClient().startAdvancedTracer("DeleteBuilderImpl-Foreground");
try
{
RetryLoop.callWithRetry
@@ -275,6 +275,6 @@ class DeleteBuilderImpl implements DeleteBuilder, BackgroundOperation<String>, E
}
throw e;
}
- trace.commit();
+ trace.setPath(path).commit();
}
}
http://git-wip-us.apache.org/repos/asf/curator/blob/2f6e2177/curator-framework/src/main/java/org/apache/curator/framework/imps/ExistsBuilderImpl.java
----------------------------------------------------------------------
diff --git a/curator-framework/src/main/java/org/apache/curator/framework/imps/ExistsBuilderImpl.java b/curator-framework/src/main/java/org/apache/curator/framework/imps/ExistsBuilderImpl.java
index da9b0ce..757e8fe 100644
--- a/curator-framework/src/main/java/org/apache/curator/framework/imps/ExistsBuilderImpl.java
+++ b/curator-framework/src/main/java/org/apache/curator/framework/imps/ExistsBuilderImpl.java
@@ -19,7 +19,7 @@
package org.apache.curator.framework.imps;
import org.apache.curator.RetryLoop;
-import org.apache.curator.TimeTrace;
+import org.apache.curator.drivers.OperationTrace;
import org.apache.curator.framework.api.*;
import org.apache.curator.utils.ZKPaths;
import org.apache.zookeeper.AsyncCallback;
@@ -126,13 +126,13 @@ class ExistsBuilderImpl implements ExistsBuilder, BackgroundOperation<String>, E
{
try
{
- final TimeTrace trace = client.getZookeeperClient().startTracer("ExistsBuilderImpl-Background");
+ final OperationTrace trace = client.getZookeeperClient().startAdvancedTracer("ExistsBuilderImpl-Background");
AsyncCallback.StatCallback callback = new AsyncCallback.StatCallback()
{
@Override
public void processResult(int rc, String path, Object ctx, Stat stat)
{
- trace.commit();
+ trace.setReturnCode(rc).setPath(path).setWithWatcher(watching.getWatcher() != null).setStat(stat).commit();
CuratorEvent event = new CuratorEventImpl(client, CuratorEventType.EXISTS, rc, path, null, ctx, stat, null, null, null, null);
client.processBackgroundOperation(operationAndData, event);
}
@@ -185,7 +185,7 @@ class ExistsBuilderImpl implements ExistsBuilder, BackgroundOperation<String>, E
final String parent = ZKPaths.getPathAndNode(path).getPath();
if ( !parent.equals(ZKPaths.PATH_SEPARATOR) )
{
- TimeTrace trace = client.getZookeeperClient().startTracer("ExistsBuilderImpl-Foreground-CreateParents");
+ OperationTrace trace = client.getZookeeperClient().startAdvancedTracer("ExistsBuilderImpl-Foreground-CreateParents");
RetryLoop.callWithRetry
(
client.getZookeeperClient(),
@@ -210,7 +210,7 @@ class ExistsBuilderImpl implements ExistsBuilder, BackgroundOperation<String>, E
}
}
);
- trace.commit();
+ trace.setPath(path).commit();
}
}
return pathInForegroundStandard(path);
@@ -218,7 +218,7 @@ class ExistsBuilderImpl implements ExistsBuilder, BackgroundOperation<String>, E
private Stat pathInForegroundStandard(final String path) throws Exception
{
- TimeTrace trace = client.getZookeeperClient().startTracer("ExistsBuilderImpl-Foreground");
+ OperationTrace trace = client.getZookeeperClient().startAdvancedTracer("ExistsBuilderImpl-Foreground");
Stat returnStat = RetryLoop.callWithRetry
(
client.getZookeeperClient(),
@@ -240,7 +240,7 @@ class ExistsBuilderImpl implements ExistsBuilder, BackgroundOperation<String>, E
}
}
);
- trace.commit();
+ trace.setPath(path).setWithWatcher(watching.getWatcher() != null).setStat(returnStat).commit();
return returnStat;
}
}
http://git-wip-us.apache.org/repos/asf/curator/blob/2f6e2177/curator-framework/src/main/java/org/apache/curator/framework/imps/FindAndDeleteProtectedNodeInBackground.java
----------------------------------------------------------------------
diff --git a/curator-framework/src/main/java/org/apache/curator/framework/imps/FindAndDeleteProtectedNodeInBackground.java b/curator-framework/src/main/java/org/apache/curator/framework/imps/FindAndDeleteProtectedNodeInBackground.java
index 5b0f47c..6a2fe71 100644
--- a/curator-framework/src/main/java/org/apache/curator/framework/imps/FindAndDeleteProtectedNodeInBackground.java
+++ b/curator-framework/src/main/java/org/apache/curator/framework/imps/FindAndDeleteProtectedNodeInBackground.java
@@ -19,7 +19,7 @@
package org.apache.curator.framework.imps;
import com.google.common.annotations.VisibleForTesting;
-import org.apache.curator.TimeTrace;
+import org.apache.curator.drivers.OperationTrace;
import org.apache.curator.framework.api.CuratorEventType;
import org.apache.curator.utils.ThreadUtils;
import org.apache.curator.utils.ZKPaths;
@@ -66,13 +66,13 @@ class FindAndDeleteProtectedNodeInBackground implements BackgroundOperation<Void
@Override
public void performBackgroundOperation(final OperationAndData<Void> operationAndData) throws Exception
{
- final TimeTrace trace = client.getZookeeperClient().startTracer("FindAndDeleteProtectedNodeInBackground");
+ final OperationTrace trace = client.getZookeeperClient().startAdvancedTracer("FindAndDeleteProtectedNodeInBackground");
AsyncCallback.Children2Callback callback = new AsyncCallback.Children2Callback()
{
@Override
public void processResult(int rc, String path, Object o, List<String> strings, Stat stat)
{
- trace.commit();
+ trace.setReturnCode(rc).setPath(path).setStat(stat).commit();
if ( debugInsertError.compareAndSet(true, false) )
{
http://git-wip-us.apache.org/repos/asf/curator/blob/2f6e2177/curator-framework/src/main/java/org/apache/curator/framework/imps/GetACLBuilderImpl.java
----------------------------------------------------------------------
diff --git a/curator-framework/src/main/java/org/apache/curator/framework/imps/GetACLBuilderImpl.java b/curator-framework/src/main/java/org/apache/curator/framework/imps/GetACLBuilderImpl.java
index 351a8c5..7ac3557 100644
--- a/curator-framework/src/main/java/org/apache/curator/framework/imps/GetACLBuilderImpl.java
+++ b/curator-framework/src/main/java/org/apache/curator/framework/imps/GetACLBuilderImpl.java
@@ -19,7 +19,7 @@
package org.apache.curator.framework.imps;
import org.apache.curator.RetryLoop;
-import org.apache.curator.TimeTrace;
+import org.apache.curator.drivers.OperationTrace;
import org.apache.curator.framework.api.BackgroundCallback;
import org.apache.curator.framework.api.CuratorEventType;
import org.apache.curator.framework.api.ErrorListenerPathable;
@@ -108,13 +108,13 @@ class GetACLBuilderImpl implements GetACLBuilder, BackgroundOperation<String>, E
{
try
{
- final TimeTrace trace = client.getZookeeperClient().startTracer("GetACLBuilderImpl-Background");
+ final OperationTrace trace = client.getZookeeperClient().startAdvancedTracer("GetACLBuilderImpl-Background");
AsyncCallback.ACLCallback callback = new AsyncCallback.ACLCallback()
{
@Override
public void processResult(int rc, String path, Object ctx, List<ACL> acl, Stat stat)
{
- trace.commit();
+ trace.setReturnCode(rc).setPath(path).setStat(stat).commit();
CuratorEventImpl event = new CuratorEventImpl(client, CuratorEventType.GET_ACL, rc, path, null, ctx, stat, null, null, null, acl);
client.processBackgroundOperation(operationAndData, event);
}
@@ -146,7 +146,7 @@ class GetACLBuilderImpl implements GetACLBuilder, BackgroundOperation<String>, E
private List<ACL> pathInForeground(final String path) throws Exception
{
- TimeTrace trace = client.getZookeeperClient().startTracer("GetACLBuilderImpl-Foreground");
+ OperationTrace trace = client.getZookeeperClient().startAdvancedTracer("GetACLBuilderImpl-Foreground");
List<ACL> result = RetryLoop.callWithRetry
(
client.getZookeeperClient(),
@@ -159,7 +159,7 @@ class GetACLBuilderImpl implements GetACLBuilder, BackgroundOperation<String>, E
}
}
);
- trace.commit();
+ trace.setPath(path).setStat(responseStat).commit();
return result;
}
}
http://git-wip-us.apache.org/repos/asf/curator/blob/2f6e2177/curator-framework/src/main/java/org/apache/curator/framework/imps/GetChildrenBuilderImpl.java
----------------------------------------------------------------------
diff --git a/curator-framework/src/main/java/org/apache/curator/framework/imps/GetChildrenBuilderImpl.java b/curator-framework/src/main/java/org/apache/curator/framework/imps/GetChildrenBuilderImpl.java
index 745800d..5430546 100644
--- a/curator-framework/src/main/java/org/apache/curator/framework/imps/GetChildrenBuilderImpl.java
+++ b/curator-framework/src/main/java/org/apache/curator/framework/imps/GetChildrenBuilderImpl.java
@@ -20,7 +20,7 @@ package org.apache.curator.framework.imps;
import com.google.common.collect.Lists;
import org.apache.curator.RetryLoop;
-import org.apache.curator.TimeTrace;
+import org.apache.curator.drivers.OperationTrace;
import org.apache.curator.framework.api.BackgroundCallback;
import org.apache.curator.framework.api.BackgroundPathable;
import org.apache.curator.framework.api.CuratorEventType;
@@ -162,13 +162,13 @@ class GetChildrenBuilderImpl implements GetChildrenBuilder, BackgroundOperation<
{
try
{
- final TimeTrace trace = client.getZookeeperClient().startTracer("GetChildrenBuilderImpl-Background");
+ final OperationTrace trace = client.getZookeeperClient().startAdvancedTracer("GetChildrenBuilderImpl-Background");
AsyncCallback.Children2Callback callback = new AsyncCallback.Children2Callback()
{
@Override
public void processResult(int rc, String path, Object o, List<String> strings, Stat stat)
{
- trace.commit();
+ trace.setReturnCode(rc).setPath(path).setWithWatcher(watching.getWatcher() != null).setStat(stat).commit();
if ( strings == null )
{
strings = Lists.newArrayList();
@@ -211,7 +211,7 @@ class GetChildrenBuilderImpl implements GetChildrenBuilder, BackgroundOperation<
private List<String> pathInForeground(final String path) throws Exception
{
- TimeTrace trace = client.getZookeeperClient().startTracer("GetChildrenBuilderImpl-Foreground");
+ OperationTrace trace = client.getZookeeperClient().startAdvancedTracer("GetChildrenBuilderImpl-Foreground");
List<String> children = RetryLoop.callWithRetry
(
client.getZookeeperClient(),
@@ -233,7 +233,7 @@ class GetChildrenBuilderImpl implements GetChildrenBuilder, BackgroundOperation<
}
}
);
- trace.commit();
+ trace.setPath(path).setWithWatcher(watching.getWatcher() != null).setStat(responseStat).commit();
return children;
}
}
http://git-wip-us.apache.org/repos/asf/curator/blob/2f6e2177/curator-framework/src/main/java/org/apache/curator/framework/imps/GetDataBuilderImpl.java
----------------------------------------------------------------------
diff --git a/curator-framework/src/main/java/org/apache/curator/framework/imps/GetDataBuilderImpl.java b/curator-framework/src/main/java/org/apache/curator/framework/imps/GetDataBuilderImpl.java
index 94d27ad..c841792 100644
--- a/curator-framework/src/main/java/org/apache/curator/framework/imps/GetDataBuilderImpl.java
+++ b/curator-framework/src/main/java/org/apache/curator/framework/imps/GetDataBuilderImpl.java
@@ -19,7 +19,7 @@
package org.apache.curator.framework.imps;
import org.apache.curator.RetryLoop;
-import org.apache.curator.TimeTrace;
+import org.apache.curator.drivers.OperationTrace;
import org.apache.curator.framework.api.*;
import org.apache.curator.utils.ThreadUtils;
import org.apache.zookeeper.AsyncCallback;
@@ -233,13 +233,13 @@ class GetDataBuilderImpl implements GetDataBuilder, BackgroundOperation<String>,
{
try
{
- final TimeTrace trace = client.getZookeeperClient().startTracer("GetDataBuilderImpl-Background");
+ final OperationTrace trace = client.getZookeeperClient().startAdvancedTracer("GetDataBuilderImpl-Background");
AsyncCallback.DataCallback callback = new AsyncCallback.DataCallback()
{
@Override
public void processResult(int rc, String path, Object ctx, byte[] data, Stat stat)
{
- trace.commit();
+ trace.setReturnCode(rc).setResponseBytesLength(data).setPath(path).setWithWatcher(watching.getWatcher() != null).setStat(stat).commit();
if ( decompress && (data != null) )
{
try
@@ -291,7 +291,7 @@ class GetDataBuilderImpl implements GetDataBuilder, BackgroundOperation<String>,
private byte[] pathInForeground(final String path) throws Exception
{
- TimeTrace trace = client.getZookeeperClient().startTracer("GetDataBuilderImpl-Foreground");
+ OperationTrace trace = client.getZookeeperClient().startAdvancedTracer("GetDataBuilderImpl-Foreground");
byte[] responseData = RetryLoop.callWithRetry
(
client.getZookeeperClient(),
@@ -313,7 +313,7 @@ class GetDataBuilderImpl implements GetDataBuilder, BackgroundOperation<String>,
}
}
);
- trace.commit();
+ trace.setResponseBytesLength(responseData).setPath(path).setWithWatcher(watching.getWatcher() != null).setStat(responseStat).commit();
return decompress ? client.getCompressionProvider().decompress(path, responseData) : responseData;
}
http://git-wip-us.apache.org/repos/asf/curator/blob/2f6e2177/curator-framework/src/main/java/org/apache/curator/framework/imps/SetACLBuilderImpl.java
----------------------------------------------------------------------
diff --git a/curator-framework/src/main/java/org/apache/curator/framework/imps/SetACLBuilderImpl.java b/curator-framework/src/main/java/org/apache/curator/framework/imps/SetACLBuilderImpl.java
index 5507529..522a927 100644
--- a/curator-framework/src/main/java/org/apache/curator/framework/imps/SetACLBuilderImpl.java
+++ b/curator-framework/src/main/java/org/apache/curator/framework/imps/SetACLBuilderImpl.java
@@ -19,7 +19,7 @@
package org.apache.curator.framework.imps;
import org.apache.curator.RetryLoop;
-import org.apache.curator.TimeTrace;
+import org.apache.curator.drivers.OperationTrace;
import org.apache.curator.framework.api.*;
import org.apache.curator.framework.api.BackgroundCallback;
import org.apache.curator.framework.api.CuratorEventType;
@@ -133,7 +133,7 @@ class SetACLBuilderImpl implements SetACLBuilder, BackgroundPathable<Stat>, Back
{
try
{
- final TimeTrace trace = client.getZookeeperClient().startTracer("SetACLBuilderImpl-Background");
+ final OperationTrace trace = client.getZookeeperClient().startAdvancedTracer("SetACLBuilderImpl-Background");
String path = operationAndData.getData();
client.getZooKeeper().setACL
(
@@ -146,7 +146,7 @@ class SetACLBuilderImpl implements SetACLBuilder, BackgroundPathable<Stat>, Back
@Override
public void processResult(int rc, String path, Object ctx, Stat stat)
{
- trace.commit();
+ trace.setReturnCode(rc).setPath(path).setStat(stat).commit();
CuratorEvent event = new CuratorEventImpl(client, CuratorEventType.SET_ACL, rc, path, null, ctx, stat, null, null, null, null);
client.processBackgroundOperation(operationAndData, event);
}
@@ -162,7 +162,7 @@ class SetACLBuilderImpl implements SetACLBuilder, BackgroundPathable<Stat>, Back
private Stat pathInForeground(final String path) throws Exception
{
- TimeTrace trace = client.getZookeeperClient().startTracer("SetACLBuilderImpl-Foreground");
+ OperationTrace trace = client.getZookeeperClient().startAdvancedTracer("SetACLBuilderImpl-Foreground");
Stat resultStat = RetryLoop.callWithRetry
(
client.getZookeeperClient(),
@@ -175,7 +175,7 @@ class SetACLBuilderImpl implements SetACLBuilder, BackgroundPathable<Stat>, Back
}
}
);
- trace.commit();
+ trace.setPath(path).setStat(resultStat).commit();
return resultStat;
}
}
http://git-wip-us.apache.org/repos/asf/curator/blob/2f6e2177/curator-framework/src/main/java/org/apache/curator/framework/imps/SetDataBuilderImpl.java
----------------------------------------------------------------------
diff --git a/curator-framework/src/main/java/org/apache/curator/framework/imps/SetDataBuilderImpl.java b/curator-framework/src/main/java/org/apache/curator/framework/imps/SetDataBuilderImpl.java
index 62e39cf..2286565 100644
--- a/curator-framework/src/main/java/org/apache/curator/framework/imps/SetDataBuilderImpl.java
+++ b/curator-framework/src/main/java/org/apache/curator/framework/imps/SetDataBuilderImpl.java
@@ -19,7 +19,7 @@
package org.apache.curator.framework.imps;
import org.apache.curator.RetryLoop;
-import org.apache.curator.TimeTrace;
+import org.apache.curator.drivers.OperationTrace;
import org.apache.curator.framework.api.*;
import org.apache.curator.framework.api.transaction.CuratorTransactionBridge;
import org.apache.curator.framework.api.transaction.OperationType;
@@ -208,11 +208,12 @@ class SetDataBuilderImpl implements SetDataBuilder, BackgroundOperation<PathAndB
{
try
{
- final TimeTrace trace = client.getZookeeperClient().startTracer("SetDataBuilderImpl-Background");
+ final OperationTrace trace = client.getZookeeperClient().startAdvancedTracer("SetDataBuilderImpl-Background");
+ final byte[] data = operationAndData.getData().getData();
client.getZooKeeper().setData
(
operationAndData.getData().getPath(),
- operationAndData.getData().getData(),
+ data,
version,
new AsyncCallback.StatCallback()
{
@@ -220,7 +221,7 @@ class SetDataBuilderImpl implements SetDataBuilder, BackgroundOperation<PathAndB
@Override
public void processResult(int rc, String path, Object ctx, Stat stat)
{
- trace.commit();
+ trace.setReturnCode(rc).setRequestBytesLength(data).setPath(path).setStat(stat).commit();
CuratorEvent event = new CuratorEventImpl(client, CuratorEventType.SET_DATA, rc, path, null, ctx, stat, null, null, null, null);
client.processBackgroundOperation(operationAndData, event);
}
@@ -269,7 +270,7 @@ class SetDataBuilderImpl implements SetDataBuilder, BackgroundOperation<PathAndB
private Stat pathInForeground(final String path, final byte[] data) throws Exception
{
- TimeTrace trace = client.getZookeeperClient().startTracer("SetDataBuilderImpl-Foreground");
+ OperationTrace trace = client.getZookeeperClient().startAdvancedTracer("SetDataBuilderImpl-Foreground");
Stat resultStat = RetryLoop.callWithRetry
(
client.getZookeeperClient(),
@@ -282,7 +283,7 @@ class SetDataBuilderImpl implements SetDataBuilder, BackgroundOperation<PathAndB
}
}
);
- trace.commit();
+ trace.setRequestBytesLength(data).setPath(path).setStat(resultStat).commit();
return resultStat;
}
}
http://git-wip-us.apache.org/repos/asf/curator/blob/2f6e2177/curator-framework/src/main/java/org/apache/curator/framework/imps/SyncBuilderImpl.java
----------------------------------------------------------------------
diff --git a/curator-framework/src/main/java/org/apache/curator/framework/imps/SyncBuilderImpl.java b/curator-framework/src/main/java/org/apache/curator/framework/imps/SyncBuilderImpl.java
index 1e5f371..b108099 100755
--- a/curator-framework/src/main/java/org/apache/curator/framework/imps/SyncBuilderImpl.java
+++ b/curator-framework/src/main/java/org/apache/curator/framework/imps/SyncBuilderImpl.java
@@ -18,7 +18,7 @@
*/
package org.apache.curator.framework.imps;
-import org.apache.curator.TimeTrace;
+import org.apache.curator.drivers.OperationTrace;
import org.apache.curator.framework.api.BackgroundCallback;
import org.apache.curator.framework.api.CuratorEvent;
import org.apache.curator.framework.api.CuratorEventType;
@@ -94,7 +94,7 @@ public class SyncBuilderImpl implements SyncBuilder, BackgroundOperation<String>
{
try
{
- final TimeTrace trace = client.getZookeeperClient().startTracer("SyncBuilderImpl-Background");
+ final OperationTrace trace = client.getZookeeperClient().startAdvancedTracer("SyncBuilderImpl-Background");
final String path = operationAndData.getData();
String adjustedPath = client.fixForNamespace(path);
@@ -103,7 +103,7 @@ public class SyncBuilderImpl implements SyncBuilder, BackgroundOperation<String>
@Override
public void processResult(int rc, String path, Object ctx)
{
- trace.commit();
+ trace.setReturnCode(rc).setPath(path).commit();
CuratorEvent event = new CuratorEventImpl(client, CuratorEventType.SYNC, rc, path, path, ctx, null, null, null, null, null);
client.processBackgroundOperation(operationAndData, event);
}
http://git-wip-us.apache.org/repos/asf/curator/blob/2f6e2177/curator-framework/src/main/java/org/apache/curator/framework/imps/TempGetDataBuilderImpl.java
----------------------------------------------------------------------
diff --git a/curator-framework/src/main/java/org/apache/curator/framework/imps/TempGetDataBuilderImpl.java b/curator-framework/src/main/java/org/apache/curator/framework/imps/TempGetDataBuilderImpl.java
index 061794b..8ee527e 100644
--- a/curator-framework/src/main/java/org/apache/curator/framework/imps/TempGetDataBuilderImpl.java
+++ b/curator-framework/src/main/java/org/apache/curator/framework/imps/TempGetDataBuilderImpl.java
@@ -19,7 +19,7 @@
package org.apache.curator.framework.imps;
import org.apache.curator.RetryLoop;
-import org.apache.curator.TimeTrace;
+import org.apache.curator.drivers.OperationTrace;
import org.apache.curator.framework.api.Pathable;
import org.apache.curator.framework.api.StatPathable;
import org.apache.curator.framework.api.TempGetDataBuilder;
@@ -58,7 +58,7 @@ class TempGetDataBuilderImpl implements TempGetDataBuilder
{
final String localPath = client.fixForNamespace(path);
- TimeTrace trace = client.getZookeeperClient().startTracer("GetDataBuilderImpl-Foreground");
+ OperationTrace trace = client.getZookeeperClient().startAdvancedTracer("GetDataBuilderImpl-Foreground");
byte[] responseData = RetryLoop.callWithRetry
(
client.getZookeeperClient(),
@@ -71,7 +71,7 @@ class TempGetDataBuilderImpl implements TempGetDataBuilder
}
}
);
- trace.commit();
+ trace.setResponseBytesLength(responseData).setPath(path).setStat(responseStat).commit();
return decompress ? client.getCompressionProvider().decompress(path, responseData) : responseData;
}
http://git-wip-us.apache.org/repos/asf/curator/blob/2f6e2177/src/site/confluence/logging.confluence
----------------------------------------------------------------------
diff --git a/src/site/confluence/logging.confluence b/src/site/confluence/logging.confluence
index 002c655..9f87c52 100644
--- a/src/site/confluence/logging.confluence
+++ b/src/site/confluence/logging.confluence
@@ -9,6 +9,6 @@ Curator uses SLF4J ([[http://www.slf4j.org/]]) for logging. SLF4J is a facade ov
plug in any (or no) logging framework. See the SLF4J website for details.
h2. Tracing
-Connect Curator tracing to your tracing framework via an instance of {{TracerDriver}}.
+Connect Curator tracing to your tracing framework via an instance of {{TracerDriver}} or {{AdvancedTracerDriver}}.
Curator calls the various methods (e.g. addTrace() or addCount() ) and your instance proxies the calls to your tracing
framework. Inform Curator of your tracing driver instance by calling {{CuratorZookeeperClient.setTracerDriver()}}.
[2/4] curator git commit: Merge branch 'CURATOR-349' of
github.com:lvfangmin/curator into CURATOR-349
Posted by ca...@apache.org.
Merge branch 'CURATOR-349' of github.com:lvfangmin/curator into CURATOR-349
Project: http://git-wip-us.apache.org/repos/asf/curator/repo
Commit: http://git-wip-us.apache.org/repos/asf/curator/commit/b51bb011
Tree: http://git-wip-us.apache.org/repos/asf/curator/tree/b51bb011
Diff: http://git-wip-us.apache.org/repos/asf/curator/diff/b51bb011
Branch: refs/heads/CURATOR-3.0
Commit: b51bb01176940896cad5408a453c524fcfe0fc49
Parents: 8c1b4be 2f6e217
Author: randgalt <ra...@apache.org>
Authored: Tue Oct 25 10:14:04 2016 -0500
Committer: randgalt <ra...@apache.org>
Committed: Tue Oct 25 10:14:04 2016 -0500
----------------------------------------------------------------------
.../org/apache/curator/ConnectionState.java | 37 ++++-
.../apache/curator/CuratorZookeeperClient.java | 15 +-
.../main/java/org/apache/curator/RetryLoop.java | 7 +-
.../curator/drivers/AdvancedTracerDriver.java | 50 ++++++
.../org/apache/curator/drivers/EventTrace.java | 53 ++++++
.../apache/curator/drivers/OperationTrace.java | 162 +++++++++++++++++++
.../framework/imps/BackgroundSyncImpl.java | 11 +-
.../framework/imps/CreateBuilderImpl.java | 17 +-
.../framework/imps/CuratorFrameworkImpl.java | 4 +-
.../framework/imps/DeleteBuilderImpl.java | 10 +-
.../framework/imps/ExistsBuilderImpl.java | 14 +-
.../FindAndDeleteProtectedNodeInBackground.java | 6 +-
.../framework/imps/GetACLBuilderImpl.java | 10 +-
.../framework/imps/GetChildrenBuilderImpl.java | 10 +-
.../framework/imps/GetDataBuilderImpl.java | 10 +-
.../framework/imps/SetACLBuilderImpl.java | 10 +-
.../framework/imps/SetDataBuilderImpl.java | 13 +-
.../curator/framework/imps/SyncBuilderImpl.java | 6 +-
.../framework/imps/TempGetDataBuilderImpl.java | 6 +-
src/site/confluence/logging.confluence | 2 +-
20 files changed, 380 insertions(+), 73 deletions(-)
----------------------------------------------------------------------
[3/4] curator git commit: CURATOR-356 Allow SASL configuration for
TestingServer
Posted by ca...@apache.org.
CURATOR-356 Allow SASL configuration for TestingServer
Project: http://git-wip-us.apache.org/repos/asf/curator/repo
Commit: http://git-wip-us.apache.org/repos/asf/curator/commit/dd20f1db
Tree: http://git-wip-us.apache.org/repos/asf/curator/tree/dd20f1db
Diff: http://git-wip-us.apache.org/repos/asf/curator/diff/dd20f1db
Branch: refs/heads/CURATOR-3.0
Commit: dd20f1dbed3879372483d7e8f7eb05d920707168
Parents: b51bb01
Author: eolivelli <eo...@gmail.com>
Authored: Wed Oct 26 13:43:21 2016 +0200
Committer: eolivelli <eo...@gmail.com>
Committed: Wed Oct 26 13:43:21 2016 +0200
----------------------------------------------------------------------
.../org/apache/curator/test/InstanceSpec.java | 28 ++++++++++-
.../curator/test/QuorumConfigBuilder.java | 7 +++
.../curator/test/TestQuorumConfigBuilder.java | 49 ++++++++++++++++++++
3 files changed, 82 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/curator/blob/dd20f1db/curator-test/src/main/java/org/apache/curator/test/InstanceSpec.java
----------------------------------------------------------------------
diff --git a/curator-test/src/main/java/org/apache/curator/test/InstanceSpec.java b/curator-test/src/main/java/org/apache/curator/test/InstanceSpec.java
index b39a949..32b1738 100644
--- a/curator-test/src/main/java/org/apache/curator/test/InstanceSpec.java
+++ b/curator-test/src/main/java/org/apache/curator/test/InstanceSpec.java
@@ -25,6 +25,8 @@ import java.io.IOException;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.UnknownHostException;
+import java.util.Collections;
+import java.util.Map;
import java.util.concurrent.atomic.AtomicInteger;
/**
@@ -69,6 +71,7 @@ public class InstanceSpec
private final int serverId;
private final int tickTime;
private final int maxClientCnxns;
+ private final Map<String,Object> customProperties;
public static InstanceSpec newInstanceSpec()
{
@@ -113,7 +116,7 @@ public class InstanceSpec
*/
public InstanceSpec(File dataDirectory, int port, int electionPort, int quorumPort, boolean deleteDataDirectoryOnClose, int serverId)
{
- this(dataDirectory, port, electionPort, quorumPort, deleteDataDirectoryOnClose, serverId, -1, -1);
+ this(dataDirectory, port, electionPort, quorumPort, deleteDataDirectoryOnClose, serverId, -1, -1, null);
}
/**
@@ -126,7 +129,22 @@ public class InstanceSpec
* @param tickTime tickTime. Set -1 to used fault server configuration
* @param maxClientCnxns max number of client connections from the same IP. Set -1 to use default server configuration
*/
- public InstanceSpec(File dataDirectory, int port, int electionPort, int quorumPort, boolean deleteDataDirectoryOnClose, int serverId, int tickTime, int maxClientCnxns)
+ public InstanceSpec(File dataDirectory, int port, int electionPort, int quorumPort, boolean deleteDataDirectoryOnClose, int serverId, int tickTime, int maxClientCnxns) {
+ this(dataDirectory, port, electionPort, quorumPort, deleteDataDirectoryOnClose, serverId, tickTime, maxClientCnxns, null);
+ }
+
+ /**
+ * @param dataDirectory where to store data/logs/etc.
+ * @param port the port to listen on - each server in the ensemble must use a unique port
+ * @param electionPort the electionPort to listen on - each server in the ensemble must use a unique electionPort
+ * @param quorumPort the quorumPort to listen on - each server in the ensemble must use a unique quorumPort
+ * @param deleteDataDirectoryOnClose if true, the data directory will be deleted when {@link TestingCluster#close()} is called
+ * @param serverId the server ID for the instance
+ * @param tickTime tickTime. Set -1 to used fault server configuration
+ * @param maxClientCnxns max number of client connections from the same IP. Set -1 to use default server configuration
+ * @param customProperties other properties to be passed to the server
+ */
+ public InstanceSpec(File dataDirectory, int port, int electionPort, int quorumPort, boolean deleteDataDirectoryOnClose, int serverId, int tickTime, int maxClientCnxns, Map<String,Object> customProperties)
{
this.dataDirectory = (dataDirectory != null) ? dataDirectory : Files.createTempDir();
this.port = (port >= 0) ? port : getRandomPort();
@@ -136,6 +154,7 @@ public class InstanceSpec
this.serverId = (serverId >= 0) ? serverId : nextServerId.getAndIncrement();
this.tickTime = (tickTime > 0 ? tickTime : -1); // -1 to set default value
this.maxClientCnxns = (maxClientCnxns >= 0 ? maxClientCnxns : -1); // -1 to set default value
+ this.customProperties = customProperties != null ? Collections.<String,Object>unmodifiableMap(customProperties) : Collections.<String,Object>emptyMap();
}
public int getServerId()
@@ -183,6 +202,10 @@ public class InstanceSpec
return deleteDataDirectoryOnClose;
}
+ public Map<String, Object> getCustomProperties() {
+ return customProperties;
+ }
+
@Override
public String toString()
{
@@ -195,6 +218,7 @@ public class InstanceSpec
", serverId=" + serverId +
", tickTime=" + tickTime +
", maxClientCnxns=" + maxClientCnxns +
+ ", customProperties=" + customProperties +
"} " + super.toString();
}
http://git-wip-us.apache.org/repos/asf/curator/blob/dd20f1db/curator-test/src/main/java/org/apache/curator/test/QuorumConfigBuilder.java
----------------------------------------------------------------------
diff --git a/curator-test/src/main/java/org/apache/curator/test/QuorumConfigBuilder.java b/curator-test/src/main/java/org/apache/curator/test/QuorumConfigBuilder.java
index 8add08e..4e20163 100644
--- a/curator-test/src/main/java/org/apache/curator/test/QuorumConfigBuilder.java
+++ b/curator-test/src/main/java/org/apache/curator/test/QuorumConfigBuilder.java
@@ -25,6 +25,7 @@ import org.apache.zookeeper.server.quorum.QuorumPeerConfig;
import java.io.File;
import java.util.Collection;
import java.util.List;
+import java.util.Map;
import java.util.Properties;
@SuppressWarnings("UnusedDeclaration")
@@ -102,6 +103,12 @@ public class QuorumConfigBuilder
properties.setProperty("server." + thisSpec.getServerId(), String.format("localhost:%d:%d", thisSpec.getQuorumPort(), thisSpec.getElectionPort()));
}
}
+ Map<String,Object> customProperties = spec.getCustomProperties();
+ if (customProperties != null) {
+ for (Map.Entry<String,Object> property : customProperties.entrySet()) {
+ properties.put(property.getKey(), property.getValue());
+ }
+ }
QuorumPeerConfig config = new QuorumPeerConfig();
config.parseProperties(properties);
http://git-wip-us.apache.org/repos/asf/curator/blob/dd20f1db/curator-test/src/test/java/org/apache/curator/test/TestQuorumConfigBuilder.java
----------------------------------------------------------------------
diff --git a/curator-test/src/test/java/org/apache/curator/test/TestQuorumConfigBuilder.java b/curator-test/src/test/java/org/apache/curator/test/TestQuorumConfigBuilder.java
new file mode 100644
index 0000000..cfb89c5
--- /dev/null
+++ b/curator-test/src/test/java/org/apache/curator/test/TestQuorumConfigBuilder.java
@@ -0,0 +1,49 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+
+package org.apache.curator.test;
+
+import java.util.HashMap;
+import java.util.Map;
+import static org.testng.AssertJUnit.assertEquals;
+import org.testng.annotations.Test;
+
+/**
+ * Test QuorumConfigBuilder
+ */
+public class TestQuorumConfigBuilder {
+
+ @Test
+ public void testCustomProperties() throws Exception {
+ Map<String,Object> customProperties = new HashMap<String,Object>();
+ customProperties.put("authProvider.1", "org.apache.zookeeper.server.auth.SASLAuthenticationProvider");
+ customProperties.put("kerberos.removeHostFromPrincipal", "true");
+ customProperties.put("kerberos.removeRealmFromPrincipal", "true");
+ InstanceSpec spec = new InstanceSpec(null, -1, -1, -1, true, 1,-1, -1,customProperties);
+ TestingServer server = new TestingServer(spec, true);
+ try {
+ assertEquals("org.apache.zookeeper.server.auth.SASLAuthenticationProvider", System.getProperty("zookeeper.authProvider.1"));
+ assertEquals("true", System.getProperty("zookeeper.kerberos.removeHostFromPrincipal"));
+ assertEquals("true", System.getProperty("zookeeper.kerberos.removeRealmFromPrincipal"));
+ } finally {
+ server.close();
+ }
+ }
+}
\ No newline at end of file
[4/4] curator git commit: Merge branch 'master' into CURATOR-3.0
Posted by ca...@apache.org.
Merge branch 'master' into CURATOR-3.0
Conflicts:
curator-client/src/main/java/org/apache/curator/ConnectionState.java
curator-client/src/main/java/org/apache/curator/CuratorZookeeperClient.java
curator-client/src/main/java/org/apache/curator/RetryLoop.java
curator-framework/src/main/java/org/apache/curator/framework/imps/BackgroundSyncImpl.java
curator-framework/src/main/java/org/apache/curator/framework/imps/CreateBuilderImpl.java
curator-framework/src/main/java/org/apache/curator/framework/imps/ExistsBuilderImpl.java
curator-framework/src/main/java/org/apache/curator/framework/imps/GetACLBuilderImpl.java
curator-framework/src/main/java/org/apache/curator/framework/imps/GetChildrenBuilderImpl.java
curator-framework/src/main/java/org/apache/curator/framework/imps/GetDataBuilderImpl.java
curator-framework/src/main/java/org/apache/curator/framework/imps/SetACLBuilderImpl.java
curator-framework/src/main/java/org/apache/curator/framework/imps/SetDataBuilderImpl.java
curator-framework/src/main/java/org/apache/curator/framework/imps/SyncBuilderImpl.java
Project: http://git-wip-us.apache.org/repos/asf/curator/repo
Commit: http://git-wip-us.apache.org/repos/asf/curator/commit/d8798c21
Tree: http://git-wip-us.apache.org/repos/asf/curator/tree/d8798c21
Diff: http://git-wip-us.apache.org/repos/asf/curator/diff/d8798c21
Branch: refs/heads/CURATOR-3.0
Commit: d8798c21de10926cecd2ffc11f1ed7ce695c330a
Parents: d034aea dd20f1d
Author: Cam McKenzie <ca...@apache.org>
Authored: Thu Oct 27 09:51:02 2016 +1100
Committer: Cam McKenzie <ca...@apache.org>
Committed: Thu Oct 27 09:51:02 2016 +1100
----------------------------------------------------------------------
.../org/apache/curator/test/InstanceSpec.java | 28 ++++++++++-
.../curator/test/QuorumConfigBuilder.java | 7 +++
.../curator/test/TestQuorumConfigBuilder.java | 49 ++++++++++++++++++++
3 files changed, 82 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/curator/blob/d8798c21/curator-test/src/main/java/org/apache/curator/test/InstanceSpec.java
----------------------------------------------------------------------
diff --cc curator-test/src/main/java/org/apache/curator/test/InstanceSpec.java
index 6d495df,32b1738..0a71161
--- a/curator-test/src/main/java/org/apache/curator/test/InstanceSpec.java
+++ b/curator-test/src/main/java/org/apache/curator/test/InstanceSpec.java
@@@ -69,11 -71,8 +71,12 @@@ public class InstanceSpe
private final int serverId;
private final int tickTime;
private final int maxClientCnxns;
+ private final Map<String,Object> customProperties;
+ public static void reset() {
+ nextServerId.set(1);
+ }
+
public static InstanceSpec newInstanceSpec()
{
return new InstanceSpec(null, -1, -1, -1, true, -1, -1, -1);
http://git-wip-us.apache.org/repos/asf/curator/blob/d8798c21/curator-test/src/main/java/org/apache/curator/test/QuorumConfigBuilder.java
----------------------------------------------------------------------
diff --cc curator-test/src/main/java/org/apache/curator/test/QuorumConfigBuilder.java
index 17bb185,4e20163..5baf5ce
--- a/curator-test/src/main/java/org/apache/curator/test/QuorumConfigBuilder.java
+++ b/curator-test/src/main/java/org/apache/curator/test/QuorumConfigBuilder.java
@@@ -23,11 -22,10 +23,12 @@@ import com.google.common.base.Throwable
import com.google.common.collect.ImmutableList;
import com.google.common.io.Files;
import org.apache.zookeeper.server.quorum.QuorumPeerConfig;
+import java.io.Closeable;
import java.io.File;
+import java.io.IOException;
import java.util.Collection;
import java.util.List;
+ import java.util.Map;
import java.util.Properties;
@SuppressWarnings("UnusedDeclaration")
@@@ -123,19 -100,17 +124,25 @@@ public class QuorumConfigBuilder implem
{
for ( InstanceSpec thisSpec : instanceSpecs )
{
- properties.setProperty("server." + thisSpec.getServerId(), String.format("localhost:%d:%d", thisSpec.getQuorumPort(), thisSpec.getElectionPort()));
+ properties.setProperty("server." + thisSpec.getServerId(), String.format("localhost:%d:%d;localhost:%d", thisSpec.getQuorumPort(), thisSpec.getElectionPort(), thisSpec.getPort()));
}
}
+ Map<String,Object> customProperties = spec.getCustomProperties();
+ if (customProperties != null) {
+ for (Map.Entry<String,Object> property : customProperties.entrySet()) {
+ properties.put(property.getKey(), property.getValue());
+ }
+ }
- QuorumPeerConfig config = new QuorumPeerConfig();
+ QuorumPeerConfig config = new QuorumPeerConfig()
+ {
+ {
+ if ( fakeConfigFile != null )
+ {
+ configFileStr = fakeConfigFile.getPath();
+ }
+ }
+ };
config.parseProperties(properties);
return config;
}