Skip to content

Commit 116112f

Browse files
author
Tim Middleton
authored
Minor changes to default layout (#234)
* Minor changes to default layout * Minor adjustments * minor test fix
1 parent 6ff6e7b commit 116112f

File tree

2 files changed

+71
-44
lines changed

2 files changed

+71
-44
lines changed

pkg/cmd/monitor_cluster.go

Lines changed: 70 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ const (
3636

3737
var (
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",
@@ -52,6 +52,8 @@ var (
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

7779
var 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

115120
type 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

328338
func 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

346360
func 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-
536543
var 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\nVersion: %v\nLicense Mode: %v\nMembers: %v\nDeparted: %v\nMachines: %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
}

pkg/cmd/monitor_cluster_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ func TestValidatePanels(t *testing.T) {
4444
err := validatePanels([]string{"members"})
4545
g.Expect(err).To(gomega.Not(gomega.HaveOccurred()))
4646

47-
err = validatePanels([]string{"members-summary"})
47+
err = validatePanels([]string{"summary-members"})
4848
g.Expect(err).To(gomega.Not(gomega.HaveOccurred()))
4949

5050
err = validatePanels([]string{"caches"})

0 commit comments

Comments
 (0)