
club.zhcs.lina.starter.monitor.MonitorConfigurationProperties Maven / Gradle / Ivy
package club.zhcs.lina.starter.monitor;
import java.util.List;
import org.nutz.lang.Lang;
import org.springframework.boot.context.properties.ConfigurationProperties;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Builder.Default;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
/**
*
* @author Kerbores([email protected])
*
*/
@Data
@ConfigurationProperties("lina.monitor")
public class MonitorConfigurationProperties {
Enableable http = Enableable.builder().build();
Enableable druid = Enableable.builder().build();
Enableable online = Enableable.builder().build();
Enableable exception = Enableable.builder().build();
Chain chain = new Chain();
int interval = 10;
Security security = Security.builder().build();
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public static class Security {
/**
* 白名单网段
*/
@Default
List ipWhitelist = Lang.list();
/**
* 允许私网地址
*/
@Default
boolean allowPrivate = false;
@Default
String[] paths = Lang.array("/shutdown", "/pause", "/restart", "/actuator", "/actuator/*");
}
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public static class Enableable {
@Default
boolean enabled = false;
}
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = false)
public static class Chain extends Enableable {
List services = Lang.list();
@Data
@NoArgsConstructor
@AllArgsConstructor
public static class Service {
/**
* 服务名称
*/
String name;
/**
* 服务域名
*/
String domain;
/**
* 自定义检查地址
*/
String customerCheckUrl;
/**
* 检查类型
*/
Type type = Type.REST;
/**
* 检查端点类型
*/
Endpoint endpoint = Endpoint.INFO;
public enum Type {
DISCOVERY, REST
}
@Getter
@AllArgsConstructor
public enum Endpoint {
INFO("/actuator/info"), PING("/_ping"), CUSTOMER("");
String url;
}
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy