feat: Implement real-time stats and metrics for platform services with WebSocket integration
This commit is contained in:
@@ -22,6 +22,8 @@ import {
|
||||
TPlatformServiceType,
|
||||
INetworkTarget,
|
||||
INetworkStats,
|
||||
IContainerStats,
|
||||
IMetric,
|
||||
} from '../types/api.types';
|
||||
|
||||
@Injectable({ providedIn: 'root' })
|
||||
@@ -70,6 +72,15 @@ export class ApiService {
|
||||
return firstValueFrom(this.http.get<IApiResponse<string>>(`/api/services/${name}/logs`));
|
||||
}
|
||||
|
||||
async getServiceStats(name: string): Promise<IApiResponse<IContainerStats>> {
|
||||
return firstValueFrom(this.http.get<IApiResponse<IContainerStats>>(`/api/services/${name}/stats`));
|
||||
}
|
||||
|
||||
async getServiceMetrics(name: string, limit?: number): Promise<IApiResponse<IMetric[]>> {
|
||||
const params = limit ? `?limit=${limit}` : '';
|
||||
return firstValueFrom(this.http.get<IApiResponse<IMetric[]>>(`/api/services/${name}/metrics${params}`));
|
||||
}
|
||||
|
||||
// Registries
|
||||
async getRegistries(): Promise<IApiResponse<IRegistry[]>> {
|
||||
return firstValueFrom(this.http.get<IApiResponse<IRegistry[]>>('/api/registries'));
|
||||
@@ -177,6 +188,10 @@ export class ApiService {
|
||||
return firstValueFrom(this.http.post<IApiResponse<void>>(`/api/platform-services/${type}/stop`, {}));
|
||||
}
|
||||
|
||||
async getPlatformServiceStats(type: TPlatformServiceType): Promise<IApiResponse<IContainerStats>> {
|
||||
return firstValueFrom(this.http.get<IApiResponse<IContainerStats>>(`/api/platform-services/${type}/stats`));
|
||||
}
|
||||
|
||||
async getServicePlatformResources(serviceName: string): Promise<IApiResponse<IPlatformResource[]>> {
|
||||
return firstValueFrom(this.http.get<IApiResponse<IPlatformResource[]>>(`/api/services/${serviceName}/platform-resources`));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user