question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Add service node name

See original GitHub issue

Whenever a service is composed of multiple instances, there may be a need to distinguish between them for filtering and aggregation purposes.

The context for this issue is https://github.com/elastic/kibana/issues/43765 - a service (eg a web application) may be composed from multiple instances. In APM, we recently introduced dedicated UI for showing JVM specific metrics. Currently, in order to drill down to see specific JVMs, you would need to use the query bar with other fields, that do not always guarantee uniqueness of JVMs (ie service instances). We now want to further enhance the Metrics feature and provide better options for drilling down to individual JVMs. For this purpose, we want to store a unique service instance name.

We are already using the agent fields and in terms of data-correctness we could use agent.id, but it doesn’t really reflect the meaning of that field, which is naming the service instance, and not the agent, so we are not keen on using that. Besides, service instance fields may be valid for agent-less scenarios as well.

Would adding service.instance.name be proper? If so, I assume it would make sense to add service.instance.id as well, but we currently only need the name (we are going to require uniqueness, but it should be a human readable name, therefore - a name rather than an ID).

Issue Analytics

  • State:closed
  • Created 4 years ago
  • Comments:16 (16 by maintainers)

github_iconTop GitHub Comments

4reactions
roncohencommented, Sep 5, 2019

OK, let’s start with service.node.name then? Maybe we can have a separate discussion on the elasticsearch node situation. I’d rather not add service.node.id now unless we’re going to make the change to the Elasticsearch module to make use of it imminently.

3reactions
simittcommented, Sep 10, 2019

From the description of service.name:

    The name of the service is normally user given. This allows if two
    instances of the same service are running on the same machine
    they can be differentiated by the `service.name`.

    Also it allows for distributed services that run on multiple hosts to
    correlate the related instances based on the name.

To me this reads contradicting. On the one hand the service.name is supposed to be unique for multiple processes on one machine, on the other hand it should be the same so services over multiple hosts can be matched.

When adding service.node.name I suggest to change the description for service.name to remove this first paragraph from it, as this is exactly what service.node.name is introduced for.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Adding service.node.name field #141 - elastic/apm - GitHub
My suggestion is therefore to define service.node.configured_name on the Intake API, mapping to service.node.name in ES. This allows us to add a ...
Read more >
Node name setting | Elasticsearch Guide [8.5] | Elastic
Installing Elasticsearch · Install Elasticsearch from archive on Linux or MacOS · Run Elasticsearch locally · Configuring Elasticsearch · Important Elasticsearch ...
Read more >
docker service create - Docker Documentation
In this example, we are going to set the template of the created containers based on the service's name, the node's ID and...
Read more >
Setting custom node names for the nodes in a cluster
When setting a custom node name, you can simplify the management of nodes in a cluster by setting the name to something other...
Read more >
Service | Kubernetes
The name of a Service object must be a valid RFC 1035 label name. ... port where it's running, by adding an EndpointSlice...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found