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

com.ning.metrics.eventtracker.EventTrackerConfig Maven / Gradle / Ivy

There is a newer version: 4.1.2
Show newest version
/*
 * Copyright 2010-2011 Ning, Inc.
 *
 * Ning 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 com.ning.metrics.eventtracker;

import org.skife.config.Config;
import org.skife.config.Default;

public interface EventTrackerConfig
{
    /**
     * Configure the type of the eventtracker. Valid values are:
     * 
    *
  • SCRIBE: Thrift (RPC) protocol (Thrift payload) *
  • COLLECTOR: HTTP protocol (Thrift or Json/Smile payload) *
  • DUMMY: no-op *
* * @return the type of eventtracker to use */ @Config("eventtracker.type") @Default("COLLECTOR") CollectorControllerModule.Type getType(); //------------------- Spooling -------------------// /** * Local buffering directory * * @return the directory path */ @Config("eventtracker.diskspool.path") @Default(".diskspool") String getSpoolDirectoryName(); /** * If false, events will not be periodically sent * * @return whether to send events buffered locally */ @Config("eventtracker.diskspool.enabled") @Default("true") boolean isFlushEnabled(); /** * Delay between flushes (in seconds) * * @return delay between flushes to the remote server */ @Config("eventtracker.diskspool.flush-interval-seconds") @Default("60") int getFlushIntervalInSeconds(); /** * Type of outputter to use when spooling: NONE, FLUSH, or SYNC * * @return the String representation of the SyncType */ @Config("eventtracker.diskspool.synctype") @Default("NONE") String getSyncType(); /** * Batch size to use for the outputter. * A flush or sync is triggered after this amount of events have been written. * * @return the batch size for writes */ @Config("eventtracker.diskspool.batch-size") @Default("50") int getSyncBatchSize(); /** * Maximum number of events in the file being written (_tmp directory). *

* Maximum number of events per file in the temporary spooling area. Past this threshold, * buffered events are promoted to the final spool queue (where they are picked up by the final sender). * * @return the maximum number of events per file * @see com.ning.metrics.serialization.writer.ThresholdEventWriter */ @Config("eventtracker.diskspool.max-uncommitted-write-count") @Default("10000") long getMaxUncommittedWriteCount(); /** * Maximum age of events in the file being written (_tmp directory). *

* Maximum number of seconds before events are promoted from the temporary spooling area to the final spool queue. * * @return maxixmum age of events in seconds in the temporary spool queue * @see com.ning.metrics.serialization.writer.ThresholdEventWriter */ @Config("eventtracker.diskspool.max-uncommitted-period-seconds") @Default("60") int getMaxUncommittedPeriodInSeconds(); //------------------- HTTP Sender -------------------// /** * Collector host * * @return the hostname or IP of the collector host to use */ @Config("eventtracker.collector.host") @Default("127.0.0.1") String getCollectorHost(); /** * Collector port * * @return the collector port to use */ @Config("eventtracker.collector.port") @Default("8080") int getCollectorPort(); /** * Type of payload, valid only for HTTP protocol * * @return type of serialization to use (THRIFT, SMILE, JSON) */ @Config("eventtracker.event-type") @Default("SMILE") EventType getEventType(); /** * Max busy wait time for Http requests to finish when shutting down the eventtracker * * @return number of milliseconds to wait on shutdown, 8 seconds by default */ @Config("eventtracker.collector.max-wait-time-millis") @Default("8000") long getHttpMaxWaitTimeInMillis(); //------------------- Scribe Sender -------------------// /** * Scribe host * * @return the hostname or IP of the Scribe host to use */ @Config("eventtracker.scribe.host") @Default("127.0.0.1") String getScribeHost(); /** * Scribe port * * @return the Scribe port to use */ @Config("eventtracker.scribe.port") @Default("1463") int getScribePort(); /** * Number of messages to send to Scribe before refreshing the connection * This is for load balancing purposes. * * @return the threshold before reconnecting to Scribe */ @Config("eventtracker.scribe.refresh_rate") @Default("1000000") int getScribeRefreshRate(); /** * Number of minutes allowed for the connection to be idle before re-opening it * We don't want to keep it open forever. For instance, SLB VIP may trigger a RST if idle more than a few minutes. * * @return the number of minutes before reconnecting to Scribe */ @Config("eventtracker.scribe.max-idle-minutes") @Default("4") int getScribeMaxIdleTimeInMinutes(); }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy