[bot] aws-sdk-bedrockruntime gem not instrumented
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 48/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- aws, ruby
- Domain
- ai, backend-api-design, observability
Research direction
Start by reading the existing integrations under lib/braintrust/contrib/, especially openai/ and anthropic/, then inspect lib/braintrust/contrib.rb, Appraisals, and braintrust.gemspec. Done means the AWS Bedrock Runtime integration is registered and covers the converse, streaming, invoke-model, and async APIs with the listed inputs, metadata, usage, and outputs.
Written by the indexing model from the issue text.
Description
Summary
The aws-sdk-bedrockruntime gem is the official AWS SDK for invoking foundation models on Amazon Bedrock. With ~16.6M downloads, continuous releases (v1.75.0, April 2026), and a standardized converse/converse_stream API surface across all Bedrock-hosted models (Claude, Titan, Llama, Mistral, Cohere, etc.), it is not instrumented by this SDK.
The SDK instruments standalone provider clients for OpenAI (openai, ruby-openai) and Anthropic (anthropic), but has no instrumentation for the AWS Bedrock Runtime client, which is one of the most widely used ways to invoke generative AI models in Ruby production environments.
What is missing
No instrumentation exists for any aws-sdk-bedrockruntime execution surface. Key APIs that should be instrumented:
Converse API (unified chat)
client.converse(...)— Unified chat API with structured messages, system prompts, tool use (tool_config,tool_use,tool_result), inference config (temperature, max_tokens, top_p, stop_sequences), and guardrails. Returns structuredConverseResponsewith usage metrics (input/output tokens), stop reason, and model-specific metadata. Works identically across all Bedrock-hosted models.client.converse_stream(...)— Streaming variant with event-based output (content_block_delta,content_block_start,content_block_stop,message_start,message_stop,metadata). Includes token usage and latency metrics in the stream metadata event.
Invoke Model API (raw model invocation)
client.invoke_model(...)— Raw model invocation with provider-specific request body. Returns raw response body. Used for embeddings (e.g., Titan Embeddings, Cohere Embed) and other model-specific APIs.client.invoke_model_with_response_stream(...)— Streaming variant of raw invocation.
Async Invoke API
client.start_async_invoke(...)— Asynchronous model invocation for long-running tasks.client.get_async_invoke(...)— Check status of async invocation.
Expected instrumentation
The converse/converse_stream APIs are the primary instrumentation target due to their standardized request/response shapes:
Converse spans should capture:
- Input: messages array, system prompts, tool configuration
- Metadata: model_id, inference_config (temperature, max_tokens, top_p, stop_sequences), guardrail_config, additional_model_request_fields, provider, endpoint
- Metrics: usage (input_tokens, output_tokens, total_tokens), latency metrics from stream metadata
- Output: response messages, stop_reason, additional_model_response_fields
Invoke model spans (for embeddings) should capture:
- Input: request body (model-specific)
- Metadata: model_id, content_type, accept, provider
- Output: response body metadata
Braintrust docs status
supported — Braintrust lists AWS Bedrock as a supported AI provider at https://www.braintrust.dev/docs. The Braintrust proxy supports Bedrock routing. However, there is no Ruby SDK auto-instrumentation for the aws-sdk-bedrockruntime gem — the SDK integrations page at https://www.braintrust.dev/docs/integrations/sdk-integrations does not list it as a supported Ruby library.
Upstream sources
- Official AWS SDK for Ruby: https://github.com/aws/aws-sdk-ruby
- RubyGems: https://rubygems.org/gems/aws-sdk-bedrockruntime (~16.6M downloads, v1.75.0, April 2026)
- AWS Bedrock Runtime API reference: https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/BedrockRuntime/Client.html
- AWS Bedrock Converse API docs: https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html
Local repo files inspected
lib/braintrust/contrib/— contains onlyopenai/,ruby_openai/,ruby_llm/,anthropic/, andrails/directories. Nobedrockorawsdirectory.lib/braintrust/contrib.rb— registers only 4 integrations: OpenAI, RubyOpenAI, RubyLLM, Anthropic. No Bedrock integration.Appraisals— no appraisal scenarios foraws-sdk-bedrockruntimebraintrust.gemspec— no mention ofawsorbedrock- Grep for
bedrockacross entire codebase returns zero matches
- Dominant language
- Ruby
- Stars
- 9
- Forks
- 10
- Avg merge
- 22h 10m
- Merged PRs (30d)
- 6
Getting set up
- Ships a Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from braintrustdata/braintrust-sdk-ruby
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
ruby
Difficulty 4/5 3-5 days Newbie friendliness 48/100
-
ruby
Difficulty 4/5 3-5 days Newbie friendliness 48/100
All issues in braintrustdata/braintrust-sdk-ruby
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
rubys/roundhouse#444 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 90/100
sclorg/s2i-ruby-container#656 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
request
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
endoflife-date/endoflife.date#11277 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
yegor256/rubocop-elegant#92 ·