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..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 @@ -30,43 +30,49 @@ 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 + ], changeDetection: ChangeDetectionStrategy.OnPush, template: ` -
- -
-
-
-
P99 Latency:
-
-
- {{ entry.label }} -
+ +
+
+
+
P99 Latency:
+
+
+ {{ entry.label }}
-
-
Errors:
-
-
- {{ entry.label }} -
+
+
+
Errors:
+
+
+ {{ entry.label }}
- -
- -
+ + +
+
` }) export class TopologyWidgetRendererComponent extends WidgetRenderer { @@ -80,7 +86,8 @@ export class TopologyWidgetRendererComponent extends WidgetRenderer {