| 1 | package mq |
| 2 | |
| 3 | import "github.com/netdata/netdata/go/plugins/plugin/ibm.d/framework" |
| 4 | |
| 5 | // Config is the configuration for the collector. |
| 6 | type Config struct { |
| 7 | framework.Config `yaml:",inline" json:",inline"` |
| 8 | |
| 9 | // IBM MQ Queue Manager name to connect to |
| 10 | QueueManager string `yaml:"queue_manager" json:"queue_manager"` |
| 11 | // IBM MQ channel name for connection |
| 12 | Channel string `yaml:"channel" json:"channel"` |
| 13 | // IBM MQ server hostname or IP address |
| 14 | Host string `yaml:"host" json:"host"` |
| 15 | // IBM MQ server port number |
| 16 | Port int `yaml:"port" json:"port"` |
| 17 | // Username for IBM MQ authentication |
| 18 | User string `yaml:"user" json:"user"` |
| 19 | // Password for IBM MQ authentication |
| 20 | Password string `yaml:"password" json:"password"` |
| 21 | |
| 22 | // Enable collection of queue metrics |
| 23 | CollectQueues bool `yaml:"collect_queues" json:"collect_queues"` |
| 24 | // Enable collection of channel metrics |
| 25 | CollectChannels bool `yaml:"collect_channels" json:"collect_channels"` |
| 26 | // Enable collection of topic metrics |
| 27 | CollectTopics bool `yaml:"collect_topics" json:"collect_topics"` |
| 28 | // Enable collection of listener metrics |
| 29 | CollectListeners bool `yaml:"collect_listeners" json:"collect_listeners"` |
| 30 | // Enable collection of subscription metrics |
| 31 | CollectSubscriptions bool `yaml:"collect_subscriptions" json:"collect_subscriptions"` |
| 32 | |
| 33 | // Enable collection of system queue metrics (SYSTEM.* queues provide critical infrastructure visibility) |
| 34 | CollectSystemQueues bool `yaml:"collect_system_queues" json:"collect_system_queues"` |
| 35 | // Enable collection of system channel metrics (SYSTEM.* channels show clustering and administrative health) |
| 36 | CollectSystemChannels bool `yaml:"collect_system_channels" json:"collect_system_channels"` |
| 37 | // Enable collection of system topic metrics (SYSTEM.* topics show internal messaging patterns) |
| 38 | CollectSystemTopics bool `yaml:"collect_system_topics" json:"collect_system_topics"` |
| 39 | // Enable collection of system listener metrics (SYSTEM.* listeners show internal connectivity) |
| 40 | CollectSystemListeners bool `yaml:"collect_system_listeners" json:"collect_system_listeners"` |
| 41 | |
| 42 | // Enable collection of channel configuration metrics |
| 43 | CollectChannelConfig bool `yaml:"collect_channel_config" json:"collect_channel_config"` |
| 44 | // Enable collection of queue configuration metrics |
| 45 | CollectQueueConfig bool `yaml:"collect_queue_config" json:"collect_queue_config"` |
| 46 | |
| 47 | // Patterns to include queues (wildcards supported). Empty means include everything. |
| 48 | IncludeQueues []string `yaml:"include_queues" json:"include_queues"` |
| 49 | // Patterns to exclude queues after inclusion (wildcards supported). |
| 50 | ExcludeQueues []string `yaml:"exclude_queues" json:"exclude_queues"` |
| 51 | // Pattern to filter channels (wildcards supported) |
| 52 | ChannelSelector string `yaml:"channel_selector" json:"channel_selector"` |
| 53 | // Pattern to filter topics (wildcards supported) |
| 54 | TopicSelector string `yaml:"topic_selector" json:"topic_selector"` |
| 55 | // Pattern to filter listeners (wildcards supported) |
| 56 | ListenerSelector string `yaml:"listener_selector" json:"listener_selector"` |
| 57 | // Pattern to filter subscriptions (wildcards supported) |
| 58 | SubscriptionSelector string `yaml:"subscription_selector" json:"subscription_selector"` |
| 59 | // Maximum number of queues to collect (0 = no limit) |
| 60 | MaxQueues int `yaml:"max_queues" json:"max_queues"` |
| 61 | // Maximum number of channels to collect (0 = no limit) |
| 62 | MaxChannels int `yaml:"max_channels" json:"max_channels"` |
| 63 | // Maximum number of topics to collect (0 = no limit) |
| 64 | MaxTopics int `yaml:"max_topics" json:"max_topics"` |
| 65 | // Maximum number of listeners to collect (0 = no limit) |
| 66 | MaxListeners int `yaml:"max_listeners" json:"max_listeners"` |
| 67 | |
| 68 | // Enable collection of queue statistics (destructive operation) |
| 69 | CollectResetQueueStats bool `yaml:"collect_reset_queue_stats" json:"collect_reset_queue_stats"` |
| 70 | // Enable collection of statistics queue metrics (SYSTEM.ADMIN.STATISTICS.QUEUE provides advanced metrics like min/max depth) |
| 71 | CollectStatisticsQueue bool `yaml:"collect_statistics_queue" json:"collect_statistics_queue"` |
| 72 | |
| 73 | // Enable collection of $SYS topic metrics (provides Queue Manager CPU, memory, and log utilization) |
| 74 | CollectSysTopics bool `yaml:"collect_sys_topics" json:"collect_sys_topics"` |
| 75 | |
| 76 | // Statistics collection interval in seconds (auto-detected STATINT overwrites this value) |
| 77 | StatisticsInterval int `yaml:"statistics_interval,omitempty" json:"statistics_interval,omitempty"` |
| 78 | // $SYS topic collection interval in seconds (user override for customized MQ configurations) |
| 79 | SysTopicInterval int `yaml:"sys_topic_interval,omitempty" json:"sys_topic_interval,omitempty"` |
| 80 | } |