Skip to content

Rename service.peer.name/.namespace to server.service.name/.namespace and client.service.name/.namespace? #3472

@trask

Description

@trask

As discussed in the last Service and Deployment Semconv SIG meeting...

Motivation

service.peer.* can only describe one remote service at a time. That falls apart when observing a connection from the middle, where you want to capture both the upstream client service and the downstream server service on the same signal.

server.*/client.* already handle this nicely (e.g. server.address, client.address), with the nice property that each attribute means the same thing no matter who's observing.

Proposal

Deprecate service.peer.name/.namespace and replace with:

Current (deprecated) Client-side replacement Server-side replacement
service.peer.name server.service.name client.service.name
service.peer.namespace server.service.namespace client.service.namespace

Open question

Unlike client.address/server.address, where the meaning doesn't depend on observer position, service.name already exists as a resource attribute. So in practice we'd end up with:

  • client.service.name / service.name (on a server span), or service.name / server.service.name (on a client span)

while from the middle it'd be:

  • client.service.name / server.service.name

So we lose some of the symmetry that makes client.*/server.* nice.

cc @jsuereth @mmanciop @gkhom

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    Need triage

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions