From 1df7eca04cb9a8be3af9adb302b138b2fbd87eab Mon Sep 17 00:00:00 2001 From: anandtiwary <52081890+anandtiwary@users.noreply.github.com> Date: Sun, 27 Jun 2021 23:29:53 -0700 Subject: [PATCH 1/2] refactor: topo primary secondary metric poc --- .../curved/entity-edge-curve-renderer.service.ts | 7 ++++++- .../api-node-box-renderer.service.ts | 2 +- .../backend-node-box-renderer.service.ts | 2 +- .../node/box/entity-node-box-renderer.service.ts | 5 +++++ .../service-node-box-renderer.service.ts | 2 +- .../topology/topology-widget-renderer.component.ts | 12 +++++++++++- 6 files changed, 25 insertions(+), 5 deletions(-) diff --git a/projects/observability/src/shared/dashboard/widgets/topology/edge/curved/entity-edge-curve-renderer.service.ts b/projects/observability/src/shared/dashboard/widgets/topology/edge/curved/entity-edge-curve-renderer.service.ts index a60671e7f..1bf7d61f8 100644 --- a/projects/observability/src/shared/dashboard/widgets/topology/edge/curved/entity-edge-curve-renderer.service.ts +++ b/projects/observability/src/shared/dashboard/widgets/topology/edge/curved/entity-edge-curve-renderer.service.ts @@ -31,7 +31,7 @@ import { } from '../../metric/metric-category'; import { VisibilityUpdater } from '../../visibility-updater'; -@Injectable({ providedIn: 'root' }) +@Injectable() export class EntityEdgeCurveRendererService implements TopologyEdgeRenderDelegate { private readonly edgeClass: string = 'entity-edge'; private readonly edgeLineClass: string = 'entity-edge-line'; @@ -51,6 +51,11 @@ export class EntityEdgeCurveRendererService implements TopologyEdgeRenderDelegat return typeof edge.specification === 'object' && typeof edge.data === 'object'; } + public setPrimaryMetric(): void {} + public setSecondaryMetric(): void {} + public setOtherMetrics(): void {} + + public draw( element: SVGGElement, edge: EntityEdge, diff --git a/projects/observability/src/shared/dashboard/widgets/topology/node/box/api-node-renderer/api-node-box-renderer.service.ts b/projects/observability/src/shared/dashboard/widgets/topology/node/box/api-node-renderer/api-node-box-renderer.service.ts index e1bae7654..81f682d0a 100644 --- a/projects/observability/src/shared/dashboard/widgets/topology/node/box/api-node-renderer/api-node-box-renderer.service.ts +++ b/projects/observability/src/shared/dashboard/widgets/topology/node/box/api-node-renderer/api-node-box-renderer.service.ts @@ -5,7 +5,7 @@ import { entityTypeKey, ObservabilityEntityType } from '../../../../../../graphq import { EntityNode } from '../../../../../../graphql/request/handlers/entities/query/topology/entity-topology-graphql-query-handler.service'; import { EntityNodeBoxRendererService } from '../entity-node-box-renderer.service'; -@Injectable({ providedIn: 'root' }) +@Injectable() export class ApiNodeBoxRendererService extends EntityNodeBoxRendererService { public matches(node: TopologyNode & Partial): node is EntityNode { return this.isEntityNode(node) && node.data[entityTypeKey] === ObservabilityEntityType.Api; diff --git a/projects/observability/src/shared/dashboard/widgets/topology/node/box/backend-node-renderer/backend-node-box-renderer.service.ts b/projects/observability/src/shared/dashboard/widgets/topology/node/box/backend-node-renderer/backend-node-box-renderer.service.ts index 0108d435e..012b31139 100644 --- a/projects/observability/src/shared/dashboard/widgets/topology/node/box/backend-node-renderer/backend-node-box-renderer.service.ts +++ b/projects/observability/src/shared/dashboard/widgets/topology/node/box/backend-node-renderer/backend-node-box-renderer.service.ts @@ -5,7 +5,7 @@ import { entityTypeKey, ObservabilityEntityType } from '../../../../../../graphq import { EntityNode } from '../../../../../../graphql/request/handlers/entities/query/topology/entity-topology-graphql-query-handler.service'; import { EntityNodeBoxRendererService } from '../entity-node-box-renderer.service'; -@Injectable({ providedIn: 'root' }) +@Injectable() export class BackendNodeBoxRendererService extends EntityNodeBoxRendererService { public matches(node: TopologyNode & Partial): node is EntityNode { return this.isEntityNode(node) && node.data[entityTypeKey] === ObservabilityEntityType.Backend; diff --git a/projects/observability/src/shared/dashboard/widgets/topology/node/box/entity-node-box-renderer.service.ts b/projects/observability/src/shared/dashboard/widgets/topology/node/box/entity-node-box-renderer.service.ts index d484c6de9..4f7fda779 100644 --- a/projects/observability/src/shared/dashboard/widgets/topology/node/box/entity-node-box-renderer.service.ts +++ b/projects/observability/src/shared/dashboard/widgets/topology/node/box/entity-node-box-renderer.service.ts @@ -46,6 +46,11 @@ export abstract class EntityNodeBoxRendererService implements TopologyNodeRender public abstract matches(node: TopologyNode & Partial): node is EntityNode; + public setPrimaryMetric(): void {} + public setSecondaryMetric(): void {} + public setOtherMetrics(): void {} + + public draw( nodeElement: SVGGElement, node: EntityNode, diff --git a/projects/observability/src/shared/dashboard/widgets/topology/node/box/service-node-renderer/service-node-box-renderer.service.ts b/projects/observability/src/shared/dashboard/widgets/topology/node/box/service-node-renderer/service-node-box-renderer.service.ts index d99ed8471..02955ed56 100644 --- a/projects/observability/src/shared/dashboard/widgets/topology/node/box/service-node-renderer/service-node-box-renderer.service.ts +++ b/projects/observability/src/shared/dashboard/widgets/topology/node/box/service-node-renderer/service-node-box-renderer.service.ts @@ -5,7 +5,7 @@ import { entityTypeKey, ObservabilityEntityType } from '../../../../../../graphq import { EntityNode } from '../../../../../../graphql/request/handlers/entities/query/topology/entity-topology-graphql-query-handler.service'; import { EntityNodeBoxRendererService } from '../entity-node-box-renderer.service'; -@Injectable({ providedIn: 'root' }) +@Injectable() export class ServiceNodeBoxRendererService extends EntityNodeBoxRendererService { public matches(node: TopologyNode & Partial): node is EntityNode { return this.isEntityNode(node) && node.data[entityTypeKey] === ObservabilityEntityType.Service; diff --git a/projects/observability/src/shared/dashboard/widgets/topology/topology-widget-renderer.component.ts b/projects/observability/src/shared/dashboard/widgets/topology/topology-widget-renderer.component.ts index bbd466543..ce92ed70a 100644 --- a/projects/observability/src/shared/dashboard/widgets/topology/topology-widget-renderer.component.ts +++ b/projects/observability/src/shared/dashboard/widgets/topology/topology-widget-renderer.component.ts @@ -16,6 +16,7 @@ import { MetricAggregationSpecification } from '../../../graphql/model/schema/sp import { PercentileLatencyMetricValueCategory } from '../../../graphql/model/schema/specifications/percentile-latency-aggregation-specification'; import { TopologyData } from '../../data/graphql/topology/topology-data-source.model'; import { EntityEdgeCurveRendererService } from './edge/curved/entity-edge-curve-renderer.service'; +import { MetricModelPropertiesService } from './metric/metric-model-properties.service'; import { ApiNodeBoxRendererService } from './node/box/api-node-renderer/api-node-box-renderer.service'; import { BackendNodeBoxRendererService } from './node/box/backend-node-renderer/backend-node-box-renderer.service'; import { ServiceNodeBoxRendererService } from './node/box/service-node-renderer/service-node-box-renderer.service'; @@ -30,7 +31,16 @@ import { TopologyWidgetModel } from './topology-widget.model'; './edge/curved/entity-edge-curve-renderer.scss', './topology-widget-renderer.component.scss' ], - providers: [TopologyNodeRendererService, TopologyEdgeRendererService, TopologyTooltipRendererService], + providers: [ + TopologyNodeRendererService, + TopologyEdgeRendererService, + TopologyTooltipRendererService, + EntityEdgeCurveRendererService, + ApiNodeBoxRendererService, + BackendNodeBoxRendererService, + ServiceNodeBoxRendererService, + MetricModelPropertiesService + ], changeDetection: ChangeDetectionStrategy.OnPush, template: `
From 8b93d45aa3c772d9d61bbd08044df192b6fa5d6a Mon Sep 17 00:00:00 2001 From: anandtiwary <52081890+anandtiwary@users.noreply.github.com> Date: Sun, 27 Jun 2021 23:32:49 -0700 Subject: [PATCH 2/2] refactor: removed unused service --- .../topology-widget-renderer.component.ts | 67 +++++++++---------- 1 file changed, 33 insertions(+), 34 deletions(-) diff --git a/projects/observability/src/shared/dashboard/widgets/topology/topology-widget-renderer.component.ts b/projects/observability/src/shared/dashboard/widgets/topology/topology-widget-renderer.component.ts index ce92ed70a..875d0d777 100644 --- a/projects/observability/src/shared/dashboard/widgets/topology/topology-widget-renderer.component.ts +++ b/projects/observability/src/shared/dashboard/widgets/topology/topology-widget-renderer.component.ts @@ -16,7 +16,6 @@ import { MetricAggregationSpecification } from '../../../graphql/model/schema/sp import { PercentileLatencyMetricValueCategory } from '../../../graphql/model/schema/specifications/percentile-latency-aggregation-specification'; import { TopologyData } from '../../data/graphql/topology/topology-data-source.model'; import { EntityEdgeCurveRendererService } from './edge/curved/entity-edge-curve-renderer.service'; -import { MetricModelPropertiesService } from './metric/metric-model-properties.service'; import { ApiNodeBoxRendererService } from './node/box/api-node-renderer/api-node-box-renderer.service'; import { BackendNodeBoxRendererService } from './node/box/backend-node-renderer/backend-node-box-renderer.service'; import { ServiceNodeBoxRendererService } from './node/box/service-node-renderer/service-node-box-renderer.service'; @@ -38,45 +37,42 @@ import { TopologyWidgetModel } from './topology-widget.model'; EntityEdgeCurveRendererService, ApiNodeBoxRendererService, BackendNodeBoxRendererService, - ServiceNodeBoxRendererService, - MetricModelPropertiesService + ServiceNodeBoxRendererService ], changeDetection: ChangeDetectionStrategy.OnPush, template: ` -
- -
-
-
-
P99 Latency:
-
-
- {{ entry.label }} -
+ +
+
+
+
P99 Latency:
+
+
+ {{ entry.label }}
-
-
Errors:
-
-
- {{ entry.label }} -
+
+
+
Errors:
+
+
+ {{ entry.label }}
- -
- -
+ + +
+
` }) export class TopologyWidgetRendererComponent extends WidgetRenderer { @@ -90,7 +86,8 @@ export class TopologyWidgetRendererComponent extends WidgetRenderer {