All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.flink.runtime.state.gemini.engine.metrics.StateMetrics Maven / Gradle / Ivy

There is a newer version: 1.5.1
Show newest version
/*
 * 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.flink.runtime.state.gemini.engine.metrics;

import org.apache.flink.metrics.MetricGroup;

/**
 * GeminiMetrics for state.
 */
public class StateMetrics extends MetricsBase {

	static final String METRIC_GEMINI_KV_GET = "gemini_kv_get";
	static final String METRIC_GEMINI_KV_PUT = "gemini_kv_put";
	static final String METRIC_GEMINI_KV_REMOVE = "gemini_kv_remove";
	static final String METRIC_GEMINI_KV_MULTIGET = "gemini_kv_multiget";
	static final String METRIC_GEMINI_KV_MULTIPUT = "gemini_kv_multiput";
	static final String METRIC_GEMINI_KV_MULTIREMOVE = "gemini_kv_multiremove";

	static final String METRIC_GEMINI_KMAP_GET = "gemini_kmap_get";
	static final String METRIC_GEMINI_KMAP_GET_MK = "gemini_kmap_get_mk";
	static final String METRIC_GEMINI_KMAP_PUT = "gemini_kmap_put";
	static final String METRIC_GEMINI_KMAP_REMOVE = "gemini_kmap_remove";
	static final String METRIC_GEMINI_KMAP_MULTIGET = "gemini_kmap_multiget";
	static final String METRIC_GEMINI_KMAP_MULTIPUT = "gemini_kmap_multiput";
	static final String METRIC_GEMINI_KMAP_MULTIREMOVE = "gemini_kmap_multiremove";
	static final String METRIC_GEMINI_KMAP_ITERATOR = "gemini_kmap_iterator";
	static final String METRIC_GEMINI_KMAP_GET_MAP_SIZE = "gemini_kmap_get_map_size";

	static final String METRIC_GEMINI_KLIST_GET = "gemini_klist_get";
	static final String METRIC_GEMINI_KLIST_PUT = "gemini_klist_put";
	static final String METRIC_GEMINI_KLIST_REMOVE = "gemini_klist_remove";
	static final String METRIC_GEMINI_KLIST_MULTIGET = "gemini_klist_multiget";
	static final String METRIC_GEMINI_KLIST_MULTIPUT = "gemini_klist_multiput";
	static final String METRIC_GEMINI_KLIST_MULTIREMOVE = "gemini_klist_multiremove";
	static final String METRIC_GEMINI_KLIST_GET_LIST_SIZE = "gemini_klist_get_list_size";


	private int kvGetCounter = 0;
	private int kvPutCounter = 0;
	private int kvRemoveCounter = 0;
	private int kvMultiGetCounter = 0;
	private int kvMultiPutCounter = 0;
	private int kvMultiRemoveCounter = 0;

	private int kMapGetCounter = 0;
	private int kMapGetMkCounter = 0;
	private int kMapPutCounter = 0;
	private int kMapRemoveCounter = 0;
	private int kMapMultiGetCounter = 0;
	private int kMapMultiPutCounter = 0;
	private int kMapMultiRemoveCounter = 0;
	private int kMapIteratorCounter = 0;

	private int kListGetCounter = 0;
	private int kListPutCounter = 0;
	private int kListRemoveCounter = 0;
	private int kListMultiGetCounter = 0;
	private int kListMultiPutCounter = 0;
	private int kListMultiRemoveCounter = 0;

	public StateMetrics(MetricGroup metricGroup, int sampleCountInterval) {
		this(metricGroup, sampleCountInterval, DEFAULT_HISTOGRAM_WINDOW_SIZE);
	}

	public StateMetrics(MetricGroup metricGroup, int sampleCountInterval, int histogramWindowSize) {
		super(metricGroup, sampleCountInterval, histogramWindowSize);
	}

	private int updateMetricsSampledCounter(int i) {
		return (metricsSampleEnabled && (i + 1 < sampleCountInterval) ? i + 1 : 0);
	}

