Package org.apache.iotdb.metrics
Class AbstractMetricManager
- java.lang.Object
-
- org.apache.iotdb.metrics.AbstractMetricManager
-
- Direct Known Subclasses:
DoNothingMetricManager
public abstract class AbstractMetricManager extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description protected static MetricConfigMETRIC_CONFIGprotected java.util.Map<MetricInfo,IMetric>metricsThe map from metricInfo to metricprotected java.util.Map<java.lang.String,MetricInfo.MetaInfo>nameToMetaInfoThe map from metric name to metric metaInfo
-
Constructor Summary
Constructors Constructor Description AbstractMetricManager()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description Countercount(long delta, java.lang.String name, MetricLevel metricLevel, java.lang.String... tags)Update counter.<T> AutoGaugecreateAutoGauge(java.lang.String name, MetricLevel metricLevel, T obj, java.util.function.ToLongFunction<T> mapper, java.lang.String... tags)Create autoGaugeprotected abstract <T> AutoGaugecreateAutoGauge(MetricInfo metricInfo, T obj, java.util.function.ToLongFunction<T> mapper)Create autoGauge according to metric frameworkprotected abstract CountercreateCounter(MetricInfo metricInfo)protected abstract GaugecreateGauge(MetricInfo metricInfo)Create gauge according to metric frameworkprotected abstract HistogramcreateHistogram(MetricInfo metricInfo)Create histogram according to metric frameworkprotected abstract RatecreateRate(MetricInfo metricInfo)Create rate according to metric frameworkprotected abstract TimercreateTimer(MetricInfo metricInfo)Create timer according to metric frameworkbooleanequals(java.lang.Object o)Gaugegauge(long value, java.lang.String name, MetricLevel metricLevel, java.lang.String... tags)Set value of gauge.java.util.List<org.apache.iotdb.tsfile.utils.Pair<java.lang.String,java.lang.String[]>>getAllMetricKeys()Get all metric keys.java.util.Map<MetricInfo,IMetric>getAllMetrics()Get all metrics.<T> AutoGaugegetAutoGauge(java.lang.String name, MetricLevel metricLevel, java.lang.String... tags)Get autoGaugejava.util.Map<MetricInfo,IMetric>getMetricsByType(MetricType metricType)Get metrics by typeCountergetOrCreateCounter(java.lang.String name, MetricLevel metricLevel, java.lang.String... tags)Get counter.GaugegetOrCreateGauge(java.lang.String name, MetricLevel metricLevel, java.lang.String... tags)Get counter.HistogramgetOrCreateHistogram(java.lang.String name, MetricLevel metricLevel, java.lang.String... tags)Get histogram.RategetOrCreateRate(java.lang.String name, MetricLevel metricLevel, java.lang.String... tags)Get rate.TimergetOrCreateTimer(java.lang.String name, MetricLevel metricLevel, java.lang.String... tags)Get timer.inthashCode()Histogramhistogram(long value, java.lang.String name, MetricLevel metricLevel, java.lang.String... tags)Update histogram.booleanisEnableMetricInGivenLevel(MetricLevel metricLevel)Is metric service enabled in specific levelRaterate(long value, java.lang.String name, MetricLevel metricLevel, java.lang.String... tags)Mark rate.voidremove(MetricType type, java.lang.String name, java.lang.String... tags)remove nameprotected abstract voidremoveMetric(MetricType type, MetricInfo metricInfo)protected booleanstop()Stop and clear metric managerprotected abstract booleanstopFramework()Timertimer(long delta, java.util.concurrent.TimeUnit timeUnit, java.lang.String name, MetricLevel metricLevel, java.lang.String... tags)Update timer.
-
-
-
Field Detail
-
METRIC_CONFIG
protected static final MetricConfig METRIC_CONFIG
-
nameToMetaInfo
protected java.util.Map<java.lang.String,MetricInfo.MetaInfo> nameToMetaInfo
The map from metric name to metric metaInfo
-
metrics
protected java.util.Map<MetricInfo,IMetric> metrics
The map from metricInfo to metric
-
-
Method Detail
-
getOrCreateCounter
public Counter getOrCreateCounter(java.lang.String name, MetricLevel metricLevel, java.lang.String... tags)
Get counter. return if exists, create if not.- Parameters:
name- the name of namemetricLevel- the level of nametags- string pairs, like sg="ln" will be "sg", "ln"
-
createCounter
protected abstract Counter createCounter(MetricInfo metricInfo)
-
createAutoGauge
public <T> AutoGauge createAutoGauge(java.lang.String name, MetricLevel metricLevel, T obj, java.util.function.ToLongFunction<T> mapper, java.lang.String... tags)
Create autoGaugeAutoGauge keep a weak reference of the obj, so it will not prevent gc of the obj. Notice: if you call this gauge's value() when the obj has already been cleared by gc, then you will get 0L.
- Parameters:
name- the name of namemetricLevel- the level of nameobj- which will be monitored automaticallymapper- use which to map the obj to a long value
-
getAutoGauge
public <T> AutoGauge getAutoGauge(java.lang.String name, MetricLevel metricLevel, java.lang.String... tags)
Get autoGauge- Parameters:
name- the name of namemetricLevel- the level of name
-
createAutoGauge
protected abstract <T> AutoGauge createAutoGauge(MetricInfo metricInfo, T obj, java.util.function.ToLongFunction<T> mapper)
Create autoGauge according to metric framework- Parameters:
metricInfo- the metricInfo of autoGaugeobj- which will be monitored automaticallymapper- use which to map the obj to a long value
-
getOrCreateGauge
public Gauge getOrCreateGauge(java.lang.String name, MetricLevel metricLevel, java.lang.String... tags)
Get counter. return if exists, create if not.- Parameters:
name- the name of namemetricLevel- the level of nametags- string pairs, like sg="ln" will be "sg", "ln"
-
createGauge
protected abstract Gauge createGauge(MetricInfo metricInfo)
Create gauge according to metric framework- Parameters:
metricInfo- the metricInfo of gauge
-
getOrCreateRate
public Rate getOrCreateRate(java.lang.String name, MetricLevel metricLevel, java.lang.String... tags)
Get rate. return if exists, create if not.- Parameters:
name- the name of namemetricLevel- the level of nametags- string pairs, like sg="ln" will be "sg", "ln"
-
createRate
protected abstract Rate createRate(MetricInfo metricInfo)
Create rate according to metric framework- Parameters:
metricInfo- the metricInfo of rate
-
getOrCreateHistogram
public Histogram getOrCreateHistogram(java.lang.String name, MetricLevel metricLevel, java.lang.String... tags)
Get histogram. return if exists, create if not.- Parameters:
name- the name of namemetricLevel- the level of nametags- string pairs, like sg="ln" will be "sg", "ln"
-
createHistogram
protected abstract Histogram createHistogram(MetricInfo metricInfo)
Create histogram according to metric framework- Parameters:
metricInfo- the metricInfo of metric
-
getOrCreateTimer
public Timer getOrCreateTimer(java.lang.String name, MetricLevel metricLevel, java.lang.String... tags)
Get timer. return if exists, create if not.- Parameters:
name- the name of namemetricLevel- the level of nametags- string pairs, like sg="ln" will be "sg", "ln"
-
createTimer
protected abstract Timer createTimer(MetricInfo metricInfo)
Create timer according to metric framework- Parameters:
metricInfo- the metricInfo of metric
-
count
public Counter count(long delta, java.lang.String name, MetricLevel metricLevel, java.lang.String... tags)
Update counter. if exists, then update counter by delta. if not, then create and update.- Parameters:
delta- the value to updatename- the name of namemetricLevel- the level of nametags- string pairs, like sg="ln" will be "sg", "ln"
-
gauge
public Gauge gauge(long value, java.lang.String name, MetricLevel metricLevel, java.lang.String... tags)
Set value of gauge. if exists, then set gauge by value. if not, then create and set.- Parameters:
value- the value of gaugename- the name of namemetricLevel- the level of nametags- string pairs, like sg="ln" will be "sg", "ln"
-
rate
public Rate rate(long value, java.lang.String name, MetricLevel metricLevel, java.lang.String... tags)
Mark rate. if exists, then mark rate by value. if not, then create and mark.- Parameters:
value- the value to markname- the name of namemetricLevel- the level of nametags- string pairs, like sg="ln" will be "sg", "ln"
-
histogram
public Histogram histogram(long value, java.lang.String name, MetricLevel metricLevel, java.lang.String... tags)
Update histogram. if exists, then update histogram by value. if not, then create and update- Parameters:
value- the value to updatename- the name of namemetricLevel- the level of nametags- string pairs, like sg="ln" will be "sg", "ln"
-
timer
public Timer timer(long delta, java.util.concurrent.TimeUnit timeUnit, java.lang.String name, MetricLevel metricLevel, java.lang.String... tags)
Update timer. if exists, then update timer by delta and timeUnit. if not, then create and update- Parameters:
delta- the value to updatetimeUnit- the unit of deltaname- the name of namemetricLevel- the level of nametags- string pairs, like sg="ln" will be "sg", "ln"
-
getAllMetricKeys
public java.util.List<org.apache.iotdb.tsfile.utils.Pair<java.lang.String,java.lang.String[]>> getAllMetricKeys()
Get all metric keys.- Returns:
- [[name, [tags...]], ..., [name, [tags...]]]
-
getAllMetrics
public java.util.Map<MetricInfo,IMetric> getAllMetrics()
Get all metrics.- Returns:
- [name, [tags...]] -> metric
-
getMetricsByType
public java.util.Map<MetricInfo,IMetric> getMetricsByType(MetricType metricType)
Get metrics by type- Returns:
- [name, [tags...]] -> metric
-
remove
public void remove(MetricType type, java.lang.String name, java.lang.String... tags)
remove name- Parameters:
type- the type of namename- the name of nametags- string pairs, like sg="ln" will be "sg", "ln"
-
removeMetric
protected abstract void removeMetric(MetricType type, MetricInfo metricInfo)
-
isEnableMetricInGivenLevel
public boolean isEnableMetricInGivenLevel(MetricLevel metricLevel)
Is metric service enabled in specific level
-
stop
protected boolean stop()
Stop and clear metric manager
-
stopFramework
protected abstract boolean stopFramework()
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equalsin classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
-