Skip to content

[APM] [Service map] Service Node Icons #56235

Closed
@graphaelli

Description

The initial approach to determining the service map node icon (thanks @smith) is:

export function iconForNode(node: cytoscape.NodeSingular) {
const type = node.data('type');
if (type === 'service') {
return serviceIcons[node.data('agentName') as string];
} else {
return icons[type];
}
}

This issue intends to start a discussion around enhancements to the icon lookup with the goal of making the service map more consumable for users - that is, quicker understanding of what services are shown and what powers them.

For instrumented services (those with an APM agent) I propose icon resolution should follow:

  1. Framework - service.framework.name - django/express/gin/rails
  2. Runtime+Language - service.runtime.name - java/jruby/cpython
  3. Language - service.language.name - java/ruby/python

Runtime alone doesn't make sense to me (and I don't think is actually reported by any known agent) For example a C# app will report .NET Core for runtime, where C# is more informative. By contrast a python app may report pypi for framework which could be useful to distinguish from cpython apps, but both are still python.

Seeking input on whether framework is a good idea.

I'm interested in exploring adjusting some attribute of the node based on where is running - cloud provider, container/k8s/serverless, etc but consider that out of scope for this pass.

A separate issue for icons for external services will follow.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions