org.apache.hadoop.chukwa.datacollection.adaptor
Interface Adaptor

All Known Implementing Classes:
AbstractAdaptor, CharFileTailingAdaptorUTF8, CharFileTailingAdaptorUTF8NewLineEscaped, ConstRateAdaptor, DirTailingAdaptor, ExecAdaptor, FileAdaptor, FileTailingAdaptor, LWFTAdaptor, MaxRateSender

public interface Adaptor

An adaptor is a component that runs within the Local Agent, producing chunks of monitoring data. An adaptor can, but need not, have an associated thread. If an adaptor lacks a thread, it needs to arrange some mechanism to periodically get control and send reports such as a callback somewhere. Adaptors must be able to stop and resume without losing data, using a byte offset in the stream. If an adaptor crashes at byte offset n, and is restarted at byte offset k, with k < n, it is allowed to send different values for bytes k through n the second time around. However, the stream must still be parseable, assuming that bytes 0-k come from the first run,and bytes k - n come from the second. Note that Adaptor implements neither equals() nor hashCode(). It is never safe to compare two adaptors with equals(). It is safe to use adaptors as hash table keys, though two distinct Adaptors will appear as two distinct keys. This is the desired behavior, since it means that messages intended for one Adaptor will never be received by another, even across Adaptor restarts.


Method Summary
 String getCurrentStatus()
          Return the adaptor's state Should not include class name or byte offset, which are written by caller.
 String getType()
           
 void hardStop()
          Deprecated. 
 String parseArgs(String params)
          Parse args, return stream name.
 long shutdown()
          Deprecated. 
 long shutdown(AdaptorShutdownPolicy shutdownPolicy)
          Signals this adaptor to come to an orderly stop.
 void start(String adaptorID, String type, long offset, ChunkReceiver dest, AdaptorManager c)
          Start this adaptor
 

Method Detail

start

void start(String adaptorID,
           String type,
           long offset,
           ChunkReceiver dest,
           AdaptorManager c)
           throws AdaptorException
Start this adaptor

Parameters:
type - the application type, who is starting this adaptor
status - the status string to use for configuration.
offset - the stream offset of the first byte sent by this adaptor
Throws:
AdaptorException

getCurrentStatus

String getCurrentStatus()
Return the adaptor's state Should not include class name or byte offset, which are written by caller. The datatype should, however, be written by this method.

Returns:
the adaptor state as a string

getType

String getType()

parseArgs

String parseArgs(String params)
Parse args, return stream name. Do not start running. Return the stream name, given params. The stream name is the part of the Adaptor status that's used to determine uniqueness.

Returns:
Stream name as a string, null if params are malformed

shutdown

@Deprecated
long shutdown()
              throws AdaptorException
Deprecated. 

Signals this adaptor to come to an orderly stop. The adaptor ought to push out all the data it can before exiting. This method is synchronous up to 60 seconds

Returns:
the logical offset at which the adaptor stops
Throws:
AdaptorException

shutdown

long shutdown(AdaptorShutdownPolicy shutdownPolicy)
              throws AdaptorException
Signals this adaptor to come to an orderly stop. The adaptor ought to push out all the data it can before exiting depending of the shutdown policy

Returns:
the logical offset at which the adaptor was when the method return
Throws:
AdaptorException

hardStop

@Deprecated
void hardStop()
              throws AdaptorException
Deprecated. 

Signals this adaptor to come to an abrupt stop, as quickly as it can. The use case here is "Whups, I didn't mean to start that adaptor tailing a gigabyte file, stop it now". Adaptors might need to do something nontrivial here, e.g., in the case in which they have registered periodic timer interrupts, or use a shared worker thread from which they need to disengage. This method is synchronous: In other words, after shutdown() returns, no new data should be written.

Throws:
AdaptorException


Copyright © ${year} The Apache Software Foundation