master
go 77 lines 5.24 KB
Raw
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 }