	public void updateKVGetHistogram(long count) {
		getHistogramMetric(METRIC_GEMINI_KV_GET).update(count);
	}

	public void updateKVPutHistogram(long count) {
		getHistogramMetric(METRIC_GEMINI_KV_PUT).update(count);
	}

	public void updateKVRemoveHistogram(long count) {
		getHistogramMetric(METRIC_GEMINI_KV_REMOVE).update(count);
	}

	public void updateKVMultiGetHistogram(long count) {
		getHistogramMetric(METRIC_GEMINI_KV_MULTIGET).update(count);
	}

	public void updateKVMultiPutHistogram(long count) {
		getHistogramMetric(METRIC_GEMINI_KV_MULTIPUT).update(count);
	}

	public void updateKVMultiRemoveHistogram(long count) {
		getHistogramMetric(METRIC_GEMINI_KV_MULTIREMOVE).update(count);
	}

	public void updateKMapGetHistogram(long count) {
		getHistogramMetric(METRIC_GEMINI_KMAP_GET).update(count);
	}

	public void updateKMapGetMkHistogram(long count) {
		getHistogramMetric(METRIC_GEMINI_KMAP_GET_MK).update(count);
	}

	public void updateKMapPutHistogram(long count) {
		getHistogramMetric(METRIC_GEMINI_KMAP_PUT).update(count);
	}

	public void updateKMapRemoveHistogram(long count) {
		getHistogramMetric(METRIC_GEMINI_KMAP_REMOVE).update(count);
	}

	public void updateKMapMultiGetHistogram(long count) {
		getHistogramMetric(METRIC_GEMINI_KMAP_MULTIGET).update(count);
	}

	public void updateKMapMultiPutHistogram(long count) {
		getHistogramMetric(METRIC_GEMINI_KMAP_MULTIPUT).update(count);
	}

	public void updateKMapMultiRemoveHistogram(long count) {
		getHistogramMetric(METRIC_GEMINI_KMAP_MULTIREMOVE).update(count);
	}

	public void updateKMapIteratorHistogram(long count) {
		getHistogramMetric(METRIC_GEMINI_KMAP_ITERATOR).update(count);
	}

	public void updateKMapGetMapSizeHistogram(long count) {
		getHistogramMetric(METRIC_GEMINI_KMAP_GET_MAP_SIZE).update(count);
	}

	public void updateKListGetHistogram(long count) {
		getHistogramMetric(METRIC_GEMINI_KLIST_GET).update(count);
	}

	public void updateKListPutHistogram(long count) {
		getHistogramMetric(METRIC_GEMINI_KLIST_PUT).update(count);
	}

	public void updateKListRemoveHistogram(long count) {
		getHistogramMetric(METRIC_GEMINI_KLIST_REMOVE).update(count);
	}

	public void updateKListMultiGetHistogram(long count) {
		getHistogramMetric(METRIC_GEMINI_KLIST_MULTIGET).update(count);
	}

	public void updateKListMultiPutHistogram(long count) {
		getHistogramMetric(METRIC_GEMINI_KLIST_MULTIPUT).update(count);
	}

	public void updateKListMultiRemoveHistogram(long count) {
		getHistogramMetric(METRIC_GEMINI_KLIST_MULTIREMOVE).update(count);
	}

	public void updateKListGetListSizeHistogram(long count) {
		getHistogramMetric(METRIC_GEMINI_KLIST_GET_LIST_SIZE).update(count);
	}

	public boolean checkAndUpdateKvGetCounter() {
		boolean result = kvGetCounter == 0;
		kvGetCounter = updateMetricsSampledCounter(kvGetCounter);
		return result;
	}

	public boolean checkAndUpdateKvPutCounter() {
		boolean result = kvPutCounter == 0;
		kvPutCounter = updateMetricsSampledCounter(kvPutCounter);
		return result;
	}

	public boolean checkAndUpdateKvRemoveCounter() {
		boolean result = kvRemoveCounter == 0;
		kvRemoveCounter = updateMetricsSampledCounter(kvRemoveCounter);
		return result;
	}

	public boolean checkAndUpdateKvMultiGetCounter() {
		boolean result = kvMultiGetCounter == 0;
		kvMultiGetCounter = updateMetricsSampledCounter(kvMultiGetCounter);
		return result;
	}

	public boolean checkAndUpdateKvMultiPutCounter() {
		boolean result = kvMultiPutCounter == 0;
		kvMultiPutCounter = updateMetricsSampledCounter(kvMultiPutCounter);
		return result;
	}

	public boolean checkAndUpdateKvMultiRemoveCounter() {
		boolean result = kvMultiRemoveCounter == 0;
		kvMultiRemoveCounter = updateMetricsSampledCounter(kvMultiRemoveCounter);
		return result;
	}

	public boolean checkAndUpdateKMapGetCounter() {
		boolean result = kMapGetCounter == 0;
		kMapGetCounter = updateMetricsSampledCounter(kMapGetCounter);
		return result;
	}

	public boolean checkAndUpdateKMapGetMkCounter() {
		boolean result = kMapGetMkCounter == 0;
		kMapGetMkCounter = updateMetricsSampledCounter(kMapGetMkCounter);
		return result;
	}

	public boolean checkAndUpdateKMapPutCounter() {
		boolean result = kMapPutCounter == 0;
		kMapPutCounter = updateMetricsSampledCounter(kMapPutCounter);
		return result;
	}

	public boolean checkAndUpdateKMapRemoveCounter() {
		boolean result = kMapRemoveCounter == 0;
		kMapRemoveCounter = updateMetricsSampledCounter(kMapRemoveCounter);
		return result;
	}

	public boolean checkAndUpdateKMapMultiGetCounter() {
		boolean result = kMapMultiGetCounter == 0;
		kMapMultiGetCounter = updateMetricsSampledCounter(kMapMultiGetCounter);
		return result;
	}

	public boolean checkAndUpdateKMapMultiPutCounter() {
		boolean result = kMapMultiPutCounter == 0;
		kMapMultiPutCounter = updateMetricsSampledCounter(kMapMultiPutCounter);
		return result;
	}

	public boolean checkAndUpdateKMapMultiRemoveCounter() {
		boolean result = kMapMultiRemoveCounter == 0;
		kMapMultiRemoveCounter = updateMetricsSampledCounter(kMapMultiRemoveCounter);
		return result;
	}

	public boolean checkAndUpdateKMapIteratorCounter() {
		boolean result = kMapIteratorCounter == 0;
		kMapIteratorCounter = updateMetricsSampledCounter(kMapIteratorCounter);
		return result;
	}
	
	public boolean checkAndUpdateKListGetCounter() {
		boolean result = kListGetCounter == 0;
		kListGetCounter = updateMetricsSampledCounter(kListGetCounter);
		return result;
	}

	public boolean checkAndUpdateKListPutCounter() {
		boolean result = kListPutCounter == 0;
		kListPutCounter = updateMetricsSampledCounter(kListPutCounter);
		return result;
	}

	public boolean checkAndUpdateKListRemoveCounter() {
		boolean result = kListRemoveCounter == 0;
		kListRemoveCounter = updateMetricsSampledCounter(kListRemoveCounter);
		return result;
	}

	public boolean checkAndUpdateKListMultiGetCounter() {
		boolean result = kListMultiGetCounter == 0;
		kListMultiGetCounter = updateMetricsSampledCounter(kListMultiGetCounter);
		return result;
	}

	public boolean checkAndUpdateKListMultiPutCounter() {
		boolean result = kListMultiPutCounter == 0;
		kListMultiPutCounter = updateMetricsSampledCounter(kListMultiPutCounter);
		return result;
	}

	public boolean checkAndUpdateKListMultiRemoveCounter() {
		boolean result = kListMultiRemoveCounter == 0;
		kListMultiRemoveCounter = updateMetricsSampledCounter(kListMultiRemoveCounter);
		return result;
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy