[ https://issues.apache.org/jira/browse/STORM-1252?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15169155#comment-15169155 ]
ASF GitHub Bot commented on STORM-1252: --------------------------------------- Github user revans2 commented on a diff in the pull request: https://github.com/apache/storm/pull/1147#discussion_r54253882 --- Diff: storm-core/src/jvm/org/apache/storm/stats/SpoutExecutorStats.java --- @@ -0,0 +1,84 @@ +/** + * 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.storm.stats; + +import java.util.HashMap; +import java.util.Map; +import org.apache.storm.metric.internal.MultiCountStatAndMetric; +import org.apache.storm.metric.internal.MultiLatencyStatAndMetric; + +@SuppressWarnings("unchecked") +public class SpoutExecutorStats extends CommonStats { + + public static final String ACKED = "acked"; + public static final String FAILED = "failed"; + public static final String COMPLETE_LATENCIES = "complete-latencies"; + + public static final String[] SPOUT_FIELDS = {ACKED, FAILED, COMPLETE_LATENCIES}; + + public SpoutExecutorStats() { + super(); + this.put(ACKED, new MultiCountStatAndMetric(NUM_STAT_BUCKETS)); + this.put(FAILED, new MultiCountStatAndMetric(NUM_STAT_BUCKETS)); + this.put(COMPLETE_LATENCIES, new MultiLatencyStatAndMetric(NUM_STAT_BUCKETS)); + } + + public MultiCountStatAndMetric getAcked() { + return (MultiCountStatAndMetric) this.get(ACKED); + } + + public MultiCountStatAndMetric getFailed() { + return (MultiCountStatAndMetric) this.get(FAILED); + } + + public MultiLatencyStatAndMetric getCompleteLatencies() { + return (MultiLatencyStatAndMetric) this.get(COMPLETE_LATENCIES); + } + + public void spoutAckedTuple(String stream, long latencyMs) { + this.getAcked().incBy(stream, this.rate); + this.getCompleteLatencies().record(stream, latencyMs); + } + + public void spoutFailedTuple(String stream, long latencyMs) { + this.getFailed().incBy(stream, this.rate); + } + + public Map renderStats() { + cleanupStats(); + Map ret = new HashMap(); + ret.putAll(valueStats(CommonStats.COMMON_FIELDS)); + ret.putAll(valueStats(SpoutExecutorStats.SPOUT_FIELDS)); + StatsUtil.putRawKV(ret, StatsUtil.TYPE, StatsUtil.KW_SPOUT); --- End diff -- Again we cannot have new java code depending on clojure. The return of this is not touched except in thriftify-zk-worker-hb, which is trying to turn it into a thrift object anyways. Lets just return the thrift ExecutorStats object we ultimately care about, and update the thriftify code to deal with it. > port backtype.storm.stats to java > --------------------------------- > > Key: STORM-1252 > URL: https://issues.apache.org/jira/browse/STORM-1252 > Project: Apache Storm > Issue Type: New Feature > Components: storm-core > Reporter: Robert Joseph Evans > Assignee: Cody > Labels: java-migration, jstorm-merger > > clojure methods for getting/setting built-in statistics. Mostly wrappers > around some java classes. -- This message was sent by Atlassian JIRA (v6.3.4#6332)