539 lines
12 KiB
Go
539 lines
12 KiB
Go
|
package config
|
||
|
|
||
|
// Key for CheckBundleConfig options and CheckDetails info
|
||
|
type Key string
|
||
|
|
||
|
// Constants per type as defined in
|
||
|
// https://login.circonus.com/resources/api/calls/check_bundle
|
||
|
const (
|
||
|
//
|
||
|
// default settings for api.NewCheckBundle()
|
||
|
//
|
||
|
DefaultCheckBundleMetricLimit = -1 // unlimited
|
||
|
DefaultCheckBundleStatus = "active"
|
||
|
DefaultCheckBundlePeriod = 60
|
||
|
DefaultCheckBundleTimeout = 10
|
||
|
DefaultConfigOptionsSize = 20
|
||
|
|
||
|
//
|
||
|
// common (apply to more than one check type)
|
||
|
//
|
||
|
AsyncMetrics = Key("asynch_metrics")
|
||
|
AuthMethod = Key("auth_method")
|
||
|
AuthPassword = Key("auth_password")
|
||
|
AuthUser = Key("auth_user")
|
||
|
BaseURL = Key("base_url")
|
||
|
CAChain = Key("ca_chain")
|
||
|
CertFile = Key("certificate_file")
|
||
|
Ciphers = Key("ciphers")
|
||
|
Command = Key("command")
|
||
|
DSN = Key("dsn")
|
||
|
HeaderPrefix = Key("header_")
|
||
|
HTTPVersion = Key("http_version")
|
||
|
KeyFile = Key("key_file")
|
||
|
Method = Key("method")
|
||
|
Password = Key("password")
|
||
|
Payload = Key("payload")
|
||
|
Port = Key("port")
|
||
|
Query = Key("query")
|
||
|
ReadLimit = Key("read_limit")
|
||
|
Secret = Key("secret")
|
||
|
SQL = Key("sql")
|
||
|
URI = Key("uri")
|
||
|
URL = Key("url")
|
||
|
Username = Key("username")
|
||
|
UseSSL = Key("use_ssl")
|
||
|
User = Key("user")
|
||
|
SASLAuthentication = Key("sasl_authentication")
|
||
|
SASLUser = Key("sasl_user")
|
||
|
SecurityLevel = Key("security_level")
|
||
|
Version = Key("version")
|
||
|
AppendColumnName = Key("append_column_name")
|
||
|
Database = Key("database")
|
||
|
JDBCPrefix = Key("jdbc_")
|
||
|
|
||
|
//
|
||
|
// CAQL check
|
||
|
//
|
||
|
// Common items:
|
||
|
// Query
|
||
|
|
||
|
//
|
||
|
// Circonus Windows Agent
|
||
|
//
|
||
|
// Common items:
|
||
|
// AuthPassword
|
||
|
// AuthUser
|
||
|
// Port
|
||
|
// URL
|
||
|
Calculated = Key("calculated")
|
||
|
Category = Key("category")
|
||
|
|
||
|
//
|
||
|
// Cloudwatch
|
||
|
//
|
||
|
// Notes:
|
||
|
// DimPrefix is special because the actual key is dynamic and matches: `dim_(.+)`
|
||
|
// Common items:
|
||
|
// URL
|
||
|
// Version
|
||
|
APIKey = Key("api_key")
|
||
|
APISecret = Key("api_secret")
|
||
|
CloudwatchMetrics = Key("cloudwatch_metrics")
|
||
|
DimPrefix = Key("dim_")
|
||
|
Granularity = Key("granularity")
|
||
|
Namespace = Key("namespace")
|
||
|
Statistics = Key("statistics")
|
||
|
|
||
|
//
|
||
|
// Collectd
|
||
|
//
|
||
|
// Common items:
|
||
|
// AsyncMetrics
|
||
|
// Username
|
||
|
// Secret
|
||
|
// SecurityLevel
|
||
|
|
||
|
//
|
||
|
// Composite
|
||
|
//
|
||
|
CompositeMetricName = Key("composite_metric_name")
|
||
|
Formula = Key("formula")
|
||
|
|
||
|
//
|
||
|
// DHCP
|
||
|
//
|
||
|
HardwareAddress = Key("hardware_addr")
|
||
|
HostIP = Key("host_ip")
|
||
|
RequestType = Key("request_type")
|
||
|
SendPort = Key("send_port")
|
||
|
|
||
|
//
|
||
|
// DNS
|
||
|
//
|
||
|
// Common items:
|
||
|
// Query
|
||
|
CType = Key("ctype")
|
||
|
Nameserver = Key("nameserver")
|
||
|
RType = Key("rtype")
|
||
|
|
||
|
//
|
||
|
// EC Console
|
||
|
//
|
||
|
// Common items:
|
||
|
// Command
|
||
|
// Port
|
||
|
// SASLAuthentication
|
||
|
// SASLUser
|
||
|
Objects = Key("objects")
|
||
|
XPath = Key("xpath")
|
||
|
|
||
|
//
|
||
|
// Elastic Search
|
||
|
//
|
||
|
// Common items:
|
||
|
// Port
|
||
|
// URL
|
||
|
|
||
|
//
|
||
|
// Ganglia
|
||
|
//
|
||
|
// Common items:
|
||
|
// AsyncMetrics
|
||
|
|
||
|
//
|
||
|
// Google Analytics
|
||
|
//
|
||
|
// Common items:
|
||
|
// Password
|
||
|
// Username
|
||
|
OAuthToken = Key("oauth_token")
|
||
|
OAuthTokenSecret = Key("oauth_token_secret")
|
||
|
OAuthVersion = Key("oauth_version")
|
||
|
TableID = Key("table_id")
|
||
|
UseOAuth = Key("use_oauth")
|
||
|
|
||
|
//
|
||
|
// HA Proxy
|
||
|
//
|
||
|
// Common items:
|
||
|
// AuthPassword
|
||
|
// AuthUser
|
||
|
// Port
|
||
|
// UseSSL
|
||
|
Host = Key("host")
|
||
|
Select = Key("select")
|
||
|
|
||
|
//
|
||
|
// HTTP
|
||
|
//
|
||
|
// Notes:
|
||
|
// HeaderPrefix is special because the actual key is dynamic and matches: `header_(\S+)`
|
||
|
// Common items:
|
||
|
// AuthMethod
|
||
|
// AuthPassword
|
||
|
// AuthUser
|
||
|
// CAChain
|
||
|
// CertFile
|
||
|
// Ciphers
|
||
|
// KeyFile
|
||
|
// URL
|
||
|
// HeaderPrefix
|
||
|
// HTTPVersion
|
||
|
// Method
|
||
|
// Payload
|
||
|
// ReadLimit
|
||
|
Body = Key("body")
|
||
|
Code = Key("code")
|
||
|
Extract = Key("extract")
|
||
|
Redirects = Key("redirects")
|
||
|
|
||
|
//
|
||
|
// HTTPTRAP
|
||
|
//
|
||
|
// Common items:
|
||
|
// AsyncMetrics
|
||
|
// Secret
|
||
|
|
||
|
//
|
||
|
// IMAP
|
||
|
//
|
||
|
// Common items:
|
||
|
// AuthPassword
|
||
|
// AuthUser
|
||
|
// CAChain
|
||
|
// CertFile
|
||
|
// Ciphers
|
||
|
// KeyFile
|
||
|
// Port
|
||
|
// UseSSL
|
||
|
Fetch = Key("fetch")
|
||
|
Folder = Key("folder")
|
||
|
HeaderHost = Key("header_Host")
|
||
|
Search = Key("search")
|
||
|
|
||
|
//
|
||
|
// JMX
|
||
|
//
|
||
|
// Common items:
|
||
|
// Password
|
||
|
// Port
|
||
|
// URI
|
||
|
// Username
|
||
|
MbeanDomains = Key("mbean_domains")
|
||
|
|
||
|
//
|
||
|
// JSON
|
||
|
//
|
||
|
// Common items:
|
||
|
// AuthMethod
|
||
|
// AuthPassword
|
||
|
// AuthUser
|
||
|
// CAChain
|
||
|
// CertFile
|
||
|
// Ciphers
|
||
|
// HeaderPrefix
|
||
|
// HTTPVersion
|
||
|
// KeyFile
|
||
|
// Method
|
||
|
// Payload
|
||
|
// Port
|
||
|
// ReadLimit
|
||
|
// URL
|
||
|
|
||
|
//
|
||
|
// Keynote
|
||
|
//
|
||
|
// Notes:
|
||
|
// SlotAliasPrefix is special because the actual key is dynamic and matches: `slot_alias_(\d+)`
|
||
|
// Common items:
|
||
|
// APIKey
|
||
|
// BaseURL
|
||
|
PageComponent = Key("pagecomponent")
|
||
|
SlotAliasPrefix = Key("slot_alias_")
|
||
|
SlotIDList = Key("slot_id_list")
|
||
|
TransPageList = Key("transpagelist")
|
||
|
|
||
|
//
|
||
|
// Keynote Pulse
|
||
|
//
|
||
|
// Common items:
|
||
|
// BaseURL
|
||
|
// Password
|
||
|
// User
|
||
|
AgreementID = Key("agreement_id")
|
||
|
|
||
|
//
|
||
|
// LDAP
|
||
|
//
|
||
|
// Common items:
|
||
|
// Password
|
||
|
// Port
|
||
|
AuthType = Key("authtype")
|
||
|
DN = Key("dn")
|
||
|
SecurityPrincipal = Key("security_principal")
|
||
|
|
||
|
//
|
||
|
// Memcached
|
||
|
//
|
||
|
// Common items:
|
||
|
// Port
|
||
|
|
||
|
//
|
||
|
// MongoDB
|
||
|
//
|
||
|
// Common items:
|
||
|
// Command
|
||
|
// Password
|
||
|
// Port
|
||
|
// Username
|
||
|
DBName = Key("dbname")
|
||
|
|
||
|
//
|
||
|
// Munin
|
||
|
//
|
||
|
// Note: no configuration options
|
||
|
|
||
|
//
|
||
|
// MySQL
|
||
|
//
|
||
|
// Common items:
|
||
|
// DSN
|
||
|
// SQL
|
||
|
|
||
|
//
|
||
|
// Newrelic rpm
|
||
|
//
|
||
|
// Common items:
|
||
|
// APIKey
|
||
|
AccountID = Key("acct_id")
|
||
|
ApplicationID = Key("application_id")
|
||
|
LicenseKey = Key("license_key")
|
||
|
|
||
|
//
|
||
|
// Nginx
|
||
|
//
|
||
|
// Common items:
|
||
|
// CAChain
|
||
|
// CertFile
|
||
|
// Ciphers
|
||
|
// KeyFile
|
||
|
// URL
|
||
|
|
||
|
//
|
||
|
// NRPE
|
||
|
//
|
||
|
// Common items:
|
||
|
// Command
|
||
|
// Port
|
||
|
// UseSSL
|
||
|
AppendUnits = Key("append_uom")
|
||
|
|
||
|
//
|
||
|
// NTP
|
||
|
//
|
||
|
// Common items:
|
||
|
// Port
|
||
|
Control = Key("control")
|
||
|
|
||
|
//
|
||
|
// Oracle
|
||
|
//
|
||
|
// Notes:
|
||
|
// JDBCPrefix is special because the actual key is dynamic and matches: `jdbc_(\S+)`
|
||
|
// Common items:
|
||
|
// AppendColumnName
|
||
|
// Database
|
||
|
// JDBCPrefix
|
||
|
// Password
|
||
|
// Port
|
||
|
// SQL
|
||
|
// User
|
||
|
|
||
|
//
|
||
|
// Ping ICMP
|
||
|
//
|
||
|
AvailNeeded = Key("avail_needed")
|
||
|
Count = Key("count")
|
||
|
Interval = Key("interval")
|
||
|
|
||
|
//
|
||
|
// PostgreSQL
|
||
|
//
|
||
|
// Common items:
|
||
|
// DSN
|
||
|
// SQL
|
||
|
|
||
|
//
|
||
|
// Redis
|
||
|
//
|
||
|
// Common items:
|
||
|
// Command
|
||
|
// Password
|
||
|
// Port
|
||
|
DBIndex = Key("dbindex")
|
||
|
|
||
|
//
|
||
|
// Resmon
|
||
|
//
|
||
|
// Notes:
|
||
|
// HeaderPrefix is special because the actual key is dynamic and matches: `header_(\S+)`
|
||
|
// Common items:
|
||
|
// AuthMethod
|
||
|
// AuthPassword
|
||
|
// AuthUser
|
||
|
// CAChain
|
||
|
// CertFile
|
||
|
// Ciphers
|
||
|
// HeaderPrefix
|
||
|
// HTTPVersion
|
||
|
// KeyFile
|
||
|
// Method
|
||
|
// Payload
|
||
|
// Port
|
||
|
// ReadLimit
|
||
|
// URL
|
||
|
|
||
|
//
|
||
|
// SMTP
|
||
|
//
|
||
|
// Common items:
|
||
|
// Payload
|
||
|
// Port
|
||
|
// SASLAuthentication
|
||
|
// SASLUser
|
||
|
EHLO = Key("ehlo")
|
||
|
From = Key("from")
|
||
|
SASLAuthID = Key("sasl_auth_id")
|
||
|
SASLPassword = Key("sasl_password")
|
||
|
StartTLS = Key("starttls")
|
||
|
To = Key("to")
|
||
|
|
||
|
//
|
||
|
// SNMP
|
||
|
//
|
||
|
// Notes:
|
||
|
// OIDPrefix is special because the actual key is dynamic and matches: `oid_(.+)`
|
||
|
// TypePrefix is special because the actual key is dynamic and matches: `type_(.+)`
|
||
|
// Common items:
|
||
|
// Port
|
||
|
// SecurityLevel
|
||
|
// Version
|
||
|
AuthPassphrase = Key("auth_passphrase")
|
||
|
AuthProtocol = Key("auth_protocol")
|
||
|
Community = Key("community")
|
||
|
ContextEngine = Key("context_engine")
|
||
|
ContextName = Key("context_name")
|
||
|
OIDPrefix = Key("oid_")
|
||
|
PrivacyPassphrase = Key("privacy_passphrase")
|
||
|
PrivacyProtocol = Key("privacy_protocol")
|
||
|
SecurityEngine = Key("security_engine")
|
||
|
SecurityName = Key("security_name")
|
||
|
SeparateQueries = Key("separate_queries")
|
||
|
TypePrefix = Key("type_")
|
||
|
|
||
|
//
|
||
|
// SQLServer
|
||
|
//
|
||
|
// Notes:
|
||
|
// JDBCPrefix is special because the actual key is dynamic and matches: `jdbc_(\S+)`
|
||
|
// Common items:
|
||
|
// AppendColumnName
|
||
|
// Database
|
||
|
// JDBCPrefix
|
||
|
// Password
|
||
|
// Port
|
||
|
// SQL
|
||
|
// User
|
||
|
|
||
|
//
|
||
|
// SSH v2
|
||
|
//
|
||
|
// Common items:
|
||
|
// Port
|
||
|
MethodCompCS = Key("method_comp_cs")
|
||
|
MethodCompSC = Key("method_comp_sc")
|
||
|
MethodCryptCS = Key("method_crypt_cs")
|
||
|
MethodCryptSC = Key("method_crypt_sc")
|
||
|
MethodHostKey = Key("method_hostkey")
|
||
|
MethodKeyExchange = Key("method_kex")
|
||
|
MethodMacCS = Key("method_mac_cs")
|
||
|
MethodMacSC = Key("method_mac_sc")
|
||
|
|
||
|
//
|
||
|
// StatsD
|
||
|
//
|
||
|
// Note: no configuration options
|
||
|
|
||
|
//
|
||
|
// TCP
|
||
|
//
|
||
|
// Common items:
|
||
|
// CAChain
|
||
|
// CertFile
|
||
|
// Ciphers
|
||
|
// KeyFile
|
||
|
// Port
|
||
|
// UseSSL
|
||
|
BannerMatch = Key("banner_match")
|
||
|
|
||
|
//
|
||
|
// Varnish
|
||
|
//
|
||
|
// Note: no configuration options
|
||
|
|
||
|
//
|
||
|
// reserved - config option(s) can't actually be set - here for r/o access
|
||
|
//
|
||
|
ReverseSecretKey = Key("reverse:secret_key")
|
||
|
SubmissionURL = Key("submission_url")
|
||
|
|
||
|
//
|
||
|
// Endpoint prefix & cid regex
|
||
|
//
|
||
|
DefaultCIDRegex = "[0-9]+"
|
||
|
DefaultUUIDRegex = "[[:xdigit:]]{8}-[[:xdigit:]]{4}-[[:xdigit:]]{4}-[[:xdigit:]]{4}-[[:xdigit:]]{12}"
|
||
|
AccountPrefix = "/account"
|
||
|
AccountCIDRegex = "^(" + AccountPrefix + "/(" + DefaultCIDRegex + "|current))$"
|
||
|
AcknowledgementPrefix = "/acknowledgement"
|
||
|
AcknowledgementCIDRegex = "^(" + AcknowledgementPrefix + "/(" + DefaultCIDRegex + "))$"
|
||
|
AlertPrefix = "/alert"
|
||
|
AlertCIDRegex = "^(" + AlertPrefix + "/(" + DefaultCIDRegex + "))$"
|
||
|
AnnotationPrefix = "/annotation"
|
||
|
AnnotationCIDRegex = "^(" + AnnotationPrefix + "/(" + DefaultCIDRegex + "))$"
|
||
|
BrokerPrefix = "/broker"
|
||
|
BrokerCIDRegex = "^(" + BrokerPrefix + "/(" + DefaultCIDRegex + "))$"
|
||
|
CheckBundleMetricsPrefix = "/check_bundle_metrics"
|
||
|
CheckBundleMetricsCIDRegex = "^(" + CheckBundleMetricsPrefix + "/(" + DefaultCIDRegex + "))$"
|
||
|
CheckBundlePrefix = "/check_bundle"
|
||
|
CheckBundleCIDRegex = "^(" + CheckBundlePrefix + "/(" + DefaultCIDRegex + "))$"
|
||
|
CheckPrefix = "/check"
|
||
|
CheckCIDRegex = "^(" + CheckPrefix + "/(" + DefaultCIDRegex + "))$"
|
||
|
ContactGroupPrefix = "/contact_group"
|
||
|
ContactGroupCIDRegex = "^(" + ContactGroupPrefix + "/(" + DefaultCIDRegex + "))$"
|
||
|
DashboardPrefix = "/dashboard"
|
||
|
DashboardCIDRegex = "^(" + DashboardPrefix + "/(" + DefaultCIDRegex + "))$"
|
||
|
GraphPrefix = "/graph"
|
||
|
GraphCIDRegex = "^(" + GraphPrefix + "/(" + DefaultUUIDRegex + "))$"
|
||
|
MaintenancePrefix = "/maintenance"
|
||
|
MaintenanceCIDRegex = "^(" + MaintenancePrefix + "/(" + DefaultCIDRegex + "))$"
|
||
|
MetricClusterPrefix = "/metric_cluster"
|
||
|
MetricClusterCIDRegex = "^(" + MetricClusterPrefix + "/(" + DefaultCIDRegex + "))$"
|
||
|
MetricPrefix = "/metric"
|
||
|
MetricCIDRegex = "^(" + MetricPrefix + "/((" + DefaultCIDRegex + ")_([^[:space:]]+)))$"
|
||
|
OutlierReportPrefix = "/outlier_report"
|
||
|
OutlierReportCIDRegex = "^(" + OutlierReportPrefix + "/(" + DefaultCIDRegex + "))$"
|
||
|
ProvisionBrokerPrefix = "/provision_broker"
|
||
|
ProvisionBrokerCIDRegex = "^(" + ProvisionBrokerPrefix + "/([a-z0-9]+-[a-z0-9]+))$"
|
||
|
RuleSetGroupPrefix = "/rule_set_group"
|
||
|
RuleSetGroupCIDRegex = "^(" + RuleSetGroupPrefix + "/(" + DefaultCIDRegex + "))$"
|
||
|
RuleSetPrefix = "/rule_set"
|
||
|
RuleSetCIDRegex = "^(" + RuleSetPrefix + "/((" + DefaultCIDRegex + ")_([^[:space:]]+)))$"
|
||
|
UserPrefix = "/user"
|
||
|
UserCIDRegex = "^(" + UserPrefix + "/(" + DefaultCIDRegex + "|current))$"
|
||
|
WorksheetPrefix = "/worksheet"
|
||
|
WorksheetCIDRegex = "^(" + WorksheetPrefix + "/(" + DefaultUUIDRegex + "))$"
|
||
|
// contact group serverity levels
|
||
|
NumSeverityLevels = 5
|
||
|
)
|