Skip to content

Comments

ssm+secretsmanager#177

Open
johnjedborn wants to merge 1 commit intomainfrom
feature/ssm-secretsmanager
Open

ssm+secretsmanager#177
johnjedborn wants to merge 1 commit intomainfrom
feature/ssm-secretsmanager

Conversation

@johnjedborn
Copy link
Contributor

This pull request adds full support for AWS Secrets Manager and AWS Systems Manager (SSM) to the OpenTelemetry instrumentation crate. It introduces new feature flags, fluent builder instrumentation, and span builder implementations for these services, and updates documentation and feature bundles accordingly.

New AWS Service Instrumentation:

  • Added aws-secrets-manager and aws-ssm features, including their dependencies in Cargo.toml, and incorporated them into the aws-full feature bundle. [1] [2]
  • Implemented fluent builder instrumentation for AWS Secrets Manager and SSM, enabling automatic tracing for all supported operations. (src/middleware/aws/instrumentation/fluent_builder/secrets_manager.rs, src/middleware/aws/instrumentation/fluent_builder/ssm.rs) [1] [2]

Span Builder Implementations:

  • Added SecretsManagerSpanBuilder and SsmSpanBuilder enums with methods for every supported operation, providing OpenTelemetry span builders for each AWS API call. (src/middleware/aws/operations/secrets_manager.rs, src/middleware/aws/operations/ssm.rs) [1] [2]
  • Updated module exports to include the new span builders. (src/middleware/aws/operations/mod.rs)

Documentation Updates:

  • Updated README.md and crate-level docs to list Secrets Manager and SSM as fully supported AWS services. [1] [2]
  • Registered new modules in the instrumentation code base. (src/middleware/aws/instrumentation/fluent_builder/mod.rs)

@johnjedborn johnjedborn self-assigned this Feb 20, 2026
@johnjedborn johnjedborn requested review from a team as code owners February 20, 2026 12:04
Comment on lines +389 to +390
"aws-smithy-http 0.62.5",
"aws-smithy-json 0.61.7",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It looks like there is a version mismatch between some sdks

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we should update everything

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But I can do it myself after the merge

};
}

instrument_secrets_manager_operation!(batch_get_secret_value);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So, we are not extracting any information from spans for ssm and secrets manager.

I'm not sure that would be correct...

Surely, there could be some useful metadata there.

Comment on lines +9 to +11
let attributes = attributes![Some("secretsmanager")
.as_attribute("cloud.service.name"),];
SecretsManagerSpanBuilder::$op().attributes(attributes)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks like something that would be done in operations.

This file is intended for pre-operation instrumentation.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, actually, it is already being sent as rpc.service. So cloud.service.name seems redundant to me.

Self::client(
"SecretsManager",
method,
std::iter::empty::<crate::KeyValue>(),
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Simply [] would work better here

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants