diff --git a/pdb-js/package-lock.json b/pdb-js/package-lock.json
index c8262b6..f5da10f 100644
--- a/pdb-js/package-lock.json
+++ b/pdb-js/package-lock.json
@@ -134,6 +134,23 @@
"tslib": "^1.9.0"
}
},
+ "@angular/cdk": {
+ "version": "8.2.2",
+ "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-8.2.2.tgz",
+ "integrity": "sha512-e+BtFab0Vd1q/ZVu6l850Q4vvgyVYiugSX31oMRlp86fKHPowlAO7jL3z5JcAG7TybpLIqd7oqF8XQBR/yw83w==",
+ "requires": {
+ "parse5": "^5.0.0",
+ "tslib": "^1.7.1"
+ },
+ "dependencies": {
+ "parse5": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz",
+ "integrity": "sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==",
+ "optional": true
+ }
+ }
+ },
"@angular/cli": {
"version": "8.3.8",
"resolved": "https://registry.npmjs.org/@angular/cli/-/cli-8.3.8.tgz",
@@ -988,6 +1005,14 @@
"integrity": "sha512-F6ReN0cToHIkCjEM2ECkBxCTsvFjVae8FpIr3Fz8IHZHOOYcS5mx/BWdEO7odI5/tQKl+cCWol7NjvJYV0zolg==",
"dev": true
},
+ "@angular/material": {
+ "version": "8.2.2",
+ "resolved": "https://registry.npmjs.org/@angular/material/-/material-8.2.2.tgz",
+ "integrity": "sha512-mR2ppE+Z1S5As2SUFK8wUH76Fj7YgrefhrwVGaeCLcAen//RHPw043+KL2apPAUaltdIFlGFtUuA6yJN6av0nQ==",
+ "requires": {
+ "tslib": "^1.7.1"
+ }
+ },
"@angular/platform-browser": {
"version": "8.2.9",
"resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-8.2.9.tgz",
diff --git a/pdb-js/package.json b/pdb-js/package.json
index bcdb282..683c94e 100644
--- a/pdb-js/package.json
+++ b/pdb-js/package.json
@@ -12,10 +12,12 @@
"private": true,
"dependencies": {
"@angular/animations": "~8.2.9",
+ "@angular/cdk": "^8.2.2",
"@angular/common": "~8.2.9",
"@angular/compiler": "~8.2.9",
"@angular/core": "~8.2.9",
"@angular/forms": "~8.2.9",
+ "@angular/material": "^8.2.2",
"@angular/platform-browser": "~8.2.9",
"@angular/platform-browser-dynamic": "~8.2.9",
"@angular/router": "~8.2.9",
diff --git a/pdb-js/src/app/app-routing.module.ts b/pdb-js/src/app/app-routing.module.ts
index 06c7342..f02e8b5 100644
--- a/pdb-js/src/app/app-routing.module.ts
+++ b/pdb-js/src/app/app-routing.module.ts
@@ -1,11 +1,27 @@
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
+import { VisualizationPageComponent } from './visualization-page/visualization-page.component';
+import { MainPageComponent } from './main-page/main-page.component';
+import { UploadPageComponent } from './upload-page/upload-page.component';
+import { HelpPageComponent } from './help-page/help-page.component';
-const routes: Routes = [];
+const routes: Routes = [
+ { path: '', component: MainPageComponent},
+ { path: 'vis', component: VisualizationPageComponent },
+ { path: 'upload', component: UploadPageComponent },
+ { path: 'help', component: HelpPageComponent },
+ // { path: '**', component: PageNotFoundComponent }
+];
@NgModule({
- imports: [RouterModule.forRoot(routes)],
+ imports: [
+ RouterModule.forRoot(
+ routes,
+ //{ enableTracing: true } // <-- debugging purposes only
+ )
+ ],
+ declarations: [VisualizationPageComponent],
exports: [RouterModule]
})
export class AppRoutingModule { }
diff --git a/pdb-js/src/app/app.component.html b/pdb-js/src/app/app.component.html
index 7feacad..089cf32 100644
--- a/pdb-js/src/app/app.component.html
+++ b/pdb-js/src/app/app.component.html
@@ -1,538 +1,19 @@
-
-
-
-
-
-
-
-
+
-
-
-
-
Welcome
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
{{ title }} app is running!
-
-
-
-
-
-
-
-
-
Resources
-
Here are some links to help you get started:
-
-
-
-
-
Next Steps
-
What do you want to do next with your app?
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Run and Watch Tests
-
-
-
-
-
-
Build for Production
-
-
-
-
-
-
ng generate component xyz
-
ng add @angular/material
-
ng add _____
-
ng test
-
ng build --prod
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pdb-js/src/app/app.component.scss b/pdb-js/src/app/app.component.scss
index e69de29..ec7bf38 100644
--- a/pdb-js/src/app/app.component.scss
+++ b/pdb-js/src/app/app.component.scss
@@ -0,0 +1,14 @@
+
+
+#main-toolbar {
+ height: 1.5em;
+ width: 100%;
+ padding-bottom: 0.5em;
+ border-bottom: solid 1px black;
+ background-color: #eee;
+}
+
+.right{
+ position: absolute;
+ right: 0px;
+}
diff --git a/pdb-js/src/app/app.component.ts b/pdb-js/src/app/app.component.ts
index 8e4f396..5b955d6 100644
--- a/pdb-js/src/app/app.component.ts
+++ b/pdb-js/src/app/app.component.ts
@@ -1,4 +1,6 @@
import { Component } from '@angular/core';
+import {DomSanitizer} from '@angular/platform-browser';
+import {MatIconRegistry} from '@angular/material/icon';
@Component({
selector: 'app-root',
@@ -7,4 +9,10 @@ import { Component } from '@angular/core';
})
export class AppComponent {
title = 'pdb';
+
+ constructor(iconRegistry: MatIconRegistry, sanitizer: DomSanitizer) {
+ iconRegistry.addSvgIcon(
+ 'home',
+ sanitizer.bypassSecurityTrustResourceUrl('assets/img/home.svg'));
+ }
}
diff --git a/pdb-js/src/app/app.module.ts b/pdb-js/src/app/app.module.ts
index 2c3ba29..e2043a2 100644
--- a/pdb-js/src/app/app.module.ts
+++ b/pdb-js/src/app/app.module.ts
@@ -3,10 +3,18 @@ import { NgModule } from '@angular/core';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
+import { MainPageComponent } from './main-page/main-page.component';
+import { HelpPageComponent } from './help-page/help-page.component';
+import { UploadPageComponent } from './upload-page/upload-page.component';
+//import { VisualizationPageComponent } from './visualization-page/visualization-page.component';
@NgModule({
declarations: [
- AppComponent
+ AppComponent,
+ MainPageComponent,
+ HelpPageComponent,
+ UploadPageComponent,
+ //VisualizationPageComponent,
],
imports: [
BrowserModule,
diff --git a/pdb-js/src/app/help-page/help-page.component.html b/pdb-js/src/app/help-page/help-page.component.html
new file mode 100644
index 0000000..15a2ca6
--- /dev/null
+++ b/pdb-js/src/app/help-page/help-page.component.html
@@ -0,0 +1,43 @@
+
+
+
Help
+
+This page describes how to use this tool.
+
+
+
Why not use one of the existing monitoring tools?
+
+There are many monitoring tools out there.
+New Relic ,
+Splunk ,
+Kibana (ELK ),
+App Dynamics ,
+Graphite ,
+Prometheus
++ Grafana ,
+Netflix Atlas ,
+RRDtool ,
+Ganglia ,
+InfluxDB
++ Chronograf ,
+OpenTSDB ,
+Nagios /Icinga ,
+Heka,
+Bosun,
+Wavefront,
+Dropwizard,
+Druid.io,
+Bleemo,
+Site24x7,
+Sitescope,
+and many more. None of them provides the visualizations we had in mind. We wanted to plot each value of the time series data individually, so that we can identify the
+response times of a single request. But tools like Splunk, Kibana, Chronograf or Grafana only plot aggregated data (average, min/max, percentiles).
+
+
+
diff --git a/pdb-js/src/app/help-page/help-page.component.scss b/pdb-js/src/app/help-page/help-page.component.scss
new file mode 100644
index 0000000..e69de29
diff --git a/pdb-js/src/app/help-page/help-page.component.spec.ts b/pdb-js/src/app/help-page/help-page.component.spec.ts
new file mode 100644
index 0000000..82f6765
--- /dev/null
+++ b/pdb-js/src/app/help-page/help-page.component.spec.ts
@@ -0,0 +1,25 @@
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { HelpPageComponent } from './help-page.component';
+
+describe('HelpPageComponent', () => {
+ let component: HelpPageComponent;
+ let fixture: ComponentFixture;
+
+ beforeEach(async(() => {
+ TestBed.configureTestingModule({
+ declarations: [ HelpPageComponent ]
+ })
+ .compileComponents();
+ }));
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(HelpPageComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/pdb-js/src/app/help-page/help-page.component.ts b/pdb-js/src/app/help-page/help-page.component.ts
new file mode 100644
index 0000000..70b77e5
--- /dev/null
+++ b/pdb-js/src/app/help-page/help-page.component.ts
@@ -0,0 +1,15 @@
+import { Component, OnInit } from '@angular/core';
+
+@Component({
+ selector: 'pdb-help-page',
+ templateUrl: './help-page.component.html',
+ styleUrls: ['./help-page.component.scss']
+})
+export class HelpPageComponent implements OnInit {
+
+ constructor() { }
+
+ ngOnInit() {
+ }
+
+}
diff --git a/pdb-js/src/app/main-page/main-page.component.html b/pdb-js/src/app/main-page/main-page.component.html
new file mode 100644
index 0000000..389f303
--- /dev/null
+++ b/pdb-js/src/app/main-page/main-page.component.html
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
diff --git a/pdb-js/src/app/main-page/main-page.component.scss b/pdb-js/src/app/main-page/main-page.component.scss
new file mode 100644
index 0000000..e69de29
diff --git a/pdb-js/src/app/main-page/main-page.component.spec.ts b/pdb-js/src/app/main-page/main-page.component.spec.ts
new file mode 100644
index 0000000..39261a3
--- /dev/null
+++ b/pdb-js/src/app/main-page/main-page.component.spec.ts
@@ -0,0 +1,25 @@
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { MainPageComponent } from './main-page.component';
+
+describe('MainPageComponent', () => {
+ let component: MainPageComponent;
+ let fixture: ComponentFixture;
+
+ beforeEach(async(() => {
+ TestBed.configureTestingModule({
+ declarations: [ MainPageComponent ]
+ })
+ .compileComponents();
+ }));
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(MainPageComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/pdb-js/src/app/main-page/main-page.component.ts b/pdb-js/src/app/main-page/main-page.component.ts
new file mode 100644
index 0000000..4f98267
--- /dev/null
+++ b/pdb-js/src/app/main-page/main-page.component.ts
@@ -0,0 +1,15 @@
+import { Component, OnInit } from '@angular/core';
+
+@Component({
+ selector: 'pdb-main-page',
+ templateUrl: './main-page.component.html',
+ styleUrls: ['./main-page.component.scss']
+})
+export class MainPageComponent implements OnInit {
+
+ constructor() { }
+
+ ngOnInit() {
+ }
+
+}
diff --git a/pdb-js/src/app/upload-page/upload-page.component.html b/pdb-js/src/app/upload-page/upload-page.component.html
new file mode 100644
index 0000000..3289887
--- /dev/null
+++ b/pdb-js/src/app/upload-page/upload-page.component.html
@@ -0,0 +1 @@
+upload-page works!
diff --git a/pdb-js/src/app/upload-page/upload-page.component.scss b/pdb-js/src/app/upload-page/upload-page.component.scss
new file mode 100644
index 0000000..e69de29
diff --git a/pdb-js/src/app/upload-page/upload-page.component.spec.ts b/pdb-js/src/app/upload-page/upload-page.component.spec.ts
new file mode 100644
index 0000000..9549e1a
--- /dev/null
+++ b/pdb-js/src/app/upload-page/upload-page.component.spec.ts
@@ -0,0 +1,25 @@
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { UploadPageComponent } from './upload-page.component';
+
+describe('UploadPageComponent', () => {
+ let component: UploadPageComponent;
+ let fixture: ComponentFixture;
+
+ beforeEach(async(() => {
+ TestBed.configureTestingModule({
+ declarations: [ UploadPageComponent ]
+ })
+ .compileComponents();
+ }));
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(UploadPageComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/pdb-js/src/app/upload-page/upload-page.component.ts b/pdb-js/src/app/upload-page/upload-page.component.ts
new file mode 100644
index 0000000..276c07e
--- /dev/null
+++ b/pdb-js/src/app/upload-page/upload-page.component.ts
@@ -0,0 +1,15 @@
+import { Component, OnInit } from '@angular/core';
+
+@Component({
+ selector: 'pdb-upload-page',
+ templateUrl: './upload-page.component.html',
+ styleUrls: ['./upload-page.component.scss']
+})
+export class UploadPageComponent implements OnInit {
+
+ constructor() { }
+
+ ngOnInit() {
+ }
+
+}
diff --git a/pdb-js/src/app/visualization-page/visualization-page.component.html b/pdb-js/src/app/visualization-page/visualization-page.component.html
new file mode 100644
index 0000000..cefb7f9
--- /dev/null
+++ b/pdb-js/src/app/visualization-page/visualization-page.component.html
@@ -0,0 +1,5 @@
+
+
+visualization-page works!
\ No newline at end of file
diff --git a/pdb-js/src/app/visualization-page/visualization-page.component.scss b/pdb-js/src/app/visualization-page/visualization-page.component.scss
new file mode 100644
index 0000000..0787be9
--- /dev/null
+++ b/pdb-js/src/app/visualization-page/visualization-page.component.scss
@@ -0,0 +1,16 @@
+:host{
+ font-weight: bold;
+ width: 100%;
+ height: 100%;
+ position: absolute;
+}
+
+@media screen {
+ * {
+ background-color: #aaa;
+ }
+}
+
+@media screen and (max-width: 800px) {
+
+}
\ No newline at end of file
diff --git a/pdb-js/src/app/visualization-page/visualization-page.component.spec.ts b/pdb-js/src/app/visualization-page/visualization-page.component.spec.ts
new file mode 100644
index 0000000..c8446c6
--- /dev/null
+++ b/pdb-js/src/app/visualization-page/visualization-page.component.spec.ts
@@ -0,0 +1,25 @@
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { VisualizationPageComponent } from './visualization-page.component';
+
+describe('VisualizationPageComponent', () => {
+ let component: VisualizationPageComponent;
+ let fixture: ComponentFixture;
+
+ beforeEach(async(() => {
+ TestBed.configureTestingModule({
+ declarations: [ VisualizationPageComponent ]
+ })
+ .compileComponents();
+ }));
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(VisualizationPageComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/pdb-js/src/app/visualization-page/visualization-page.component.ts b/pdb-js/src/app/visualization-page/visualization-page.component.ts
new file mode 100644
index 0000000..18f87d0
--- /dev/null
+++ b/pdb-js/src/app/visualization-page/visualization-page.component.ts
@@ -0,0 +1,15 @@
+import { Component, OnInit } from '@angular/core';
+
+@Component({
+ selector: 'pdb-visualization-page',
+ templateUrl: './visualization-page.component.html',
+ styleUrls: ['./visualization-page.component.scss']
+})
+export class VisualizationPageComponent implements OnInit {
+
+ constructor() { }
+
+ ngOnInit() {
+ }
+
+}
diff --git a/pdb-js/src/styles.scss b/pdb-js/src/styles.scss
index 90d4ee0..095db11 100644
--- a/pdb-js/src/styles.scss
+++ b/pdb-js/src/styles.scss
@@ -1 +1,51 @@
/* You can add global styles to this file, and also import other style files */
+/*
+blue
+#CBD7F4
+#B6C1DB
+#96A0B5
+#636A78
+#2C2F36
+
+grey
+0123456789abcdef
+^ ^ ^ ^ ^^
+#000
+#444
+#888
+#bbb
+#eee
+#fff
+*/
+$background-color: #CBD7F4;
+
+
+body {
+ font-family: Arial, sans-serif;
+ font-size: 14px;
+ margin: 0;
+}
+
+.icon-small {
+ max-width: 1.5em;
+ max-height: 1.5em;
+ margin: 0.2em;
+}
+.icon-small:hover {
+ background-color: #eee;
+}
+
+.icon-large {
+ width: 8em;
+ height: 8em;
+ margin: 1em;
+}
+
+a.external-link:after {
+ background: transparent url('/assets/img/external-link.svg') no-repeat center bottom;
+ background-size: 0.8em;
+ display: inline-block;
+ width: 1.1em;
+ height: 1em;
+ content: "";
+}