@@ -36,7 +36,7 @@ const (
3636
3737var (
3838 defaultMap = map [string ]string {
39- "default" : "members:services,caches:proxies,http-servers:machines, network-stats" ,
39+ "default" : "summary-cluster,summary- members,machines :services,caches:proxies,http-servers:health-summary,persistence:federation-all,elastic-data: network-stats" ,
4040 "default-service" : "services:service-members:service-distributions" ,
4141 "default-cache" : "caches,cache-indexes:cache-access:cache-storage:cache-stores:cache-partitions" ,
4242 "default-topic" : "topics:topic-members:subscribers:subscriber-groups" ,
5252 lastClusterSummaryInfo clusterSummaryInfo
5353 emptyStringArray = make ([]string , 0 )
5454 layoutParam string
55+ setMaxHeight int
56+ originalMaxHeight int
5557 padMaxHeightParam = true
5658 showAllPanels bool
5759 ignoreRESTErrors bool
@@ -75,41 +77,44 @@ var (
7577)
7678
7779var validPanels = []panelImpl {
78- createContentPanel (8 , "caches" , "Caches" , "show caches" , cachesContent , cachesPanelData , servicesPanelData ),
79- createContentPanel (8 , "cache-access" , "Cache Access (%SERVICE/%CACHE)" , "show cache access" , cacheAccessContent , cachesPanelData , servicesPanelData ),
80- createContentPanel (8 , "cache-indexes" , "Cache Indexes (%SERVICE/%CACHE)" , "show cache indexes" , cacheIndexesContent , cachesPanelData , servicesPanelData ),
81- createContentPanel (8 , "cache-storage" , "Cache Storage (%SERVICE/%CACHE)" , "show cache storage" , cacheStorageContent , cachesPanelData , servicesPanelData ),
82- createContentPanel (8 , "cache-stores" , "Cache Stores (%SERVICE/%CACHE)" , "show cache stores" , cacheStoresContent ),
83- createContentPanel (8 , "cache-partitions" , "Cache Partitions (%SERVICE/%CACHE)" , "show cache partitions" , cachePartitionContent , cachesPanelData , servicesPanelData ),
84- createContentPanel (8 , "departed-members" , "Departed Members" , "show departed members" , departedMembersContent , memberPanelData , storagePanelData ),
85- createContentPanel (5 , "elastic-data" , "Elastic Data" , "show elastic data" , elasticDataContent , elasticDataPanelData ),
86- createContentPanel (8 , "executors" , "Executors" , "show Executors" , executorsContent , executorsPanelData ),
87- createContentPanel (10 , "health-summary" , "Health Summary" , "show health summary" , healthSummaryContent , healthPanelData ),
88- createContentPanel (5 , "federation-all" , "Federation All" , "show all federation details" , federationAllContent , federationPanelData ),
89- createContentPanel (5 , "federation-dest" , "Federation Destinations" , "show federation destinations" , federationDestinationsContent , federationPanelData ),
90- createContentPanel (5 , "federation-origins" , "Federation Origins" , "show federation origins" , federationOriginsContent , federationPanelData ),
91- createContentPanel (8 , "http-servers" , "HTTP Servers" , "show HTTP servers" , httpServersContent , proxiesPanelData ),
92- createContentPanel (8 , "http-sessions" , "HTTP Sessions" , "show HTTP sessions" , httpSessionsContent , httpSessionsPanelData ),
93- createContentPanel (8 , "machines" , "Machines" , "show machines" , machinesContent , memberPanelData , storagePanelData ),
94- createContentPanel (7 , "members-summary" , "Members Summary" , "show members summary" , membersSummaryContent , memberPanelData , storagePanelData ),
95- createContentPanel (10 , "members" , "Members" , "show members" , membersContent , memberPanelData , storagePanelData ),
80+ createContentPanel (7 , "caches" , "Caches" , "show caches" , cachesContent , cachesPanelData , servicesPanelData ),
81+ createContentPanel (7 , "cache-access" , "Cache Access (%SERVICE/%CACHE)" , "show cache access" , cacheAccessContent , cachesPanelData , servicesPanelData ),
82+ createContentPanel (7 , "cache-indexes" , "Cache Indexes (%SERVICE/%CACHE)" , "show cache indexes" , cacheIndexesContent , cachesPanelData , servicesPanelData ),
83+ createContentPanel (7 , "cache-storage" , "Cache Storage (%SERVICE/%CACHE)" , "show cache storage" , cacheStorageContent , cachesPanelData , servicesPanelData ),
84+ createContentPanel (7 , "cache-stores" , "Cache Stores (%SERVICE/%CACHE)" , "show cache stores" , cacheStoresContent ),
85+ createContentPanel (7 , "cache-partitions" , "Cache Partitions (%SERVICE/%CACHE)" , "show cache partitions" , cachePartitionContent , cachesPanelData , servicesPanelData ),
86+ createContentPanel (7 , "departed-members" , "Departed Members" , "show departed members" , departedMembersContent , memberPanelData , storagePanelData ),
87+ createContentPanel (4 , "elastic-data" , "Elastic Data" , "show elastic data" , elasticDataContent , elasticDataPanelData ),
88+ createContentPanel (7 , "executors" , "Executors" , "show Executors" , executorsContent , executorsPanelData ),
89+ createContentPanel (7 , "health-summary" , "Health Summary" , "show health summary" , healthSummaryContent , healthPanelData ),
90+ createContentPanel (4 , "federation-all" , "Federation All" , "show all federation details" , federationAllContent , federationPanelData ),
91+ createContentPanel (3 , "federation-dest" , "Federation Destinations" , "show federation destinations" , federationDestinationsContent , federationPanelData ),
92+ createContentPanel (3 , "federation-origins" , "Federation Origins" , "show federation origins" , federationOriginsContent , federationPanelData ),
93+ createContentPanel (7 , "http-servers" , "HTTP Servers" , "show HTTP servers" , httpServersContent , proxiesPanelData ),
94+ createContentPanel (7 , "http-sessions" , "HTTP Sessions" , "show HTTP sessions" , httpSessionsContent , httpSessionsPanelData ),
95+ createContentPanel (7 , "machines" , "Machines" , "show machines" , machinesContent , memberPanelData , storagePanelData ),
96+ createContentPanel (7 , "members" , "Members" , "show members" , membersContent , memberPanelData , storagePanelData ),
9697 createContentPanel (7 , "members-short" , "Members (Short)" , "show members (short)" , membersOnlyContent , memberPanelData , storagePanelData ),
97- createContentPanel (8 , "network-stats" , "Network Stats" , "show network stats" , networkStatsContent , memberPanelData , storagePanelData ),
98- createContentPanel (8 , "persistence" , "Persistence" , "show persistence" , persistenceContent , servicesPanelData ),
99- createContentPanel (8 , "proxies" , "Proxy Servers" , "show proxy servers" , proxiesContent , proxiesPanelData ),
100- createContentPanel (8 , "proxy-connections" , "Proxy Connections (%SERVICE)" , "show proxy connections" , proxyConnectionsContent , proxiesPanelData ),
101- createContentPanel (8 , "reporters" , "Reporters" , "show reporters" , reportersContent , reportersPanelData ),
102- createContentPanel (8 , "services" , "Services" , "show services" , servicesContent , servicesPanelData ),
103- createContentPanel (8 , "service-members" , "Service Members (%SERVICE)" , "show service members" , serviceMembersContent , servicesPanelData ),
104- createContentPanel (8 , "service-distributions" , "Service Distributions (%SERVICE)" , "show service distributions" , serviceDistributionsContent , servicesPanelData ),
105- createContentPanel (8 , "service-ownership" , "Service Ownership (%SERVICE)" , "show service ownership" , serviceOwnershipContent , servicesPanelData ),
106- createContentPanel (8 , "service-storage" , "Service Storage" , "show service storage" , serviceStorageContent , servicesPanelData ),
107- createContentPanel (8 , "topic-members" , "Topic Members (%SERVICE/%TOPIC)" , "show topic members" , topicMembersContent , topicsPanelData ),
108- createContentPanel (8 , "subscribers" , "Topic Subscribers (%SERVICE/%TOPIC)" , "show topic subscribers" , topicSubscribersContent , topicsPanelData ),
109- createContentPanel (8 , "subscriber-channels" , "Subscriber Channels (%SERVICE/%TOPIC/%SUBSCRIBER)" , "show topic subscriber channels" , topicSubscriberChannelsContent , topicsPanelData ),
110- createContentPanel (8 , "subscriber-groups" , "Subscriber Channels (%SERVICE/%TOPIC)" , "show subscriber groups" , topicSubscriberGroupsContent , topicsPanelData ),
111- createContentPanel (8 , "topics" , "Topics" , "show topics" , topicsContent , topicsPanelData ),
112- createContentPanel (8 , "view-caches" , "View Caches" , "show view caches" , viewCachesContent , servicesPanelData ),
98+ createContentPanel (7 , "network-stats" , "Network Stats" , "show network stats" , networkStatsContent , memberPanelData , storagePanelData ),
99+ createContentPanel (7 , "persistence" , "Persistence" , "show persistence" , persistenceContent , servicesPanelData ),
100+ createContentPanel (7 , "proxies" , "Proxy Servers" , "show proxy servers" , proxiesContent , proxiesPanelData ),
101+ createContentPanel (7 , "proxy-connections" , "Proxy Connections (%SERVICE)" , "show proxy connections" , proxyConnectionsContent , proxiesPanelData ),
102+ createContentPanel (7 , "reporters" , "Reporters" , "show reporters" , reportersContent , reportersPanelData ),
103+ createContentPanel (7 , "services" , "Services" , "show services" , servicesContent , servicesPanelData ),
104+ createContentPanel (7 , "service-members" , "Service Members (%SERVICE)" , "show service members" , serviceMembersContent , servicesPanelData ),
105+ createContentPanel (7 , "service-distributions" , "Service Distributions (%SERVICE)" , "show service distributions" , serviceDistributionsContent , servicesPanelData ),
106+ createContentPanel (7 , "service-ownership" , "Service Ownership (%SERVICE)" , "show service ownership" , serviceOwnershipContent , servicesPanelData ),
107+ createContentPanel (7 , "service-storage" , "Service Storage" , "show service storage" , serviceStorageContent , servicesPanelData ),
108+ createContentPanel (7 , "topic-members" , "Topic Members (%SERVICE/%TOPIC)" , "show topic members" , topicMembersContent , topicsPanelData ),
109+ createContentPanel (7 , "subscribers" , "Topic Subscribers (%SERVICE/%TOPIC)" , "show topic subscribers" , topicSubscribersContent , topicsPanelData ),
110+ createContentPanel (7 , "subscriber-channels" , "Subscriber Channels (%SERVICE/%TOPIC/%SUBSCRIBER)" , "show topic subscriber channels" , topicSubscriberChannelsContent , topicsPanelData ),
111+ createContentPanel (7 , "subscriber-groups" , "Subscriber Channels (%SERVICE/%TOPIC)" , "show subscriber groups" , topicSubscriberGroupsContent , topicsPanelData ),
112+ createContentPanel (7 , "topics" , "Topics" , "show topics" , topicsContent , topicsPanelData ),
113+ createContentPanel (7 , "view-caches" , "View Caches" , "show view caches" , viewCachesContent , servicesPanelData ),
114+ // cluster summary panels below
115+ createContentPanel (7 , "summary-cluster" , "Cluster Information" , "show cluster information" , summaryClusterContent , memberPanelData , storagePanelData ),
116+ createContentPanel (7 , "summary-members" , "Members Summary" , "show members summary" , membersContent , memberPanelData , storagePanelData ),
117+ createContentPanel (7 , "summary-caches" , "Caches Summary" , "show caches summary" , cachesContent , cachesPanelData , servicesPanelData ),
113118}
114119
115120type position struct {
@@ -217,6 +222,8 @@ Use --show-panels to show all available panels.`,
217222
218223 exit := make (chan struct {})
219224
225+ originalMaxHeight = setMaxHeight
226+
220227 // initial update
221228 err = updateScreen (screen , dataFetcher , parsedLayout , true )
222229 if err != nil {
@@ -323,6 +330,9 @@ func increaseMaxHeight() {
323330 validPanels [i ].MaxHeight ++
324331 }
325332 heightAdjust ++
333+ if setMaxHeight != 0 {
334+ setMaxHeight ++
335+ }
326336}
327337
328338func decreaseMaxHeight () {
@@ -333,6 +343,9 @@ func decreaseMaxHeight() {
333343 }
334344 }
335345 heightAdjust --
346+ if setMaxHeight != 0 {
347+ setMaxHeight --
348+ }
336349 }
337350}
338351
@@ -341,6 +354,7 @@ func resetMaxHeight() {
341354 validPanels [i ].MaxHeight = validPanels [i ].OriginalMaxHeight
342355 }
343356 heightAdjust = 0
357+ setMaxHeight = originalMaxHeight
344358}
345359
346360func refresh (screen tcell.Screen , dataFetcher fetcher.Fetcher , parsedLayout []string , refresh bool ) error {
@@ -388,8 +402,8 @@ func updateScreen(screen tcell.Screen, dataFetcher fetcher.Fetcher, parsedLayout
388402 var (
389403 errorList []error
390404 err error
391- cluster config.Cluster
392405 rows int
406+ cluster config.Cluster
393407 )
394408
395409 mutex .Lock ()
@@ -526,13 +540,6 @@ var departedMembersContent = func(dataFetcher fetcher.Fetcher, clusterSummary cl
526540 return clusterMembersSummaryInternal (dataFetcher , clusterSummary )
527541}
528542
529- var membersSummaryContent = func (dataFetcher fetcher.Fetcher , clusterSummary clusterSummaryInfo ) ([]string , error ) {
530- memberSummary = true
531- departedMembers = false
532- showMembersOnly = false
533- return clusterMembersSummaryInternal (dataFetcher , clusterSummary )
534- }
535-
536543var machinesContent = func (_ fetcher.Fetcher , clusterSummary clusterSummaryInfo ) ([]string , error ) {
537544 return strings .Split (FormatMachines (clusterSummary .machines ), "\n " ), nil
538545}
@@ -1084,6 +1091,21 @@ func getSelectedDetails(dataFetcher fetcher.Fetcher) (config.TopicDetails, error
10841091 return getTopicsDetails (dataFetcher , serviceName , selectedTopic )
10851092}
10861093
1094+ // Cluster Summary
1095+
1096+ var summaryClusterContent = func (_ fetcher.Fetcher , clusterSummary clusterSummaryInfo ) ([]string , error ) {
1097+ var cluster config.Cluster
1098+ err := json .Unmarshal (clusterSummary .clusterResult , & cluster )
1099+ if err != nil && ! ignoreRESTErrors {
1100+ return emptyStringArray , err
1101+ }
1102+ summary := fmt .Sprintf ("Cluster Name: %s\n Version: %v\n License Mode: %v\n Members: %v\n Departed: %v\n Machines: %v" ,
1103+ cluster .ClusterName , cluster .Version , cluster .LicenseMode , cluster .ClusterSize ,
1104+ cluster .MembersDepartureCount , len (clusterSummary .machines ))
1105+
1106+ return strings .Split (summary , "\n " ), nil
1107+ }
1108+
10871109//
10881110// Panel utility functions and types
10891111//
@@ -1200,6 +1222,10 @@ func drawContent(screen tcell.Screen, dataFetcher fetcher.Fetcher, panel panelIm
12001222 h := panel .GetMaxHeight ()
12011223 title := panel .GetTitle ()
12021224
1225+ if setMaxHeight != 0 {
1226+ h = setMaxHeight
1227+ }
1228+
12031229 content , err := panel .GetContentFunction ()(dataFetcher , lastClusterSummaryInfo )
12041230 if err != nil {
12051231 if ignoreRESTErrors {
@@ -1405,4 +1431,5 @@ func init() {
14051431 monitorClusterCmd .Flags ().StringVarP (& selectedCache , "cache-name" , "C" , "" , "cache name" )
14061432 monitorClusterCmd .Flags ().StringVarP (& selectedTopic , "topic-name" , "T" , "" , "topic name" )
14071433 monitorClusterCmd .Flags ().Int64VarP (& subscriber , "subscriber-id" , "B" , 0 , "subscriber" )
1434+ monitorClusterCmd .Flags ().IntVarP (& setMaxHeight , "max-height" , "M" , 0 , "override max height for all panels" )
14081435}
0 commit comments