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
|
|
)
|