A property (e.g.: spring.application.namespace) that distinguishes group of applications (e.g.: the company/org/team that owns these apps) would be beneficial to the users.
In some cases spring.application.name needs to be unique for each app, multiple teams cannot use the same application name if they for example ship logs/metrics/traces/etc. to the same backend. With an additional "namespace" property, this would be much easier since spring.application.name only needs to be unique in the context of its "namespace".
This property could be used for
- Log correlation: Boot logs out spring.application.name and it would be easier to search for application logs if there would be a "namespace" property available.
- Metrics: the name and the "namespace" of the app can be added as tags (dimensions) so that teams would be able to aggregate metrics across these dimensions, e.g.: what is the error rate of all of the apps I own?
- Tracing: similarly to log correlation, it helps to search for traces/spans.
- Discovery: finding the owner of an app can be easier using the "namespace" as well as finding the applications that are owned by a team.
Comment From: mhalbritter
so that teams would be able to aggregate metrics across these dimensions, e.g.: what is the error rate of all of the apps I own?
I really like this idea.
Comment From: csterwa
In many of my conversations with development teams at different organizations, this is a common discussion topic. The ability to provide some indicator that a set of applications are part of a larger "business application" so that they can be viewed in metrics, portals, traces and more could be very helpful.
The term namespace may have be confused with the Kubernetes concept of Namespace. Maybe we need a few suggestions for the property name to choose from? I have a few here that may be candidates, as well:
spring.application.groupspring.application.familyspring.application.membershipspring.application.classificationspring.application.association
Comment From: philwebb
We like the suggestion and so far prefer spring.application.group as the property name.
Comment From: jonatan-ivanov
FWIW, I like group and family, group sounds a bit better: it sounds more neutral/natural for this.
Comment From: philwebb
Closing in favor of PR #39957. Thanks @wanger26!