com.facebook.presto.atop.AtopConnectorConfig Maven / Gradle / Ivy
/*
* Licensed 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.facebook.presto.atop;
import com.facebook.airlift.configuration.Config;
import com.facebook.airlift.configuration.ConfigDescription;
import io.airlift.units.Duration;
import io.airlift.units.MinDuration;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.time.ZoneId;
import static java.util.concurrent.TimeUnit.MINUTES;
public class AtopConnectorConfig
{
public static final String SECURITY_NONE = "none";
public static final String SECURITY_FILE = "file";
private String executablePath = "atop";
private String timeZone = ZoneId.systemDefault().getId();
private String security = SECURITY_NONE;
private Duration readTimeout = new Duration(5, MINUTES);
private int concurrentReadersPerNode = 1;
private int maxHistoryDays = 30;
@NotNull
public String getSecurity()
{
return security;
}
@Config("atop.security")
public AtopConnectorConfig setSecurity(String security)
{
this.security = security;
return this;
}
@NotNull
public String getExecutablePath()
{
return executablePath;
}
@Config("atop.executable-path")
public AtopConnectorConfig setExecutablePath(String path)
{
this.executablePath = path;
return this;
}
public ZoneId getTimeZoneId()
{
return ZoneId.of(timeZone);
}
@NotNull
public String getTimeZone()
{
return timeZone;
}
@Config("atop.time-zone")
@ConfigDescription("The timezone in which the atop data was collected. Generally the timezone of the host.")
public AtopConnectorConfig setTimeZone(String id)
{
this.timeZone = id;
return this;
}
@MinDuration("1ms")
public Duration getReadTimeout()
{
return readTimeout;
}
@Config("atop.executable-read-timeout")
@ConfigDescription("The timeout when reading from the atop process.")
public AtopConnectorConfig setReadTimeout(Duration timeout)
{
this.readTimeout = timeout;
return this;
}
@Min(1)
public int getConcurrentReadersPerNode()
{
return concurrentReadersPerNode;
}
@Config("atop.concurrent-readers-per-node")
public AtopConnectorConfig setConcurrentReadersPerNode(int readers)
{
this.concurrentReadersPerNode = readers;
return this;
}
@Min(1)
public int getMaxHistoryDays()
{
return maxHistoryDays;
}
@Config("atop.max-history-days")
public AtopConnectorConfig setMaxHistoryDays(int maxHistoryDays)
{
this.maxHistoryDays = maxHistoryDays;
return this;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy