Skip to content

Instantly share code, notes, and snippets.

View mykidong's full-sized avatar

Kidong Lee mykidong

View GitHub Profile
public class SomeServiceHandler extends SomeServiceGrpc.SomeServiceImplBase {
private static final String METRICS_PREFIX = "meter-api." + SomeServiceHandler.class.getSimpleName();
/**
* metric registry.
*/
private MetricRegistry metricRegistry;
// metricRegistry injected.
public void setMetricRegistry(MetricRegistry metricRegistry) {
this.metricRegistry = metricRegistry;
}
import com.codahale.metrics.MetricFilter;
import com.codahale.metrics.MetricRegistry;
import com.codahale.metrics.graphite.Graphite;
import com.codahale.metrics.graphite.GraphiteReporter;
import org.springframework.beans.factory.InitializingBean;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.util.concurrent.TimeUnit;
import com.codahale.metrics.JmxReporter;
import com.codahale.metrics.MetricRegistry;
import org.springframework.beans.factory.InitializingBean;
public class JMXMetricsReporter implements InitializingBean {
private MetricRegistry metricRegistry;
// metricRegistry injected.
public void setMetricRegistry(MetricRegistry metricRegistry) {
this.metricRegistry = metricRegistry;
import com.codahale.metrics.ConsoleReporter;
import com.codahale.metrics.MetricRegistry;
import org.springframework.beans.factory.InitializingBean;
import java.util.concurrent.TimeUnit;
public class SystemOutReporter implements InitializingBean {
private MetricRegistry metricRegistry;
// metricRegistry injected.
import com.codahale.metrics.MetricRegistry;
import org.springframework.beans.factory.FactoryBean;
import org.springframework.beans.factory.InitializingBean;
public class MetricRegistryFactory implements InitializingBean, FactoryBean<MetricRegistry> {
private MetricRegistry metricRegistry;
@Override
public void afterPropertiesSet() throws Exception {
<bean id="metricRegistryFactory"
class="io.shunters.mykidong.component.metrics.MetricRegistryFactory" />
<bean id="jMXMetricsReporter"
class="io.shunters.mykidong.component.metrics.JMXMetricsReporter"
p:metricRegistry-ref="metricRegistryFactory" />
<bean id="graphiteMetricsReporter"
class="io.shunters.mykidong.component.metrics.GraphiteMetricsReporter"
p:metricRegistry-ref="metricRegistryFactory"
<bean id="someServiceHandler"
class="io.shunters.mykidong.component.SomeServiceHandler"
p:metricRegistry-ref="metricRegistryFactory" />
EventHandler<EventLog> validationHandler = ...
Disruptor<EventLog> validationDisruptor = DisruptorCreator.singleton(DisruptorCreator.DISRUPTOR_NAME_VALIDATION, EventLog.FACTORY, 1024, validationHandler);
import com.lmax.disruptor.BlockingWaitStrategy;
import com.lmax.disruptor.EventFactory;
import com.lmax.disruptor.EventHandler;
import com.lmax.disruptor.dsl.Disruptor;
import com.lmax.disruptor.dsl.ProducerType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
// init. disruptor event log translator.
BaseTranslator.EventLogTranslator eventLogValidationTranslator = new BaseTranslator.EventLogTranslator();
// handle http or tcp request.
Buffer body = ...
// get body from the request.
String json = new String(body.getBytes());
// set the values to event translator.