package app import ( "fmt" "github.com/seaweedfs/seaweedfs/weed/admin/dash" ) templ Admin(data dash.AdminData) {

Dashboard

Total Volumes
{fmt.Sprintf("%d", data.TotalVolumes)}
@templ.Raw(data.Trends.Volumes)
Total Chunks
{formatNumber(data.TotalChunks)}
@templ.Raw(data.Trends.Chunks)
Total Size
{formatBytes(data.TotalSize)}
@templ.Raw(data.Trends.DiskUsed)
Volume Size Limit
{fmt.Sprintf("%d MB", data.VolumeSizeLimitMB)}
EC Volumes
{fmt.Sprintf("%d", data.TotalEcVolumes)}
EC Shards
{fmt.Sprintf("%d", data.TotalEcShards)}
@templ.Raw(data.Trends.EcShards)
Active Tasks
{ data.Trends.TasksValue }
@templ.Raw(data.Trends.Tasks)
Workers
{ data.Trends.WorkersValue }
@templ.Raw(data.Trends.Workers)
if len(data.TierStats) > 0 {
Storage Tiers
for _, tier := range data.TierStats { }
Tier Volumes EC Shards Data Size Disk Used Capacity Usage
if tier.IsRemote { {tier.Name} remote } else { {tier.Name} } {fmt.Sprintf("%d", tier.VolumeCount)} if tier.IsRemote { - } else { {fmt.Sprintf("%d", tier.EcShardCount)} } {formatBytes(tier.DataSize)} if tier.IsRemote || tier.DiskUsed == 0 { - } else { {formatBytes(tier.DiskUsed)} } if tier.IsRemote { - } else { {formatBytes(tier.DiskCapacity)} } if tier.IsRemote { - } else {
{fmt.Sprintf("%d%%", tier.UsagePercent())}
}
}
Mount Clients
View Details
{fmt.Sprintf("%d", data.TotalMountClients)}
Connected FUSE/VFS mount clients
Master Nodes
for _, master := range data.MasterNodes { }
Address Role
{master.Address} if master.IsLeader { Leader } else { Follower }
Cluster
{fmt.Sprintf("%d", len(data.MasterNodes))}
Masters
{fmt.Sprintf("%d", len(data.VolumeServers))}
Volume Servers
{fmt.Sprintf("%d", len(data.FilerNodes))}
Filers
{fmt.Sprintf("%d", len(data.S3Nodes))}
S3 Servers
{fmt.Sprintf("%d", len(data.MessageBrokers))}
Message Brokers
Volume Servers
for _, vs := range data.VolumeServers { } if len(data.VolumeServers) == 0 { }
ID Address Data Center Rack Volumes EC Shards Usage / Capacity
{vs.ID} {vs.GetDisplayAddress()} {vs.DataCenter} {vs.Rack}
{fmt.Sprintf("%d/%d", vs.Volumes, vs.MaxVolumes)}
if vs.EcShards > 0 { {fmt.Sprintf("%d", vs.EcShards)} if vs.EcVolumes > 0 { ({fmt.Sprintf("%d vol", vs.EcVolumes)}) } } else { - } {formatBytes(vs.DiskUsage)} / {formatBytes(vs.DiskCapacity)} if vs.RemoteSize > 0 {
{formatBytes(vs.RemoteSize)} remote }
No volume servers found
Filer Nodes
for _, filer := range data.FilerNodes { } if len(data.FilerNodes) == 0 { }
Address Data Center Rack Last Updated
{filer.Address} {filer.DataCenter} {filer.Rack} {filer.LastUpdated.Format("2006-01-02 15:04:05")}
No filer nodes found
S3 Servers
for _, s3Node := range data.S3Nodes { } if len(data.S3Nodes) == 0 { }
Address Data Center Last Updated
{s3Node.Address} {s3Node.DataCenter} {s3Node.LastUpdated.Format("2006-01-02 15:04:05")}
No S3 servers found
Last updated: {data.LastUpdated.Format("2006-01-02 15:04:05")}
}