added repos e742457b
Steve · 2024-08-29 20:07 3 file(s) · +42 −0
index.html +2 −0
125 125
        <p>ID: <span class="truncate" id="radId">-</span></p>
126 126
        <p>Agent: <span id="radAgent">-</span></p>
127 127
        <p>Status: <span id="radStatus">-</span></p>
128 +
        <p>Repos: <span id="radRepos">-</span></p>
128 129
        <p>Seeding Policy: <span id="radPolicy">-</span></p>
129 130
      </div>
130 131
      <div class="system-info">
215 216
          document.getElementById("radAgent").textContent = data.agent;
216 217
          document.getElementById("radStatus").textContent = data.state;
217 218
          document.getElementById("radPolicy").textContent = data.config.seedingPolicy.default;
219 +
          document.getElementById("radRepos").textContent = data.repos.total.toString()
218 220
219 221
          // System
220 222
          document.getElementById("os").textContent = data.os;
stats.go +33 −0
28 28
		return CombinedStats{}, err
29 29
	}
30 30
31 +
	radicleRepoStats, err := getRadicleRepos()
32 +
	if err != nil {
33 +
		return CombinedStats{}, err
34 +
	}
35 +
31 36
	sysStats, err := getSystemStats()
32 37
	if err != nil {
33 38
		return CombinedStats{}, err
38 43
		BandwidthStats: bwStats,
39 44
		SystemStats:    sysStats,
40 45
		RadNodeInfo:    radicleNodeStats,
46 +
		RadNodeRepos:   radicleRepoStats,
41 47
	}, nil
42 48
}
43 49
133 139
	}
134 140
135 141
	return simplifiedStats, nil
142 +
}
143 +
144 +
func getRadicleRepos() (RadNodeRepos, error) {
145 +
	client := &http.Client{}
146 +
	req, err := http.NewRequest("GET", "http://127.0.0.1:8888/api/v1/stats", nil)
147 +
	if err != nil {
148 +
		return RadNodeRepos{}, fmt.Errorf("error creating request: %v", err)
149 +
	}
150 +
151 +
	resp, err := client.Do(req)
152 +
	if err != nil {
153 +
		return RadNodeRepos{}, fmt.Errorf("error fetching Rad Node Stats: %v", err)
154 +
	}
155 +
	defer resp.Body.Close()
156 +
157 +
	body, err := ioutil.ReadAll(resp.Body)
158 +
	if err != nil {
159 +
		return RadNodeRepos{}, fmt.Errorf("error reading response body: %v", err)
160 +
	}
161 +
162 +
	var stats RadNodeRepos
163 +
	err = json.Unmarshal(body, &stats)
164 +
	if err != nil {
165 +
		return RadNodeRepos{}, fmt.Errorf("error unmarshaling JSON: %v", err)
166 +
	}
167 +
168 +
	return stats, nil
136 169
}
137 170
138 171
func getSystemStats() (SystemStats, error) {
types.go +7 −0
11 11
	} `json:"config"`
12 12
}
13 13
14 +
type RadNodeRepos struct {
15 +
	Repos struct {
16 +
		Total int `json:"total"`
17 +
	} `json:"repos"`
18 +
}
19 +
14 20
type SystemStats struct {
15 21
	CPUUsage    float64 `json:"cpuUsage"`
16 22
	MemoryUsed  uint64  `json:"memoryUsed"`
41 47
	BandwidthStats
42 48
	SystemStats
43 49
	RadNodeInfo
50 +
	RadNodeRepos
44 51
}