| 1 | package jmx |
| 2 | |
| 3 | import ( |
| 4 | "time" |
| 5 | |
| 6 | "github.com/netdata/netdata/go/plugins/pkg/confopt" |
| 7 | "github.com/netdata/netdata/go/plugins/plugin/ibm.d/framework" |
| 8 | ) |
| 9 | |
| 10 | const ( |
| 11 | defaultUpdateEvery = 5 * time.Second |
| 12 | defaultScrapeTimeout = 5 * time.Second |
| 13 | defaultInitTimeout = 30 * time.Second |
| 14 | defaultShutdownDelay = 100 * time.Millisecond |
| 15 | ) |
| 16 | |
| 17 | // Config captures user options for the WebSphere JMX framework module. |
| 18 | type Config struct { |
| 19 | framework.Config `yaml:",inline" json:",inline"` |
| 20 | |
| 21 | Vnode string `yaml:"vnode,omitempty" json:"vnode" ui:"group:Connection"` |
| 22 | |
| 23 | // Connection settings |
| 24 | JMXURL string `yaml:"jmx_url" json:"jmx_url" ui:"group:Connection"` |
| 25 | JMXUsername string `yaml:"jmx_username,omitempty" json:"jmx_username" ui:"group:Connection"` |
| 26 | JMXPassword string `yaml:"jmx_password,omitempty" json:"jmx_password" ui:"group:Connection"` |
| 27 | JMXClasspath string `yaml:"jmx_classpath,omitempty" json:"jmx_classpath" ui:"group:Connection"` |
| 28 | JavaExecPath string `yaml:"java_exec_path,omitempty" json:"java_exec_path" ui:"group:Connection"` |
| 29 | |
| 30 | JMXTimeout confopt.Duration `yaml:"jmx_timeout,omitempty" json:"jmx_timeout" ui:"group:Advanced"` |
| 31 | InitTimeout confopt.Duration `yaml:"init_timeout,omitempty" json:"init_timeout" ui:"group:Advanced"` |
| 32 | ShutdownDelay confopt.Duration `yaml:"shutdown_delay,omitempty" json:"shutdown_delay" ui:"group:Advanced"` |
| 33 | |
| 34 | // Identity labels |
| 35 | ClusterName string `yaml:"cluster_name,omitempty" json:"cluster_name" ui:"group:Identity"` |
| 36 | CellName string `yaml:"cell_name,omitempty" json:"cell_name" ui:"group:Identity"` |
| 37 | NodeName string `yaml:"node_name,omitempty" json:"node_name" ui:"group:Identity"` |
| 38 | ServerName string `yaml:"server_name,omitempty" json:"server_name" ui:"group:Identity"` |
| 39 | ServerType string `yaml:"server_type,omitempty" json:"server_type" ui:"group:Identity"` |
| 40 | CustomLabels map[string]string `yaml:"custom_labels,omitempty" json:"custom_labels" ui:"group:Identity"` |
| 41 | |
| 42 | // Metric toggles |
| 43 | CollectJVMMetrics confopt.AutoBool `yaml:"collect_jvm_metrics" json:"collect_jvm_metrics" ui:"group:Other Metrics"` |
| 44 | CollectThreadPoolMetrics confopt.AutoBool `yaml:"collect_threadpool_metrics" json:"collect_threadpool_metrics" ui:"group:Thread Pools"` |
| 45 | CollectJDBCMetrics confopt.AutoBool `yaml:"collect_jdbc_metrics" json:"collect_jdbc_metrics" ui:"group:JDBC"` |
| 46 | CollectJCAMetrics confopt.AutoBool `yaml:"collect_jca_metrics" json:"collect_jca_metrics" ui:"group:JCA"` |
| 47 | CollectJMSMetrics confopt.AutoBool `yaml:"collect_jms_metrics" json:"collect_jms_metrics" ui:"group:JMS"` |
| 48 | CollectWebAppMetrics confopt.AutoBool `yaml:"collect_webapp_metrics" json:"collect_webapp_metrics" ui:"group:Applications"` |
| 49 | CollectSessionMetrics confopt.AutoBool `yaml:"collect_session_metrics" json:"collect_session_metrics" ui:"group:Other Metrics"` |
| 50 | CollectTransactionMetrics confopt.AutoBool `yaml:"collect_transaction_metrics" json:"collect_transaction_metrics" ui:"group:Other Metrics"` |
| 51 | CollectClusterMetrics confopt.AutoBool `yaml:"collect_cluster_metrics" json:"collect_cluster_metrics" ui:"group:Other Metrics"` |
| 52 | CollectServletMetrics confopt.AutoBool `yaml:"collect_servlet_metrics" json:"collect_servlet_metrics" ui:"group:Servlets"` |
| 53 | CollectEJBMetrics confopt.AutoBool `yaml:"collect_ejb_metrics" json:"collect_ejb_metrics" ui:"group:EJBs"` |
| 54 | CollectJDBCAdvanced confopt.AutoBool `yaml:"collect_jdbc_advanced" json:"collect_jdbc_advanced" ui:"group:JDBC"` |
| 55 | |
| 56 | // Cardinality guards |
| 57 | MaxThreadPools int `yaml:"max_threadpools,omitempty" json:"max_threadpools" ui:"group:Thread Pools"` |
| 58 | MaxJDBCPools int `yaml:"max_jdbc_pools,omitempty" json:"max_jdbc_pools" ui:"group:JDBC"` |
| 59 | MaxJCAPools int `yaml:"max_jca_pools,omitempty" json:"max_jca_pools" ui:"group:JCA"` |
| 60 | MaxJMSDestinations int `yaml:"max_jms_destinations,omitempty" json:"max_jms_destinations" ui:"group:JMS"` |
| 61 | MaxApplications int `yaml:"max_applications,omitempty" json:"max_applications" ui:"group:Applications"` |
| 62 | MaxServlets int `yaml:"max_servlets,omitempty" json:"max_servlets" ui:"group:Servlets"` |
| 63 | MaxEJBs int `yaml:"max_ejbs,omitempty" json:"max_ejbs" ui:"group:EJBs"` |
| 64 | |
| 65 | // Filters |
| 66 | CollectPoolsMatching string `yaml:"collect_pools_matching,omitempty" json:"collect_pools_matching" ui:"group:Thread Pools"` |
| 67 | CollectJMSMatching string `yaml:"collect_jms_matching,omitempty" json:"collect_jms_matching" ui:"group:JMS"` |
| 68 | CollectAppsMatching string `yaml:"collect_apps_matching,omitempty" json:"collect_apps_matching" ui:"group:Applications"` |
| 69 | CollectServletsMatching string `yaml:"collect_servlets_matching,omitempty" json:"collect_servlets_matching" ui:"group:Servlets"` |
| 70 | CollectEJBsMatching string `yaml:"collect_ejbs_matching,omitempty" json:"collect_ejbs_matching" ui:"group:EJBs"` |
| 71 | |
| 72 | // Resilience tuning |
| 73 | MaxRetries int `yaml:"max_retries,omitempty" json:"max_retries" ui:"group:Advanced"` |
| 74 | RetryBackoffMultiplier float64 `yaml:"retry_backoff_multiplier,omitempty" json:"retry_backoff_multiplier" ui:"group:Advanced"` |
| 75 | CircuitBreakerThreshold int `yaml:"circuit_breaker_threshold,omitempty" json:"circuit_breaker_threshold" ui:"group:Advanced"` |
| 76 | HelperRestartMax int `yaml:"helper_restart_max,omitempty" json:"helper_restart_max" ui:"group:Advanced"` |
| 77 | } |