Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Instrumentation #82

Open
samritchie opened this issue Nov 14, 2024 · 0 comments
Open

Add Instrumentation #82

samritchie opened this issue Nov 14, 2024 · 0 comments

Comments

@samritchie
Copy link
Collaborator

samritchie commented Nov 14, 2024

metricsCollector was added to TableContext approx three years ago as a stop-gap for plugging observability features into Dynamo. Since then the dotnet observability story has solidified around OpenTelemetry exposed via Systems.Diagnostics counters/activities.

There is beta AWS SDK instrumentation available in OpenTelemetry.Instrumentation.AWS, however this appears to be fairly limited to the outer API calls rather than anything dynamo-specific.

I’m suggesting deprecating the metricsCollector param and adding System.Diagnostics instrumentation to this library directly. There are recommended attributes published at https://opentelemetry.io/docs/specs/semconv/database/dynamodb/. A few questions for discussion:

  • Should this include logging, metrics, traces or all three? I don’t think anyone’s missed library-level logging so far, but it may end up being useful for streams
  • Should the recommended attributes be implemented verbatim or should it just implement the essentials to start with
  • Conventionally libraries publish a separate package with a (very basic) hosting extension to enable metrics/traces on the application host. I’m unsure whether this is really necessary, or even how many consuming applications use Host builders
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant