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

org.kairosdb.metrics4j.MetricsContext Maven / Gradle / Ivy

package org.kairosdb.metrics4j;

import org.kairosdb.metrics4j.collectors.Collector;
import org.kairosdb.metrics4j.internal.CollectorCollection;
import org.kairosdb.metrics4j.formatters.Formatter;
import org.kairosdb.metrics4j.internal.ArgKey;
import org.kairosdb.metrics4j.internal.CollectorContext;
import org.kairosdb.metrics4j.sinks.MetricSink;
import org.kairosdb.metrics4j.triggers.Trigger;

import java.util.List;
import java.util.Map;

public interface MetricsContext
{
	//users can register for context changes where by they pass in a callback
	//for example the kairos internal sink will be looking for a connector
	//that will be registered by kairos upon startup

	//maybe a global context and a sink/trigger specific context

	void registerSinkNotification(SinkNotification notification);
	void registerTriggerNotification(TriggerNotification notification);
	void registerFormatterNotification(FormatterNotification notification);
	void registerCollectorNotification(CollectorNotification notification);

	List getCollectorsForKey(ArgKey key);

	void registerTrigger(String name, Trigger trigger);

	void addTriggerToPath(String name, List path);

	void registerFormatter(String name, Formatter formatter);

	void registerCollector(String name, Collector collector);

	void registerSink(String name, MetricSink sink);

	void addSinkToPath(String name, List path);

	CollectorContext assignCollector(ArgKey key, CollectorCollection collectors,
			Map tags, Map props, String metricName,
			String help);

	Collector getCollector(String name);

	Formatter getFormatter(String name);

	MetricSink getSink(String name);

	Trigger getTrigger(String name);
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy