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

com.aliyun.openservices.loghub.client.config.LogHubConfig Maven / Gradle / Ivy

There is a newer version: 0.6.7
Show newest version
package com.aliyun.openservices.loghub.client.config;

import com.aliyun.openservices.log.common.auth.CredentialsProvider;
import com.aliyun.openservices.log.http.signer.SignVersion;

import java.io.Serializable;

public class LogHubConfig implements Serializable {
    private static final long serialVersionUID = -460559812263406428L;

    public enum ConsumePosition {
        BEGIN_CURSOR,
        END_CURSOR
    }

    private static final long DEFAULT_FETCH_INTERVAL_MS = 200;
    // flush the check point every 60 seconds by default
    private static final long DEFAULT_COMMIT_INTERVAL_MS = 60 * 1000L;
    private static final long DEFAULT_HEARTBEAT_INTERVAL = 5000;
    private static final int DEFAULT_TIMEOUT_SEC = 60;
    private static final int DEFAULT_BATCH_SIZE = 1000;
    public static final int DEFAULT_REQUEST_TIMEOUT = 60 * 1000;
    private String consumerGroup;
    private String consumer;
    private String endpoint;
    private String project;
    private String logstore;
    private String query;
    private String accessId;
    private String accessKey;
    private CredentialsProvider credentialsProvider;
    private LogHubCursorPosition initialPosition;
    private int startTimestamp = 0;
    private long fetchIntervalMillis = DEFAULT_FETCH_INTERVAL_MS;
    private long heartbeatIntervalMillis = DEFAULT_HEARTBEAT_INTERVAL;
    private boolean consumeInOrder = false;
    private String stsToken = null;
    private boolean directModeEnabled = false;
    private boolean autoCommitEnabled = true;
    private boolean unloadAfterCommitEnabled = false;
    private long autoCommitIntervalMs = DEFAULT_COMMIT_INTERVAL_MS;
    private int batchSize = DEFAULT_BATCH_SIZE;
    private int timeoutInSeconds = DEFAULT_TIMEOUT_SEC;
    private int maxInProgressingDataSizeInMB = 0;
    private String userAgent;
    private String proxyHost;
    private int proxyPort;
    private String proxyUsername;
    private String proxyPassword;
    private String proxyDomain;
    private String proxyWorkstation;
    private boolean requestTimeoutEnabled = false;

    private int requestTimeout = DEFAULT_REQUEST_TIMEOUT;
    private SignVersion signVersion = SignVersion.V1;
    private String region;
    private CompressType compressType;

    private LogHubConfig(String consumerGroup,
                         String consumer,
                         String endpoint,
                         String project,
                         String logstore,
                         String accessId,
                         String accessKey) {
        this.consumerGroup = consumerGroup;
        this.consumer = consumer;
        this.endpoint = endpoint;
        this.project = project;
        this.logstore = logstore;
        this.accessId = accessId;
        this.accessKey = accessKey;
    }

    public LogHubConfig(String consumerGroup, String consumer, String endpoint, String project, String logstore, CredentialsProvider credentialsProvider, ConsumePosition position) {
        this.consumerGroup = consumerGroup;
        this.consumer = consumer;
        this.endpoint = endpoint;
        this.project = project;
        this.logstore = logstore;
        this.credentialsProvider = credentialsProvider;
        this.initialPosition = convertPosition(position);
    }

    public LogHubConfig(String consumerGroup, String consumer, String endpoint, String project, String logstore, CredentialsProvider credentialsProvider, int startTimestamp) {
        this.consumerGroup = consumerGroup;
        this.consumer = consumer;
        this.endpoint = endpoint;
        this.project = project;
        this.logstore = logstore;
        this.credentialsProvider = credentialsProvider;
        this.initialPosition = LogHubCursorPosition.SPECIAL_TIMER_CURSOR;
        this.startTimestamp = startTimestamp;
    }

    public LogHubConfig(String consumerGroup,
                        String consumer,
                        String endpoint,
                        String project,
                        String logstore,
                        String accessId,
                        String accessKey,
                        ConsumePosition position) {
        this(consumerGroup, consumer, endpoint, project, logstore, accessId, accessKey);
        this.initialPosition = convertPosition(position);
    }

    public LogHubConfig(String consumerGroup,
                        String consumer,
                        String endpoint,
                        String project,
                        String logstore,
                        String accessId,
                        String accessKey,
                        ConsumePosition position,
                        String query) {
        this(consumerGroup, consumer, endpoint, project, logstore, accessId, accessKey, position);
        this.query = query;
    }

    private static LogHubCursorPosition convertPosition(ConsumePosition position) {
        switch (position) {
            case BEGIN_CURSOR:
                return LogHubCursorPosition.BEGIN_CURSOR;
            case END_CURSOR:
                return LogHubCursorPosition.END_CURSOR;
            default:
                throw new IllegalArgumentException("Invalid initial position: " + position);
        }
    }

    public LogHubConfig(String consumerGroup,
                        String consumer,
                        String endpoint,
                        String project,
                        String logstore,
                        String accessId,
                        String accessKey,
                        int startTimestamp) {
        this(consumerGroup, consumer, endpoint, project, logstore, accessId, accessKey);
        this.initialPosition = LogHubCursorPosition.SPECIAL_TIMER_CURSOR;
        this.startTimestamp = startTimestamp;
    }

    public LogHubConfig(String consumerGroup, String consumer, String endpoint,
                        String project, String logstore,
                        String accessId, String accessKey,
                        ConsumePosition position,
                        int batchSize) {
        this(consumerGroup, consumer, endpoint, project, logstore, accessId, accessKey);
        this.initialPosition = convertPosition(position);
        this.batchSize = batchSize;
    }

    public LogHubConfig(String consumerGroup, String consumer, String endpoint,
                        String project, String logstore,
                        String accessId, String accessKey,
                        int startTimestamp,
                        int batchSize) {
        this(consumerGroup, consumer, endpoint, project, logstore, accessId, accessKey);
        this.initialPosition = LogHubCursorPosition.SPECIAL_TIMER_CURSOR;
        this.startTimestamp = startTimestamp;
        this.batchSize = batchSize;
    }

    @Deprecated
    public LogHubConfig(String consumerGroup, String consumer, String endpoint,
                        String project, String logstore,
                        String accessId, String accessKey,
                        int startTime,
                        long heartBeatIntervalMillis,
                        boolean consumeInOrder) {
        this(consumerGroup, consumer, endpoint, project, logstore, accessId, accessKey);
        this.initialPosition = LogHubCursorPosition.SPECIAL_TIMER_CURSOR;
        this.startTimestamp = startTime;
        this.heartbeatIntervalMillis = heartBeatIntervalMillis;
        this.consumeInOrder = consumeInOrder;
    }

    @Deprecated
    public LogHubConfig(String consumerGroup,
                        String consumer,
                        String endpoint,
                        String project,
                        String logStore,
                        String accessId,
                        String accessKey,
                        int startTime,
                        long heartBeatIntervalMillis,
                        boolean consumeInOrder,
                        String stsToken) {
        this(consumerGroup, consumer, endpoint, project, logStore, accessId, accessKey, startTime, heartBeatIntervalMillis, consumeInOrder);
        this.stsToken = stsToken;
    }

    public String getProxyHost() {
        return proxyHost;
    }

    public void setProxyHost(String proxyHost) {
        this.proxyHost = proxyHost;
    }

    public int getProxyPort() {
        return proxyPort;
    }

    public void setProxyPort(int proxyPort) {
        this.proxyPort = proxyPort;
    }

    public String getProxyUsername() {
        return proxyUsername;
    }

    public void setProxyUsername(String proxyUsername) {
        this.proxyUsername = proxyUsername;
    }

    public String getProxyPassword() {
        return proxyPassword;
    }

    public void setProxyPassword(String proxyPassword) {
        this.proxyPassword = proxyPassword;
    }

    public String getProxyDomain() {
        return proxyDomain;
    }

    public void setProxyDomain(String proxyDomain) {
        this.proxyDomain = proxyDomain;
    }

    public String getProxyWorkstation() {
        return proxyWorkstation;
    }

    public void setProxyWorkstation(String proxyWorkstation) {
        this.proxyWorkstation = proxyWorkstation;
    }

    public String getStsToken() {
        return stsToken;
    }

    public void setStsToken(String stsToken) {
        this.stsToken = stsToken;
    }

    public long getFetchIntervalMillis() {
        return fetchIntervalMillis;
    }

    public void setFetchIntervalMillis(long fetchIntervalMillis) {
        this.fetchIntervalMillis = fetchIntervalMillis;
    }

    public boolean isConsumeInOrder() {
        return consumeInOrder;
    }

    public void setConsumeInOrder(boolean order) {
        consumeInOrder = order;
    }

    public long getHeartBeatIntervalMillis() {
        return heartbeatIntervalMillis;
    }

    public void setHeartBeatIntervalMillis(long heartBeatIntervalMillis) {
        this.heartbeatIntervalMillis = heartBeatIntervalMillis;
    }

    public String getConsumerGroup() {
        return consumerGroup;
    }

    public String getConsumer() {
        return consumer;
    }

    public String getEndpoint() {
        return endpoint;
    }

    public String getProject() {
        return project;
    }

    public String getLogStore() {
        return logstore;
    }

    public void setQuery(String query) {
        this.query = query;
    }

    public String getQuery() {
        return query;
    }

    public String getAccessId() {
        return accessId;
    }

    public String getAccessKey() {
        return accessKey;
    }

    public LogHubCursorPosition getCursorPosition() {
        return initialPosition;
    }

    public int GetCursorStartTime() {
        return startTimestamp;
    }

    public void setDirectModeEnabled(boolean directModeEnabled) {
        this.directModeEnabled = directModeEnabled;
    }

    public boolean isDirectModeEnabled() {
        return directModeEnabled;
    }

    public int getMaxFetchLogGroupSize() {
        return batchSize;
    }

    public void setMaxFetchLogGroupSize(int maxFetchLogGroupSize) {
        this.batchSize = maxFetchLogGroupSize;
    }

    public String getUserAgent() {
        return userAgent;
    }

    public void setUserAgent(String userAgent) {
        this.userAgent = userAgent;
    }

    public boolean isAutoCommitEnabled() {
        return autoCommitEnabled;
    }

    public void setAutoCommitEnabled(boolean autoCommitEnabled) {
        this.autoCommitEnabled = autoCommitEnabled;
    }

    public long getAutoCommitIntervalMs() {
        return autoCommitIntervalMs;
    }

    public void setAutoCommitIntervalMs(long autoCommitIntervalMs) {
        this.autoCommitIntervalMs = autoCommitIntervalMs;
    }

    public boolean isUnloadAfterCommitEnabled() {
        return unloadAfterCommitEnabled;
    }

    public void setUnloadAfterCommitEnabled(boolean unloadAfterCommitEnabled) {
        this.unloadAfterCommitEnabled = unloadAfterCommitEnabled;
    }

    public int getTimeoutInSeconds() {
        return timeoutInSeconds;
    }

    public void setTimeoutInSeconds(int timeoutInSeconds) {
        this.timeoutInSeconds = timeoutInSeconds;
    }

    public int getMaxInProgressingDataSizeInMB() {
        return maxInProgressingDataSizeInMB;
    }

    public void setMaxInProgressingDataSizeInMB(int maxInProgressingDataSizeInMB) {
        this.maxInProgressingDataSizeInMB = maxInProgressingDataSizeInMB;
    }

    public CredentialsProvider getCredentialsProvider() {
        return credentialsProvider;
    }

    public void setCredentialsProvider(CredentialsProvider credentialsProvider) {
        this.credentialsProvider = credentialsProvider;
    }

    public boolean hasQuery() {
        return query != null && !query.isEmpty();
    }

    public SignVersion getSignVersion() {
        return signVersion;
    }

    public void setSignVersion(SignVersion signVersion) {
        this.signVersion = signVersion;
    }

    public String getRegion() {
        return region;
    }

    public void setRegion(String region) {
        this.region = region;
    }

    public boolean isRequestTimeoutEnabled() {
        return requestTimeoutEnabled;
    }

    public void setRequestTimeoutEnabled(boolean requestTimeoutEnabled) {
        this.requestTimeoutEnabled = requestTimeoutEnabled;
    }

    public int getRequestTimeout() {
        return requestTimeout;
    }

    public void setRequestTimeout(int requestTimeout) {
        this.requestTimeout = requestTimeout;
    }

    public CompressType getCompressType() {
        return compressType;
    }

    public void setCompressType(CompressType compressType) {
        this.compressType = compressType;
    }

    @Override
    public String toString() {
        return "LogHubConfig{" +
                "consumerGroup='" + consumerGroup + '\'' +
                ", consumer='" + consumer + '\'' +
                ", endpoint='" + endpoint + '\'' +
                ", project='" + project + '\'' +
                ", logstore='" + logstore + '\'' +
                ", accessId='" + accessId + '\'' +
                ", initialPosition=" + initialPosition +
                ", startTimestamp=" + startTimestamp +
                ", fetchIntervalMillis=" + fetchIntervalMillis +
                ", heartbeatIntervalMillis=" + heartbeatIntervalMillis +
                ", consumeInOrder=" + consumeInOrder +
                ", directModeEnabled=" + directModeEnabled +
                ", autoCommitEnabled=" + autoCommitEnabled +
                ", unloadAfterCommitEnabled=" + unloadAfterCommitEnabled +
                ", autoCommitIntervalMs=" + autoCommitIntervalMs +
                ", batchSize=" + batchSize +
                ", timeoutInSeconds=" + timeoutInSeconds +
                ", maxInProgressingDataSizeInMB=" + maxInProgressingDataSizeInMB +
                ", userAgent='" + userAgent + '\'' +
                ", requestTimeoutEnabled=" + requestTimeoutEnabled +
                ", requestTimeout=" + requestTimeout +
                '}';
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy