diff options
Diffstat (limited to 'webapp/src/app/@core-xds/services')
4 files changed, 132 insertions, 72 deletions
diff --git a/webapp/src/app/@core-xds/services/@core-xds-services.module.ts b/webapp/src/app/@core-xds/services/@core-xds-services.module.ts index 6a4eb3c..b3606ec 100644 --- a/webapp/src/app/@core-xds/services/@core-xds-services.module.ts +++ b/webapp/src/app/@core-xds/services/@core-xds-services.module.ts @@ -23,7 +23,7 @@ import { AlertService } from './alert.service'; import { ConfigService } from './config.service'; import { ProjectService } from './project.service'; import { SdkService } from './sdk.service'; -import { SupervisionService } from './supervision.service'; +import { MonitoringService } from './monitoring.service'; import { TargetService } from './target.service'; import { UserService } from './users.service'; import { XDSConfigService } from './xds-config.service'; @@ -34,7 +34,7 @@ const SERVICES = [ ConfigService, ProjectService, SdkService, - SupervisionService, + MonitoringService, TargetService, UserService, XDSConfigService, diff --git a/webapp/src/app/@core-xds/services/monitoring.service.ts b/webapp/src/app/@core-xds/services/monitoring.service.ts new file mode 100644 index 0000000..a606909 --- /dev/null +++ b/webapp/src/app/@core-xds/services/monitoring.service.ts @@ -0,0 +1,106 @@ +/** +* @license +* Copyright (C) 2018-2019 "IoT.bzh" +* Author Sebastien Douheret <sebastien@iot.bzh> +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +import { Injectable } from '@angular/core'; +import { Observable } from 'rxjs/Observable'; + +import { XDSAgentService } from './xdsagent.service'; +import { map } from 'rxjs/operators'; + +export interface AglTopology { + name: string; + pid: number; + disabled: boolean; + isClient: boolean; + isServer: boolean; + ws_clients: string[]; + ws_servers: string[]; + apis: any; +} + +export interface AglLowCollectorConfig { + time?: number; +} + +@Injectable() +export class MonitoringService { + + constructor(private xdsSvr: XDSAgentService) { + /* + this.xdsSvr.XdsConfig$.subscribe(cfg => { + if (!cfg || cfg.servers.length < 1) { + return; + } + }); + */ + } + + getTopo(): Observable<AglTopology[]> { + return this.xdsSvr.getTopoMonitoring().pipe( + map((tp: AglTopology[]) => { + // FIXME - move filter on backend side + const ignored: string[] = [ + 'agl-low-collector', + 'harvester', + ]; + + tp.forEach(el => { + el.disabled = false; + ignored.forEach(iel => { + if (el.name.indexOf(iel) !== -1) { + el.disabled = true; + } + }); + + // replace unix:/run/xxx/ws by nothing + const wsc: string[] = []; + el.ws_clients.forEach(s => { + s = s.replace('unix:/run/platform/apis/ws/', ''); + s = s.replace('unix:/run/user/1001/apis/ws/', ''); + s = s.replace('unix:/run/user/0/apis/ws/', ''); + wsc.push(s); + }); + el.ws_clients = wsc; + // replace sd: by nothing + const wss: string[] = []; + el.ws_servers.forEach(s => { + wss.push(s.replace('sd:', '')); + }); + el.ws_servers = wss; + }); + return tp; + }) + ); + } + + startTrace(cfg: any): Observable<any> { + return this.xdsSvr.startTraceMonitoring(cfg); + } + + stopTrace(cfg: any): Observable<any> { + return this.xdsSvr.stopTraceMonitoring(cfg); + } + + startLowCollector(cfg: AglLowCollectorConfig): Observable<any> { + return this.xdsSvr.startLowCollector(cfg); + } + + stopLowCollector(): Observable<any> { + return this.xdsSvr.stopLowCollector(); + } +} diff --git a/webapp/src/app/@core-xds/services/supervision.service.ts b/webapp/src/app/@core-xds/services/supervision.service.ts deleted file mode 100644 index 4a9f578..0000000 --- a/webapp/src/app/@core-xds/services/supervision.service.ts +++ /dev/null @@ -1,61 +0,0 @@ -/** -* @license -* Copyright (C) 2018 "IoT.bzh" -* Author Sebastien Douheret <sebastien@iot.bzh> -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -import { Injectable, SecurityContext, isDevMode } from '@angular/core'; -import { Observable } from 'rxjs/Observable'; - -import { XDSAgentService } from '../services/xdsagent.service'; - -export interface AglTopology { - name: string; - pid: number; - isClient: boolean; - isServer: boolean; - ws_clients: string[]; - ws_servers: string[]; - apis: any; -} - -@Injectable() -export class SupervisionService { - - private curServerID; - - constructor(private xdsSvr: XDSAgentService) { - /* - this.xdsSvr.XdsConfig$.subscribe(cfg => { - if (!cfg || cfg.servers.length < 1) { - return; - } - }); - */ - } - - getTopo(): Observable<AglTopology[]> { - return this.xdsSvr.getTopoSupervisor(); - } - - startTrace(cfg: any): Observable<any> { - return this.xdsSvr.startTraceSupervisor(cfg); - } - - stopTrace(cfg: any): Observable<any> { - return this.xdsSvr.stopTraceSupervisor(cfg); - } - -} diff --git a/webapp/src/app/@core-xds/services/xdsagent.service.ts b/webapp/src/app/@core-xds/services/xdsagent.service.ts index 002c84b..35abe46 100644 --- a/webapp/src/app/@core-xds/services/xdsagent.service.ts +++ b/webapp/src/app/@core-xds/services/xdsagent.service.ts @@ -1,6 +1,6 @@ /** * @license -* Copyright (C) 2017-2018 "IoT.bzh" +* Copyright (C) 2017-2019 "IoT.bzh" * Author Sebastien Douheret <sebastien@iot.bzh> * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -666,18 +666,33 @@ export class XDSAgentService { } /*** - ** Supervision + ** Monitoring ***/ - getTopoSupervisor(): Observable<any> { - return this._get('/supervisor/topo'); + getTopoMonitoring(): Observable<any> { + return this._get('/monitoring/topo'); } - startTraceSupervisor(cfg: any): Observable<any> { - return this._post('/supervisor/trace/start', cfg); + startTraceMonitoring(cfg: any): Observable<any> { + return this._post('/monitoring/trace/start', cfg); } - stopTraceSupervisor(cfg: any): Observable<any> { - return this._post('/supervisor/trace/stop', cfg); + stopTraceMonitoring(cfg: any): Observable<any> { + return this._post('/monitoring/trace/stop', cfg); + } + + /*** + ** AGL Low Collector + ***/ + startLowCollector(cfg: any): Observable<any> { + return this._post('/monitoring/alc/start', cfg); + } + + stopLowCollector(): Observable<any> { + return this._post('/monitoring/alc/stop', {}); + } + + resetLowCollector(): Observable<any> { + return this._post('/monitoring/alc/reset', {}); } /** @@ -692,7 +707,7 @@ export class XDSAgentService { error => { this.alert.error('ERROR while registering to all events: ' + error); }, - ); + ); } private _getServer(ID: string): IXDServerCfg { |