blob: 3591b39db1036d4976a1ee2bbb55e243e624ff7d [file] [log] [blame]
/*
* 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.hadoop.yarn.server.timeline;
import org.apache.hadoop.metrics2.MetricsSystem;
import org.apache.hadoop.metrics2.annotation.Metric;
import org.apache.hadoop.metrics2.annotation.Metrics;
import org.apache.hadoop.metrics2.lib.DefaultMetricsSystem;
import org.apache.hadoop.metrics2.lib.MutableCounterLong;
import org.apache.hadoop.metrics2.lib.MutableRate;
/** This class tracks metrics for the TimelineDataManager. */
@Metrics(about="Metrics for TimelineDataManager", context="yarn")
public class TimelineDataManagerMetrics {
@Metric("getEntities calls")
MutableCounterLong getEntitiesOps;
@Metric("Entities returned via getEntities")
MutableCounterLong getEntitiesTotal;
@Metric("getEntities processing time")
MutableRate getEntitiesTime;
@Metric("getEntity calls")
MutableCounterLong getEntityOps;
@Metric("getEntity processing time")
MutableRate getEntityTime;
@Metric("getEvents calls")
MutableCounterLong getEventsOps;
@Metric("Events returned via getEvents")
MutableCounterLong getEventsTotal;
@Metric("getEvents processing time")
MutableRate getEventsTime;
@Metric("postEntities calls")
MutableCounterLong postEntitiesOps;
@Metric("Entities posted via postEntities")
MutableCounterLong postEntitiesTotal;
@Metric("postEntities processing time")
MutableRate postEntitiesTime;
@Metric("putDomain calls")
MutableCounterLong putDomainOps;
@Metric("putDomain processing time")
MutableRate putDomainTime;
@Metric("getDomain calls")
MutableCounterLong getDomainOps;
@Metric("getDomain processing time")
MutableRate getDomainTime;
@Metric("getDomains calls")
MutableCounterLong getDomainsOps;
@Metric("Domains returned via getDomains")
MutableCounterLong getDomainsTotal;
@Metric("getDomains processing time")
MutableRate getDomainsTime;
@Metric("Total calls")
public long totalOps() {
return getEntitiesOps.value() +
getEntityOps.value() +
getEventsOps.value() +
postEntitiesOps.value() +
putDomainOps.value() +
getDomainOps.value() +
getDomainsOps.value();
}
private static TimelineDataManagerMetrics instance = null;
TimelineDataManagerMetrics() {
}
public static synchronized TimelineDataManagerMetrics create() {
if (instance == null) {
MetricsSystem ms = DefaultMetricsSystem.instance();
instance = ms.register(new TimelineDataManagerMetrics());
}
return instance;
}
public void incrGetEntitiesOps() {
getEntitiesOps.incr();
}
public void incrGetEntitiesTotal(long delta) {
getEntitiesTotal.incr(delta);
}
public void addGetEntitiesTime(long msec) {
getEntitiesTime.add(msec);
}
public void incrGetEntityOps() {
getEntityOps.incr();
}
public void addGetEntityTime(long msec) {
getEntityTime.add(msec);
}
public void incrGetEventsOps() {
getEventsOps.incr();
}
public void incrGetEventsTotal(long delta) {
getEventsTotal.incr(delta);
}
public void addGetEventsTime(long msec) {
getEventsTime.add(msec);
}
public void incrPostEntitiesOps() {
postEntitiesOps.incr();
}
public void incrPostEntitiesTotal(long delta) {
postEntitiesTotal.incr(delta);
}
public void addPostEntitiesTime(long msec) {
postEntitiesTime.add(msec);
}
public void incrPutDomainOps() {
putDomainOps.incr();
}
public void addPutDomainTime(long msec) {
putDomainTime.add(msec);
}
public void incrGetDomainOps() {
getDomainOps.incr();
}
public void addGetDomainTime(long msec) {
getDomainTime.add(msec);
}
public void incrGetDomainsOps() {
getDomainsOps.incr();
}
public void incrGetDomainsTotal(long delta) {
getDomainsTotal.incr(delta);
}
public void addGetDomainsTime(long msec) {
getDomainsTime.add(msec);
}
}