chore(instrumentation): set up instrumentation/aws workspace#194
chore(instrumentation): set up instrumentation/aws workspace#194Dogbu-cyber wants to merge 11 commits intomainfrom
Conversation
17f2c7a to
78a6876
Compare
|
Suggestion: Use Reason: Datadog isn’t perfectly consistent across dd-trace-*, but the stronger tracer precedent leans instrumentation (dd-trace-go, dd-trace-java, dd-trace-dotnet). There are repos that use integration/Integrations too (dd-trace-rb, dd-trace-php), so this isn’t a hard rule. Still, for tracer code like this, instrumentation reads clearer, and it also matches OpenTelemetry contrib. |
| # Copyright 2025-Present Datadog, Inc. https://www.datadoghq.com/ | ||
| # SPDX-License-Identifier: Apache-2.0 | ||
|
|
||
| [workspace] |
There was a problem hiding this comment.
Suggestion: group all rust instrumentation modules under a single Cargo workspace.
That keeps shared dependencies pinned in one place, and makes cross-module compatibility easier to maintain. Each instrumentation package can still stay as its own crate and version independently.
| [workspace] | ||
|
|
||
| [package] | ||
| name = "datadog-lambda" |
There was a problem hiding this comment.
Suggestion: rename datadog-lambda to datadog-aws-lambda-instrumentation.
Note: The crate is AWS-specific, so the current name is broader than the actual scope.
integrations/aws/aws-sdk/Cargo.toml
Outdated
| [workspace] | ||
|
|
||
| [package] | ||
| name = "datadog-aws-sdk" |
There was a problem hiding this comment.
Suggestion: rename datadog-aws-sdk to datadog-aws-instrumentation.
| authors = ["Datadog Inc. <info@datadoghq.com>"] | ||
| description = "Datadog instrumentation for AWS SDK for Rust" | ||
|
|
||
| [dependencies] |
There was a problem hiding this comment.
Suggestion: explicitly document that datadog-aws-instrumentation currently supports only SQS, SNS, and EventBridge.
Note: The broader crate name is acceptable if the docs and package description do not overpromise.
integrations/aws/aws-sdk/Cargo.toml
Outdated
| [workspace] | ||
|
|
||
| [package] | ||
| name = "datadog-aws-sdk" |
There was a problem hiding this comment.
Suggestion: align folder names with the final public crate names.
| [workspace] | ||
|
|
||
| [package] | ||
| name = "datadog-lambda" |
There was a problem hiding this comment.
Suggestion: align folder names with the final public crate names.
…rkspace - Rename integrations/ -> instrumentation/ to align with dd-trace-go/java/dotnet and OpenTelemetry contrib naming conventions - Rename aws-sdk-rust/ -> datadog-aws/ (crate name: datadog-aws) - Rename datadog-lambda-rs/ -> datadog-aws-lambda/ (crate name: datadog-aws-lambda) - Remove per-crate [workspace] stubs; add instrumentation/aws/Cargo.toml as shared workspace (resolver 2, MSRV 1.91.1) - Document scope in datadog-aws: currently supports SQS, SNS, EventBridge
78a6876 to
bf4ea81
Compare
…age metadata
- Replace /integrations/**/target with /instrumentation/**/target in .gitignore
- Add [workspace.dependencies] for shared deps (serde, serde_json, opentelemetry,
opentelemetry_sdk, opentelemetry-semantic-conventions, tracing, tokio)
- Both crates inherit version, edition, license, repository, authors, publish from
[workspace.package]; datadog-aws-lambda keeps its own rust-version (1.85.0)
- Shared deps in both crates use { workspace = true }
What does this PR do?
Establishes the
instrumentation/aws/Cargo workspace that houses Datadog AWS instrumentation crates. This is the foundation PR — #189 and #190 add the implementations on top.Workspace structure
Changes
integrations/→instrumentation/to align with dd-trace-go/java/dotnet and OpenTelemetry contrib naming conventionsaws-sdk-rust/→datadog-aws/(crate:datadog-aws, MSRV 1.91.1)datadog-lambda-rs/→datadog-aws-lambda/(crate:datadog-aws-lambda, MSRV 1.85.0)instrumentation/aws/Cargo.tomlas a shared Cargo workspace with[workspace.dependencies]for common deps (opentelemetry,serde_json,tracing,tokio, etc.) — member crates use{ workspace = true }to avoid version driftversion,edition,license,repository,authors,publishfrom[workspace.package];datadog-aws-lambdakeeps its ownrust-version = "1.85.0".gitignore:/integrations/**/target→/instrumentation/**/targetMotivation
The two implementation PRs (#189, #190) require higher MSRVs than the repo-wide 1.84.1. Keeping them as a separate Cargo workspace avoids polluting the root workspace's MSRV while sharing a single lock file and centralized dependency versions between the two crates.