diff options
author | Sebastien Douheret <sebastien.douheret@iot.bzh> | 2018-06-18 00:42:22 +0200 |
---|---|---|
committer | Sebastien Douheret <sebastien.douheret@iot.bzh> | 2018-06-18 22:29:55 +0200 |
commit | ee66af78c42c4d7ff33f104415bc09d60dbdc27b (patch) | |
tree | 834e494c29d339940a5a7036671650e439e3864d /webapp/src/app/@core-xds | |
parent | 72c9174cecdfbe4cde9baa71c0c02d0bee753224 (diff) |
Added Supervision/Monitoring support
Added new API supervisor/* to control and get status of AGL XDS
Supervisor.
Also add new panel in dashboard to control and visualized data
collected by the supervision (visualiazation is based on Granafa).
Change-Id: I093470f6e384e96a0856b233390e85a98911162e
Signed-off-by: Sebastien Douheret <sebastien.douheret@iot.bzh>
Diffstat (limited to 'webapp/src/app/@core-xds')
3 files changed, 78 insertions, 0 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 a3a67c5..6a4eb3c 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,6 +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 { TargetService } from './target.service'; import { UserService } from './users.service'; import { XDSConfigService } from './xds-config.service'; @@ -33,6 +34,7 @@ const SERVICES = [ ConfigService, ProjectService, SdkService, + SupervisionService, TargetService, UserService, XDSConfigService, diff --git a/webapp/src/app/@core-xds/services/supervision.service.ts b/webapp/src/app/@core-xds/services/supervision.service.ts new file mode 100644 index 0000000..4a9f578 --- /dev/null +++ b/webapp/src/app/@core-xds/services/supervision.service.ts @@ -0,0 +1,61 @@ +/** +* @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 adbee98..002c84b 100644 --- a/webapp/src/app/@core-xds/services/xdsagent.service.ts +++ b/webapp/src/app/@core-xds/services/xdsagent.service.ts @@ -665,6 +665,21 @@ export class XDSAgentService { { cols: cols, rows: rows }); } + /*** + ** Supervision + ***/ + getTopoSupervisor(): Observable<any> { + return this._get('/supervisor/topo'); + } + + startTraceSupervisor(cfg: any): Observable<any> { + return this._post('/supervisor/trace/start', cfg); + } + + stopTraceSupervisor(cfg: any): Observable<any> { + return this._post('/supervisor/trace/stop', cfg); + } + /** ** Private functions ***/ |