Provide required OpenTelemetry span attributes

Description

I'm pathfinding OpenTelemetry testing with transactions currently.  I'll collate any bugs found here:

  • request_encoding span is missing db.system required by the SDK-RFC.

  • Because transactions uses KV at a low-level, we don't get the mutate_in and request_encoding spans included.  I'm undecided if mutate_in is required (arguably the transaction operation replaces it), but request_encoding should certainly be there.

  • The metrics we output aren't very usable currently.  Each app will output its own cumulative version of the db.couchbase.operations metric, starting from 0.  We need to insert some uniqueness into the attributes so that metrics consumers can display and aggregate these disparate versions.

  • "unknown_service:java" appears as the service name for all our spans.  We probably want to allow customising this.

    • After further digging, this can only be set at the TracerProvider level, outside of our control.

Environment

None

Gerrit Reviews

None

Release Notes Description

None

Attachments

1

Activity

Show:

Graham Pople August 26, 2022 at 12:25 PM
Edited

Oddly, even after setting service.name as an attribute, Jaeger at least still shows "unknown_service:java" (scroll to the right edge of the image):

 

 

Honeycomb however does show our service.name in their UI.  However, they use service.name to split up datasets, and we still appear as unknown_service:java there.

Fixed
Pinned fields
Click on the next to a field label to start pinning.

Details

Assignee

Reporter

Story Points

Fix versions

Priority

Instabug

Open Instabug

PagerDuty

Sentry

Zendesk Support

Created August 24, 2022 at 12:02 PM
Updated September 28, 2022 at 12:19 PM
Resolved September 28, 2022 at 12:19 PM
Instabug