aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--api/src/main/java/io/opencensus/stats/NoopStats.java22
-rw-r--r--api/src/main/java/io/opencensus/stats/View.java41
-rw-r--r--api/src/main/java/io/opencensus/stats/ViewData.java96
-rw-r--r--api/src/test/java/io/opencensus/stats/NoopViewManagerTest.java16
-rw-r--r--contrib/grpc_metrics/src/main/java/io/opencensus/contrib/grpc/metrics/RpcViewConstants.java17
-rw-r--r--contrib/zpages/src/main/java/io/opencensus/contrib/zpages/RpczZPageHandler.java19
-rw-r--r--contrib/zpages/src/main/java/io/opencensus/contrib/zpages/StatszZPageHandler.java9
-rw-r--r--contrib/zpages/src/main/java/io/opencensus/contrib/zpages/ZPageHandlers.java3
-rw-r--r--exporters/stats/prometheus/src/main/java/io/opencensus/exporter/stats/prometheus/PrometheusExportUtils.java9
-rw-r--r--exporters/stats/signalfx/src/main/java/io/opencensus/exporter/stats/signalfx/SignalFxSessionAdaptor.java7
-rw-r--r--exporters/stats/stackdriver/src/main/java/io/opencensus/exporter/stats/stackdriver/StackdriverExportUtils.java30
-rw-r--r--impl_core/src/main/java/io/opencensus/implcore/stats/MeasureToViewMap.java4
-rw-r--r--impl_core/src/main/java/io/opencensus/implcore/stats/MutableViewData.java27
13 files changed, 207 insertions, 93 deletions
diff --git a/api/src/main/java/io/opencensus/stats/NoopStats.java b/api/src/main/java/io/opencensus/stats/NoopStats.java
index 74f8f660..97d2976a 100644
--- a/api/src/main/java/io/opencensus/stats/NoopStats.java
+++ b/api/src/main/java/io/opencensus/stats/NoopStats.java
@@ -27,10 +27,6 @@ import io.opencensus.common.Functions;
import io.opencensus.common.Timestamp;
import io.opencensus.stats.Measure.MeasureDouble;
import io.opencensus.stats.Measure.MeasureLong;
-import io.opencensus.stats.View.AggregationWindow;
-import io.opencensus.stats.ViewData.AggregationWindowData;
-import io.opencensus.stats.ViewData.AggregationWindowData.CumulativeData;
-import io.opencensus.stats.ViewData.AggregationWindowData.IntervalData;
import io.opencensus.tags.TagContext;
import io.opencensus.tags.TagValue;
import java.util.Collection;
@@ -176,6 +172,7 @@ final class NoopStats {
@Override
@Nullable
+ @SuppressWarnings("deprecation")
public ViewData getView(View.Name name) {
checkNotNull(name, "name");
synchronized (registeredViews) {
@@ -188,11 +185,12 @@ final class NoopStats {
Collections.<List<TagValue>, AggregationData>emptyMap(),
view.getWindow()
.match(
- Functions.<AggregationWindowData>returnConstant(
- CumulativeData.create(ZERO_TIMESTAMP, ZERO_TIMESTAMP)),
- Functions.<AggregationWindowData>returnConstant(
- IntervalData.create(ZERO_TIMESTAMP)),
- Functions.<AggregationWindowData>throwAssertionError()));
+ Functions.<ViewData.AggregationWindowData>returnConstant(
+ ViewData.AggregationWindowData.CumulativeData.create(
+ ZERO_TIMESTAMP, ZERO_TIMESTAMP)),
+ Functions.<ViewData.AggregationWindowData>returnConstant(
+ ViewData.AggregationWindowData.IntervalData.create(ZERO_TIMESTAMP)),
+ Functions.<ViewData.AggregationWindowData>throwAssertionError()));
}
}
}
@@ -209,12 +207,14 @@ final class NoopStats {
}
// Returns the subset of the given views that should be exported
+ @SuppressWarnings("deprecation")
private static Set<View> filterExportedViews(Collection<View> allViews) {
Set<View> views = Sets.newHashSet();
for (View view : allViews) {
- if (view.getWindow() instanceof AggregationWindow.Cumulative) {
- views.add(view);
+ if (view.getWindow() instanceof View.AggregationWindow.Interval) {
+ continue;
}
+ views.add(view);
}
return Collections.unmodifiableSet(views);
}
diff --git a/api/src/main/java/io/opencensus/stats/View.java b/api/src/main/java/io/opencensus/stats/View.java
index a26c777b..32915919 100644
--- a/api/src/main/java/io/opencensus/stats/View.java
+++ b/api/src/main/java/io/opencensus/stats/View.java
@@ -40,7 +40,7 @@ import javax.annotation.concurrent.Immutable;
@AutoValue
// Suppress Checker Framework warning about missing @Nullable in generated equals method.
@AutoValue.CopyAnnotations
-@SuppressWarnings("nullness")
+@SuppressWarnings({"nullness", "deprecation"})
public abstract class View {
@VisibleForTesting static final int NAME_MAX_LENGTH = 255;
@@ -90,7 +90,9 @@ public abstract class View {
*
* @return the time {@link AggregationWindow}.
* @since 0.8
+ * @deprecated since 0.13. In the future all {@link View}s will be cumulative.
*/
+ @Deprecated
public abstract AggregationWindow getWindow();
/**
@@ -105,7 +107,9 @@ public abstract class View {
* @param window the {@link AggregationWindow} of view.
* @return a new {@link View}.
* @since 0.8
+ * @deprecated in favor of {@link #create(Name, String, Measure, Aggregation, List)}.
*/
+ @Deprecated
public static View create(
Name name,
String description,
@@ -125,6 +129,35 @@ public abstract class View {
}
/**
+ * Constructs a new {@link View}.
+ *
+ * @param name the {@link Name} of view. Must be unique.
+ * @param description the description of view.
+ * @param measure the {@link Measure} to be aggregated by this view.
+ * @param aggregation the basic {@link Aggregation} that this view will support.
+ * @param columns the {@link TagKey}s that this view will aggregate on. Columns should not contain
+ * duplicates.
+ * @return a new {@link View}.
+ * @since 0.13
+ */
+ public static View create(
+ Name name,
+ String description,
+ Measure measure,
+ Aggregation aggregation,
+ List<TagKey> columns) {
+ checkArgument(new HashSet<TagKey>(columns).size() == columns.size(), "Columns have duplicate.");
+
+ return new AutoValue_View(
+ name,
+ description,
+ measure,
+ aggregation,
+ Collections.unmodifiableList(new ArrayList<TagKey>(columns)),
+ AggregationWindow.Cumulative.create());
+ }
+
+ /**
* The name of a {@code View}.
*
* @since 0.8
@@ -169,7 +202,9 @@ public abstract class View {
* The time window for a {@code View}.
*
* @since 0.8
+ * @deprecated since 0.13. In the future all {@link View}s will be cumulative.
*/
+ @Deprecated
@Immutable
public abstract static class AggregationWindow {
@@ -189,7 +224,9 @@ public abstract class View {
* Cumulative (infinite interval) time {@code AggregationWindow}.
*
* @since 0.8
+ * @deprecated since 0.13. In the future all {@link View}s will be cumulative.
*/
+ @Deprecated
@Immutable
@AutoValue
// Suppress Checker Framework warning about missing @Nullable in generated equals method.
@@ -227,7 +264,9 @@ public abstract class View {
* Interval (finite interval) time {@code AggregationWindow}.
*
* @since 0.8
+ * @deprecated since 0.13. In the future all {@link View}s will be cumulative.
*/
+ @Deprecated
@Immutable
@AutoValue
// Suppress Checker Framework warning about missing @Nullable in generated equals method.
diff --git a/api/src/main/java/io/opencensus/stats/ViewData.java b/api/src/main/java/io/opencensus/stats/ViewData.java
index 951afb2e..3ee67ca9 100644
--- a/api/src/main/java/io/opencensus/stats/ViewData.java
+++ b/api/src/main/java/io/opencensus/stats/ViewData.java
@@ -20,6 +20,7 @@ import static com.google.common.base.Preconditions.checkArgument;
import com.google.auto.value.AutoValue;
import com.google.common.collect.Maps;
+import io.opencensus.common.Duration;
import io.opencensus.common.Function;
import io.opencensus.common.Functions;
import io.opencensus.common.Timestamp;
@@ -34,7 +35,6 @@ import io.opencensus.stats.AggregationData.SumDataDouble;
import io.opencensus.stats.AggregationData.SumDataLong;
import io.opencensus.stats.Measure.MeasureDouble;
import io.opencensus.stats.Measure.MeasureLong;
-import io.opencensus.stats.View.AggregationWindow;
import io.opencensus.tags.TagValue;
import java.util.ArrayList;
import java.util.Collections;
@@ -56,7 +56,7 @@ import org.checkerframework.checker.nullness.qual.Nullable;
@AutoValue
// Suppress Checker Framework warning about missing @Nullable in generated equals method.
@AutoValue.CopyAnnotations
-@SuppressWarnings("nullness")
+@SuppressWarnings({"nullness", "deprecation"})
public abstract class ViewData {
// Prevents this class from being subclassed anywhere else.
@@ -80,12 +80,33 @@ public abstract class ViewData {
/**
* Returns the {@link AggregationWindowData} associated with this {@link ViewData}.
*
+ * <p>{@link AggregationWindowData} is deprecated since 0.13, please avoid using this method. Use
+ * {@link #getStart()} and {@link #getEnd()} instead.
+ *
* @return the {@code AggregationWindowData}.
* @since 0.8
+ * @deprecated in favor of {@link #getStart()} and {@link #getEnd()}.
*/
+ @Deprecated
public abstract AggregationWindowData getWindowData();
/**
+ * Returns the start {@code Timestamp} for a {@link ViewData}.
+ *
+ * @return the start {@code Timestamp}.
+ * @since 0.13
+ */
+ public abstract Timestamp getStart();
+
+ /**
+ * Returns the end {@code Timestamp} for a {@link ViewData}.
+ *
+ * @return the end {@code Timestamp}.
+ * @since 0.13
+ */
+ public abstract Timestamp getEnd();
+
+ /**
* Constructs a new {@link ViewData}.
*
* @param view the {@link View} associated with this {@link ViewData}.
@@ -96,12 +117,62 @@ public abstract class ViewData {
* AggregationData} don't match, or the types of {@code Window} and {@code WindowData} don't
* match.
* @since 0.8
+ * @deprecated in favor of {@link #create(View, Map, Timestamp, Timestamp)}.
*/
+ @Deprecated
public static ViewData create(
- View view,
+ final View view,
Map<? extends List</*@Nullable*/ TagValue>, ? extends AggregationData> map,
final AggregationWindowData windowData) {
checkWindow(view.getWindow(), windowData);
+ final Map<List<TagValue>, AggregationData> deepCopy = Maps.newHashMap();
+ for (Entry<? extends List<TagValue>, ? extends AggregationData> entry : map.entrySet()) {
+ checkAggregation(view.getAggregation(), entry.getValue(), view.getMeasure());
+ deepCopy.put(
+ Collections.unmodifiableList(new ArrayList</*@Nullable*/ TagValue>(entry.getKey())),
+ entry.getValue());
+ }
+ return windowData.match(
+ new Function<ViewData.AggregationWindowData.CumulativeData, ViewData>() {
+ @Override
+ public ViewData apply(ViewData.AggregationWindowData.CumulativeData arg) {
+ return new AutoValue_ViewData(
+ view, Collections.unmodifiableMap(deepCopy), arg, arg.getStart(), arg.getEnd());
+ }
+ },
+ new Function<ViewData.AggregationWindowData.IntervalData, ViewData>() {
+ @Override
+ public ViewData apply(ViewData.AggregationWindowData.IntervalData arg) {
+ Duration duration = ((View.AggregationWindow.Interval) view.getWindow()).getDuration();
+ return new AutoValue_ViewData(
+ view,
+ Collections.unmodifiableMap(deepCopy),
+ arg,
+ arg.getEnd()
+ .addDuration(Duration.create(-duration.getSeconds(), -duration.getNanos())),
+ arg.getEnd());
+ }
+ },
+ Functions.<ViewData>throwAssertionError());
+ }
+
+ /**
+ * Constructs a new {@link ViewData}.
+ *
+ * @param view the {@link View} associated with this {@link ViewData}.
+ * @param map the mapping from {@link TagValue} list to {@link AggregationData}.
+ * @param start the start {@link Timestamp} for this {@link ViewData}.
+ * @param end the end {@link Timestamp} for this {@link ViewData}.
+ * @return a {@code ViewData}.
+ * @throws IllegalArgumentException if the types of {@code Aggregation} and {@code
+ * AggregationData} don't match.
+ * @since 0.13
+ */
+ public static ViewData create(
+ View view,
+ Map<? extends List</*@Nullable*/ TagValue>, ? extends AggregationData> map,
+ Timestamp start,
+ Timestamp end) {
Map<List<TagValue>, AggregationData> deepCopy = Maps.newHashMap();
for (Entry<? extends List<TagValue>, ? extends AggregationData> entry : map.entrySet()) {
checkAggregation(view.getAggregation(), entry.getValue(), view.getMeasure());
@@ -109,11 +180,16 @@ public abstract class ViewData {
Collections.unmodifiableList(new ArrayList</*@Nullable*/ TagValue>(entry.getKey())),
entry.getValue());
}
- return new AutoValue_ViewData(view, Collections.unmodifiableMap(deepCopy), windowData);
+ return new AutoValue_ViewData(
+ view,
+ Collections.unmodifiableMap(deepCopy),
+ AggregationWindowData.CumulativeData.create(start, end),
+ start,
+ end);
}
private static void checkWindow(
- AggregationWindow window, final AggregationWindowData windowData) {
+ View.AggregationWindow window, final AggregationWindowData windowData) {
window.match(
new Function<View.AggregationWindow.Cumulative, Void>() {
@Override
@@ -133,11 +209,11 @@ public abstract class ViewData {
return null;
}
},
- Functions.</*@Nullable*/ Void>throwIllegalArgumentException());
+ Functions.</*@Nullable*/ Void>throwAssertionError());
}
private static String createErrorMessageForWindow(
- AggregationWindow window, AggregationWindowData windowData) {
+ View.AggregationWindow window, AggregationWindowData windowData) {
return "AggregationWindow and AggregationWindowData types mismatch. "
+ "AggregationWindow: "
+ window
@@ -217,7 +293,9 @@ public abstract class ViewData {
* The {@code AggregationWindowData} for a {@link ViewData}.
*
* @since 0.8
+ * @deprecated since 0.13, please use start and end {@link Timestamp} instead.
*/
+ @Deprecated
@Immutable
public abstract static class AggregationWindowData {
@@ -237,7 +315,9 @@ public abstract class ViewData {
* Cumulative {@code AggregationWindowData}.
*
* @since 0.8
+ * @deprecated since 0.13, please use start and end {@link Timestamp} instead.
*/
+ @Deprecated
@Immutable
@AutoValue
// Suppress Checker Framework warning about missing @Nullable in generated equals method.
@@ -288,7 +368,9 @@ public abstract class ViewData {
* Interval {@code AggregationWindowData}.
*
* @since 0.8
+ * @deprecated since 0.13, please use start and end {@link Timestamp} instead.
*/
+ @Deprecated
@Immutable
@AutoValue
// Suppress Checker Framework warning about missing @Nullable in generated equals method.
diff --git a/api/src/test/java/io/opencensus/stats/NoopViewManagerTest.java b/api/src/test/java/io/opencensus/stats/NoopViewManagerTest.java
index 4aaa60dc..44c7626f 100644
--- a/api/src/test/java/io/opencensus/stats/NoopViewManagerTest.java
+++ b/api/src/test/java/io/opencensus/stats/NoopViewManagerTest.java
@@ -105,6 +105,8 @@ public final class NoopViewManagerTest {
ViewData viewData = viewManager.getView(VIEW_NAME);
assertThat(viewData.getView()).isEqualTo(view);
assertThat(viewData.getAggregationMap()).isEmpty();
+ assertThat(viewData.getStart()).isEqualTo(Timestamp.create(0, 0));
+ assertThat(viewData.getEnd()).isEqualTo(Timestamp.create(0, 0));
assertThat(viewData.getWindowData())
.isEqualTo(CumulativeData.create(Timestamp.create(0, 0), Timestamp.create(0, 0)));
}
@@ -171,23 +173,13 @@ public final class NoopViewManagerTest {
ViewManager viewManager = NoopStats.newNoopViewManager();
View view1 =
View.create(
- View.Name.create("View 1"),
- VIEW_DESCRIPTION,
- MEASURE,
- AGGREGATION,
- Arrays.asList(KEY),
- CUMULATIVE);
+ View.Name.create("View 1"), VIEW_DESCRIPTION, MEASURE, AGGREGATION, Arrays.asList(KEY));
viewManager.registerView(view1);
Set<View> exported = viewManager.getAllExportedViews();
View view2 =
View.create(
- View.Name.create("View 2"),
- VIEW_DESCRIPTION,
- MEASURE,
- AGGREGATION,
- Arrays.asList(KEY),
- CUMULATIVE);
+ View.Name.create("View 2"), VIEW_DESCRIPTION, MEASURE, AGGREGATION, Arrays.asList(KEY));
thrown.expect(UnsupportedOperationException.class);
exported.add(view2);
}
diff --git a/contrib/grpc_metrics/src/main/java/io/opencensus/contrib/grpc/metrics/RpcViewConstants.java b/contrib/grpc_metrics/src/main/java/io/opencensus/contrib/grpc/metrics/RpcViewConstants.java
index b643c3dd..093d55a9 100644
--- a/contrib/grpc_metrics/src/main/java/io/opencensus/contrib/grpc/metrics/RpcViewConstants.java
+++ b/contrib/grpc_metrics/src/main/java/io/opencensus/contrib/grpc/metrics/RpcViewConstants.java
@@ -49,9 +49,6 @@ import io.opencensus.stats.Aggregation.Distribution;
import io.opencensus.stats.Aggregation.Mean;
import io.opencensus.stats.BucketBoundaries;
import io.opencensus.stats.View;
-import io.opencensus.stats.View.AggregationWindow;
-import io.opencensus.stats.View.AggregationWindow.Cumulative;
-import io.opencensus.stats.View.AggregationWindow.Interval;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
@@ -61,6 +58,7 @@ import java.util.List;
*
* @since 0.8
*/
+@SuppressWarnings("deprecation")
public final class RpcViewConstants {
// Common histogram bucket boundaries for bytes received/sets Views.
@@ -118,9 +116,16 @@ public final class RpcViewConstants {
@VisibleForTesting static final Duration MINUTE = Duration.create(60, 0);
@VisibleForTesting static final Duration HOUR = Duration.create(60 * 60, 0);
- @VisibleForTesting static final AggregationWindow CUMULATIVE = Cumulative.create();
- @VisibleForTesting static final AggregationWindow INTERVAL_MINUTE = Interval.create(MINUTE);
- @VisibleForTesting static final AggregationWindow INTERVAL_HOUR = Interval.create(HOUR);
+
+ @VisibleForTesting
+ static final View.AggregationWindow CUMULATIVE = View.AggregationWindow.Cumulative.create();
+
+ @VisibleForTesting
+ static final View.AggregationWindow INTERVAL_MINUTE =
+ View.AggregationWindow.Interval.create(MINUTE);
+
+ @VisibleForTesting
+ static final View.AggregationWindow INTERVAL_HOUR = View.AggregationWindow.Interval.create(HOUR);
// Rpc client cumulative views.
diff --git a/contrib/zpages/src/main/java/io/opencensus/contrib/zpages/RpczZPageHandler.java b/contrib/zpages/src/main/java/io/opencensus/contrib/zpages/RpczZPageHandler.java
index 1a2ebb82..56ccb734 100644
--- a/contrib/zpages/src/main/java/io/opencensus/contrib/zpages/RpczZPageHandler.java
+++ b/contrib/zpages/src/main/java/io/opencensus/contrib/zpages/RpczZPageHandler.java
@@ -88,8 +88,6 @@ import io.opencensus.stats.AggregationData.DistributionData;
import io.opencensus.stats.AggregationData.MeanData;
import io.opencensus.stats.View;
import io.opencensus.stats.ViewData;
-import io.opencensus.stats.ViewData.AggregationWindowData;
-import io.opencensus.stats.ViewData.AggregationWindowData.CumulativeData;
import io.opencensus.stats.ViewManager;
import io.opencensus.tags.TagValue;
import java.io.BufferedWriter;
@@ -108,6 +106,7 @@ import org.checkerframework.checker.nullness.qual.Nullable;
*/
/** HTML page formatter for gRPC cumulative and interval stats. */
+@SuppressWarnings("deprecation")
final class RpczZPageHandler extends ZPageHandler {
private final ViewManager viewManager;
@@ -364,7 +363,10 @@ final class RpczZPageHandler extends ZPageHandler {
// Gets RPC stats by its view definition, and set it to stats snapshot.
private static void getStats(
- StatsSnapshot snapshot, AggregationData data, View view, AggregationWindowData windowData) {
+ StatsSnapshot snapshot,
+ AggregationData data,
+ View view,
+ ViewData.AggregationWindowData windowData) {
if (view == RPC_CLIENT_ROUNDTRIP_LATENCY_VIEW || view == RPC_SERVER_SERVER_LATENCY_VIEW) {
snapshot.avgLatencyTotal = ((DistributionData) data).getMean();
} else if (view == RPC_CLIENT_ROUNDTRIP_LATENCY_MINUTE_VIEW
@@ -387,7 +389,7 @@ final class RpczZPageHandler extends ZPageHandler {
distributionData.getCount()
* distributionData.getMean()
/ BYTES_PER_KB
- / getDurationInSecs((CumulativeData) windowData);
+ / getDurationInSecs((ViewData.AggregationWindowData.CumulativeData) windowData);
} else if (view == RPC_CLIENT_REQUEST_BYTES_MINUTE_VIEW
|| view == RPC_SERVER_REQUEST_BYTES_MINUTE_VIEW) {
MeanData meanData = (MeanData) data;
@@ -404,7 +406,7 @@ final class RpczZPageHandler extends ZPageHandler {
distributionData.getCount()
* distributionData.getMean()
/ BYTES_PER_KB
- / getDurationInSecs((CumulativeData) windowData);
+ / getDurationInSecs((ViewData.AggregationWindowData.CumulativeData) windowData);
} else if (view == RPC_CLIENT_RESPONSE_BYTES_MINUTE_VIEW
|| view == RPC_SERVER_RESPONSE_BYTES_MINUTE_VIEW) {
MeanData meanData = (MeanData) data;
@@ -426,12 +428,15 @@ final class RpczZPageHandler extends ZPageHandler {
} else if (view == RPC_CLIENT_STARTED_COUNT_CUMULATIVE_VIEW
|| view == RPC_SERVER_STARTED_COUNT_CUMULATIVE_VIEW) {
snapshot.countTotal = ((CountData) data).getCount();
- snapshot.rpcRateTotal = snapshot.countTotal / getDurationInSecs((CumulativeData) windowData);
+ snapshot.rpcRateTotal =
+ snapshot.countTotal
+ / getDurationInSecs((ViewData.AggregationWindowData.CumulativeData) windowData);
} // TODO(songya): compute and store latency percentiles.
}
// Calculates the duration of the given CumulativeData in seconds.
- private static double getDurationInSecs(CumulativeData cumulativeData) {
+ private static double getDurationInSecs(
+ ViewData.AggregationWindowData.CumulativeData cumulativeData) {
return toDoubleSeconds(cumulativeData.getEnd().subtractTimestamp(cumulativeData.getStart()));
}
diff --git a/contrib/zpages/src/main/java/io/opencensus/contrib/zpages/StatszZPageHandler.java b/contrib/zpages/src/main/java/io/opencensus/contrib/zpages/StatszZPageHandler.java
index bcf87d57..bacdc294 100644
--- a/contrib/zpages/src/main/java/io/opencensus/contrib/zpages/StatszZPageHandler.java
+++ b/contrib/zpages/src/main/java/io/opencensus/contrib/zpages/StatszZPageHandler.java
@@ -41,8 +41,6 @@ import io.opencensus.stats.AggregationData.SumDataLong;
import io.opencensus.stats.Measure;
import io.opencensus.stats.View;
import io.opencensus.stats.ViewData;
-import io.opencensus.stats.ViewData.AggregationWindowData;
-import io.opencensus.stats.ViewData.AggregationWindowData.CumulativeData;
import io.opencensus.stats.ViewManager;
import io.opencensus.tags.TagKey;
import io.opencensus.tags.TagValue;
@@ -66,6 +64,7 @@ import org.checkerframework.checker.nullness.qual.Nullable;
*/
/** HTML page formatter for all exported {@link View}s. */
+@SuppressWarnings("deprecation")
final class StatszZPageHandler extends ZPageHandler {
private static final Object monitor = new Object();
@@ -305,7 +304,7 @@ final class StatszZPageHandler extends ZPageHandler {
}
private static void emitViewInfo(
- View view, AggregationWindowData windowData, PrintWriter out, Formatter formatter) {
+ View view, ViewData.AggregationWindowData windowData, PrintWriter out, Formatter formatter) {
formatter.format("<table width=100%% %s>", TABLE_BORDER);
emitViewInfoHeader(out, formatter);
@@ -324,9 +323,9 @@ final class StatszZPageHandler extends ZPageHandler {
Functions.<String>throwAssertionError());
formatter.format("<td>%s</td>", aggregationType);
windowData.match(
- new Function<CumulativeData, Void>() {
+ new Function<ViewData.AggregationWindowData.CumulativeData, Void>() {
@Override
- public Void apply(CumulativeData arg) {
+ public Void apply(ViewData.AggregationWindowData.CumulativeData arg) {
formatter.format("<td>%s</td>", toDate(arg.getStart()));
formatter.format("<td>%s</td>", toDate(arg.getEnd()));
return null;
diff --git a/contrib/zpages/src/main/java/io/opencensus/contrib/zpages/ZPageHandlers.java b/contrib/zpages/src/main/java/io/opencensus/contrib/zpages/ZPageHandlers.java
index fa581d11..710e9a20 100644
--- a/contrib/zpages/src/main/java/io/opencensus/contrib/zpages/ZPageHandlers.java
+++ b/contrib/zpages/src/main/java/io/opencensus/contrib/zpages/ZPageHandlers.java
@@ -22,7 +22,6 @@ import com.sun.net.httpserver.HttpServer;
import io.opencensus.stats.Measure;
import io.opencensus.stats.Stats;
import io.opencensus.stats.View;
-import io.opencensus.stats.View.AggregationWindow.Cumulative;
import io.opencensus.trace.Tracing;
import java.io.IOException;
import java.net.InetSocketAddress;
@@ -128,7 +127,7 @@ public final class ZPageHandlers {
/**
* Returns a {@code ZPageHandler} for all registered {@link View}s and {@link Measure}s.
*
- * <p>Only {@link Cumulative} views are exported. {@link View}s are grouped by directories.
+ * <p>Only {@code Cumulative} views are exported. {@link View}s are grouped by directories.
*
* @return a {@code ZPageHandler} for all registered {@code View}s and {@code Measure}s.
* @since 0.12.0
diff --git a/exporters/stats/prometheus/src/main/java/io/opencensus/exporter/stats/prometheus/PrometheusExportUtils.java b/exporters/stats/prometheus/src/main/java/io/opencensus/exporter/stats/prometheus/PrometheusExportUtils.java
index 2e0dd232..4a650b97 100644
--- a/exporters/stats/prometheus/src/main/java/io/opencensus/exporter/stats/prometheus/PrometheusExportUtils.java
+++ b/exporters/stats/prometheus/src/main/java/io/opencensus/exporter/stats/prometheus/PrometheusExportUtils.java
@@ -33,8 +33,6 @@ import io.opencensus.stats.AggregationData.MeanData;
import io.opencensus.stats.AggregationData.SumDataDouble;
import io.opencensus.stats.AggregationData.SumDataLong;
import io.opencensus.stats.View;
-import io.opencensus.stats.View.AggregationWindow;
-import io.opencensus.stats.View.AggregationWindow.Cumulative;
import io.opencensus.stats.ViewData;
import io.opencensus.tags.TagKey;
import io.opencensus.tags.TagValue;
@@ -55,7 +53,7 @@ import org.checkerframework.checker.nullness.qual.Nullable;
* Util methods to convert OpenCensus Stats data models to Prometheus data models.
*
* <p>Each OpenCensus {@link View} will be converted to a Prometheus {@link MetricFamilySamples}
- * with no {@link Sample}s, and is used for registering Prometheus {@code Metric}s. Only {@link
+ * with no {@link Sample}s, and is used for registering Prometheus {@code Metric}s. Only {@code
* Cumulative} views are supported. All views are under namespace "opencensus".
*
* <p>{@link Aggregation} will be converted to a corresponding Prometheus {@link Type}. {@link Sum}
@@ -78,6 +76,7 @@ import org.checkerframework.checker.nullness.qual.Nullable;
* <p>Please note that Prometheus Metric and Label name can only have alphanumeric characters and
* underscore. All other characters will be sanitized by underscores.
*/
+@SuppressWarnings("deprecation")
final class PrometheusExportUtils {
@VisibleForTesting static final String OPENCENSUS_NAMESPACE = "opencensus";
@@ -112,8 +111,8 @@ final class PrometheusExportUtils {
}
@VisibleForTesting
- static Type getType(Aggregation aggregation, AggregationWindow window) {
- if (!(window instanceof Cumulative)) {
+ static Type getType(Aggregation aggregation, View.AggregationWindow window) {
+ if (!(window instanceof View.AggregationWindow.Cumulative)) {
return Type.UNTYPED;
}
return aggregation.match(
diff --git a/exporters/stats/signalfx/src/main/java/io/opencensus/exporter/stats/signalfx/SignalFxSessionAdaptor.java b/exporters/stats/signalfx/src/main/java/io/opencensus/exporter/stats/signalfx/SignalFxSessionAdaptor.java
index 8fc74e9c..67a6dfc6 100644
--- a/exporters/stats/signalfx/src/main/java/io/opencensus/exporter/stats/signalfx/SignalFxSessionAdaptor.java
+++ b/exporters/stats/signalfx/src/main/java/io/opencensus/exporter/stats/signalfx/SignalFxSessionAdaptor.java
@@ -33,7 +33,6 @@ import io.opencensus.stats.AggregationData.MeanData;
import io.opencensus.stats.AggregationData.SumDataDouble;
import io.opencensus.stats.AggregationData.SumDataLong;
import io.opencensus.stats.View;
-import io.opencensus.stats.View.AggregationWindow;
import io.opencensus.stats.ViewData;
import io.opencensus.tags.TagKey;
import io.opencensus.tags.TagValue;
@@ -48,6 +47,7 @@ import org.checkerframework.checker.nullness.qual.Nullable;
*/
/** Adapter for a {@code ViewData}'s contents into SignalFx datapoints. */
+@SuppressWarnings("deprecation")
final class SignalFxSessionAdaptor {
private SignalFxSessionAdaptor() {}
@@ -87,11 +87,12 @@ final class SignalFxSessionAdaptor {
@VisibleForTesting
@javax.annotation.Nullable
- static MetricType getMetricTypeForAggregation(Aggregation aggregation, AggregationWindow window) {
+ static MetricType getMetricTypeForAggregation(
+ Aggregation aggregation, View.AggregationWindow window) {
if (aggregation instanceof Aggregation.Mean) {
return MetricType.GAUGE;
} else if (aggregation instanceof Aggregation.Count || aggregation instanceof Aggregation.Sum) {
- if (window instanceof AggregationWindow.Cumulative) {
+ if (window instanceof View.AggregationWindow.Cumulative) {
return MetricType.CUMULATIVE_COUNTER;
}
// TODO(mpetazzoni): support incremental counters when AggregationWindow.Interval is ready
diff --git a/exporters/stats/stackdriver/src/main/java/io/opencensus/exporter/stats/stackdriver/StackdriverExportUtils.java b/exporters/stats/stackdriver/src/main/java/io/opencensus/exporter/stats/stackdriver/StackdriverExportUtils.java
index fbd8d250..82216b6a 100644
--- a/exporters/stats/stackdriver/src/main/java/io/opencensus/exporter/stats/stackdriver/StackdriverExportUtils.java
+++ b/exporters/stats/stackdriver/src/main/java/io/opencensus/exporter/stats/stackdriver/StackdriverExportUtils.java
@@ -47,12 +47,7 @@ import io.opencensus.stats.AggregationData.SumDataLong;
import io.opencensus.stats.BucketBoundaries;
import io.opencensus.stats.Measure;
import io.opencensus.stats.View;
-import io.opencensus.stats.View.AggregationWindow;
-import io.opencensus.stats.View.AggregationWindow.Cumulative;
import io.opencensus.stats.ViewData;
-import io.opencensus.stats.ViewData.AggregationWindowData;
-import io.opencensus.stats.ViewData.AggregationWindowData.CumulativeData;
-import io.opencensus.stats.ViewData.AggregationWindowData.IntervalData;
import io.opencensus.tags.TagKey;
import io.opencensus.tags.TagValue;
import java.lang.management.ManagementFactory;
@@ -70,6 +65,7 @@ import org.checkerframework.checker.nullness.qual.Nullable;
*/
/** Util methods to convert OpenCensus Stats data models to StackDriver monitoring data models. */
+@SuppressWarnings("deprecation")
final class StackdriverExportUtils {
// TODO(songya): do we want these constants to be customizable?
@VisibleForTesting static final String LABEL_DESCRIPTION = "OpenCensus TagKey";
@@ -101,7 +97,7 @@ final class StackdriverExportUtils {
// Construct a MetricDescriptor using a View.
@javax.annotation.Nullable
static MetricDescriptor createMetricDescriptor(View view, String projectId) {
- if (!(view.getWindow() instanceof Cumulative)) {
+ if (!(view.getWindow() instanceof View.AggregationWindow.Cumulative)) {
// TODO(songya): Only Cumulative view will be exported to Stackdriver in this version.
return null;
}
@@ -147,7 +143,7 @@ final class StackdriverExportUtils {
// Construct a MetricKind from an AggregationWindow
@VisibleForTesting
- static MetricKind createMetricKind(AggregationWindow window) {
+ static MetricKind createMetricKind(View.AggregationWindow window) {
return window.match(
Functions.returnConstant(MetricKind.CUMULATIVE), // Cumulative
// TODO(songya): We don't support exporting Interval stats to StackDriver in this version.
@@ -179,7 +175,7 @@ final class StackdriverExportUtils {
return timeSeriesList;
}
View view = viewData.getView();
- if (!(view.getWindow() instanceof Cumulative)) {
+ if (!(view.getWindow() instanceof View.AggregationWindow.Cumulative)) {
// TODO(songya): Only Cumulative view will be exported to Stackdriver in this version.
return timeSeriesList;
}
@@ -229,7 +225,9 @@ final class StackdriverExportUtils {
// Create Point from AggregationData, AggregationWindowData and Aggregation.
@VisibleForTesting
static Point createPoint(
- AggregationData aggregationData, AggregationWindowData windowData, Aggregation aggregation) {
+ AggregationData aggregationData,
+ ViewData.AggregationWindowData windowData,
+ Aggregation aggregation) {
Point.Builder builder = Point.newBuilder();
builder.setInterval(createTimeInterval(windowData));
builder.setValue(createTypedValue(aggregation, aggregationData));
@@ -238,24 +236,18 @@ final class StackdriverExportUtils {
// Convert AggregationWindowData to TimeInterval, currently only support CumulativeData.
@VisibleForTesting
- static TimeInterval createTimeInterval(AggregationWindowData windowData) {
+ static TimeInterval createTimeInterval(ViewData.AggregationWindowData windowData) {
final TimeInterval.Builder builder = TimeInterval.newBuilder();
windowData.match(
- new Function<CumulativeData, Void>() {
+ new Function<ViewData.AggregationWindowData.CumulativeData, Void>() {
@Override
- public Void apply(CumulativeData arg) {
+ public Void apply(ViewData.AggregationWindowData.CumulativeData arg) {
builder.setStartTime(convertTimestamp(arg.getStart()));
builder.setEndTime(convertTimestamp(arg.getEnd()));
return null;
}
},
- new Function<IntervalData, Void>() {
- @Override
- public Void apply(IntervalData arg) {
- // TODO(songya): we don't export IntervalData in this version.
- throw new IllegalArgumentException("IntervalData not supported");
- }
- },
+ Functions.</*@Nullable*/ Void>throwIllegalArgumentException(),
Functions.</*@Nullable*/ Void>throwIllegalArgumentException());
return builder.build();
}
diff --git a/impl_core/src/main/java/io/opencensus/implcore/stats/MeasureToViewMap.java b/impl_core/src/main/java/io/opencensus/implcore/stats/MeasureToViewMap.java
index 64173713..34341bad 100644
--- a/impl_core/src/main/java/io/opencensus/implcore/stats/MeasureToViewMap.java
+++ b/impl_core/src/main/java/io/opencensus/implcore/stats/MeasureToViewMap.java
@@ -30,7 +30,6 @@ import io.opencensus.stats.Measurement.MeasurementDouble;
import io.opencensus.stats.Measurement.MeasurementLong;
import io.opencensus.stats.StatsCollectionState;
import io.opencensus.stats.View;
-import io.opencensus.stats.View.AggregationWindow;
import io.opencensus.stats.ViewData;
import io.opencensus.tags.TagContext;
import java.util.Collection;
@@ -47,6 +46,7 @@ import org.checkerframework.checker.nullness.qual.Nullable;
*/
/** A class that stores a singleton map from {@code MeasureName}s to {@link MutableViewData}s. */
+@SuppressWarnings("deprecation")
final class MeasureToViewMap {
/*
@@ -89,7 +89,7 @@ final class MeasureToViewMap {
private static Set<View> filterExportedViews(Collection<View> allViews) {
Set<View> views = Sets.newHashSet();
for (View view : allViews) {
- if (view.getWindow() instanceof AggregationWindow.Cumulative) {
+ if (view.getWindow() instanceof View.AggregationWindow.Cumulative) {
views.add(view);
}
}
diff --git a/impl_core/src/main/java/io/opencensus/implcore/stats/MutableViewData.java b/impl_core/src/main/java/io/opencensus/implcore/stats/MutableViewData.java
index 8ecb7dca..b82136d3 100644
--- a/impl_core/src/main/java/io/opencensus/implcore/stats/MutableViewData.java
+++ b/impl_core/src/main/java/io/opencensus/implcore/stats/MutableViewData.java
@@ -46,11 +46,7 @@ import io.opencensus.stats.AggregationData.SumDataLong;
import io.opencensus.stats.Measure;
import io.opencensus.stats.StatsCollectionState;
import io.opencensus.stats.View;
-import io.opencensus.stats.View.AggregationWindow.Cumulative;
-import io.opencensus.stats.View.AggregationWindow.Interval;
import io.opencensus.stats.ViewData;
-import io.opencensus.stats.ViewData.AggregationWindowData.CumulativeData;
-import io.opencensus.stats.ViewData.AggregationWindowData.IntervalData;
import io.opencensus.tags.InternalUtils;
import io.opencensus.tags.Tag;
import io.opencensus.tags.TagContext;
@@ -69,6 +65,7 @@ import org.checkerframework.checker.nullness.qual.Nullable;
*/
/** A mutable version of {@link ViewData}, used for recording stats and start/end time. */
+@SuppressWarnings("deprecation")
abstract class MutableViewData {
private static final long MILLIS_PER_SECOND = 1000L;
@@ -230,13 +227,13 @@ abstract class MutableViewData {
return ViewData.create(
super.view,
createAggregationMap(tagValueAggregationMap, super.view.getMeasure()),
- CumulativeData.create(start, now));
+ ViewData.AggregationWindowData.CumulativeData.create(start, now));
} else {
// If Stats state is DISABLED, return an empty ViewData.
return ViewData.create(
super.view,
Collections.<List<TagValue>, AggregationData>emptyMap(),
- CumulativeData.create(ZERO_TIMESTAMP, ZERO_TIMESTAMP));
+ ViewData.AggregationWindowData.CumulativeData.create(ZERO_TIMESTAMP, ZERO_TIMESTAMP));
}
}
@@ -298,7 +295,7 @@ abstract class MutableViewData {
private IntervalMutableViewData(View view, Timestamp start) {
super(view);
- Duration totalDuration = ((Interval) view.getWindow()).getDuration();
+ Duration totalDuration = ((View.AggregationWindow.Interval) view.getWindow()).getDuration();
this.totalDuration = totalDuration;
this.bucketDuration = Duration.fromMillis(toMillis(totalDuration) / N);
@@ -321,13 +318,15 @@ abstract class MutableViewData {
refreshBucketList(now);
if (state == StatsCollectionState.ENABLED) {
return ViewData.create(
- super.view, combineBucketsAndGetAggregationMap(now), IntervalData.create(now));
+ super.view,
+ combineBucketsAndGetAggregationMap(now),
+ ViewData.AggregationWindowData.IntervalData.create(now));
} else {
// If Stats state is DISABLED, return an empty ViewData.
return ViewData.create(
super.view,
Collections.<List<TagValue>, AggregationData>emptyMap(),
- IntervalData.create(ZERO_TIMESTAMP));
+ ViewData.AggregationWindowData.IntervalData.create(ZERO_TIMESTAMP));
}
}
@@ -576,9 +575,10 @@ abstract class MutableViewData {
private static final CreateDistributionData INSTANCE = new CreateDistributionData();
}
- private static final class CreateCumulative implements Function<Cumulative, MutableViewData> {
+ private static final class CreateCumulative
+ implements Function<View.AggregationWindow.Cumulative, MutableViewData> {
@Override
- public MutableViewData apply(Cumulative arg) {
+ public MutableViewData apply(View.AggregationWindow.Cumulative arg) {
return new CumulativeMutableViewData(view, start);
}
@@ -591,9 +591,10 @@ abstract class MutableViewData {
}
}
- private static final class CreateInterval implements Function<Interval, MutableViewData> {
+ private static final class CreateInterval
+ implements Function<View.AggregationWindow.Interval, MutableViewData> {
@Override
- public MutableViewData apply(Interval arg) {
+ public MutableViewData apply(View.AggregationWindow.Interval arg) {
return new IntervalMutableViewData(view, start);
}