Skip to content

Commit 4db5067

Browse files
authored
Merge branch 'master' into kr-igor/apms-17551
2 parents 1ae4166 + 12c20ca commit 4db5067

File tree

161 files changed

+4397
-15135
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

161 files changed

+4397
-15135
lines changed

.azure-pipelines/ultimate-pipeline.yml

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -947,7 +947,7 @@ stages:
947947
timeoutInMinutes: 60 #default value
948948
dependsOn: [ ]
949949
pool:
950-
vmImage: macos-13
950+
vmImage: macos-14
951951
steps:
952952
- template: steps/clone-repo.yml
953953
parameters:
@@ -967,7 +967,7 @@ stages:
967967
timeoutInMinutes: 60 #default value
968968
dependsOn: [ ]
969969
pool:
970-
vmImage: macos-13
970+
vmImage: macos-14
971971
steps:
972972
- template: steps/clone-repo.yml
973973
parameters:
@@ -992,7 +992,7 @@ stages:
992992
timeoutInMinutes: 60 #default value
993993
dependsOn: [native_tracer, native_loader_and_managed ]
994994
pool:
995-
vmImage: macos-13
995+
vmImage: macos-14
996996
steps:
997997
- checkout: none
998998

@@ -1288,7 +1288,7 @@ stages:
12881288
timeoutInMinutes: 60 #default value
12891289
dependsOn: [ ]
12901290
pool:
1291-
vmImage: macos-13
1291+
vmImage: macos-14
12921292
steps:
12931293
- template: steps/clone-repo.yml
12941294
parameters:
@@ -1363,7 +1363,7 @@ stages:
13631363
$[stageDependencies.generate_variables.generate_variables_job.outputs['generate_variables_step.unit_tests_macos_matrix'] ]
13641364
timeoutInMinutes: 90
13651365
pool:
1366-
vmImage: macos-13
1366+
vmImage: macos-14
13671367
steps:
13681368
- template: steps/clone-repo.yml
13691369
parameters:
@@ -1619,7 +1619,7 @@ stages:
16191619
- job: macos
16201620
timeoutInMinutes: 60 #default value
16211621
pool:
1622-
vmImage: macos-13
1622+
vmImage: macos-14
16231623
steps:
16241624
- template: steps/clone-repo.yml
16251625
parameters:
@@ -1979,7 +1979,7 @@ stages:
19791979
timeoutInMinutes: 60 #default value
19801980
dependsOn: [ ]
19811981
pool:
1982-
vmImage: macos-13
1982+
vmImage: macos-14
19831983
steps:
19841984
- template: steps/clone-repo.yml
19851985
parameters:
@@ -2302,7 +2302,6 @@ stages:
23022302
variables:
23032303
TestAllPackageVersions: true
23042304
IncludeMinorPackageVersions: $[eq(variables.perform_comprehensive_testing, 'true')]
2305-
IntegrationTestFilter: DockerGroup=$(dockerGroup)
23062305

23072306
pool:
23082307
name: $(linuxX64Pool)
@@ -2319,6 +2318,14 @@ stages:
23192318
- template: steps/download-samples.yml
23202319
parameters:
23212320
framework: $(publishTargetFramework)
2321+
- bash: |
2322+
if [ -z "$(IntegrationTestFilter)" ]; then
2323+
newFilter="DockerGroup=$(dockerGroup)"
2324+
else
2325+
newFilter="$(IntegrationTestFilter)&(DockerGroup=$(dockerGroup))"
2326+
fi
2327+
echo "##vso[task.setvariable variable=IntegrationTestFilter]$newFilter"
2328+
displayName: "Calculate IntegrationTestFilter"
23222329
23232330
# when we build samples separately, we could run this step and the docker-compose one below in //
23242331
# (currently the docker-compose step relies on serverless samples)

AGENTS.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,25 @@
1919
- Loader/home: Build outputs publish a "monitoring home"; the native loader boots the tracer from there.
2020
- Build system: Nuke coordinates .NET builds and CMake/vcpkg for native components.
2121

22+
## NuGet Package Architecture
23+
24+
### Datadog.Trace Package
25+
The `Datadog.Trace` NuGet package provides the **manual instrumentation API** for customers:
26+
- **Contains**: `Datadog.Trace.Manual.dll` - Public API for manual instrumentation
27+
- **Does NOT contain**: Auto-instrumentation code or native profiler binaries
28+
- **Usage**: Reference in application code for manual tracing (e.g., `Tracer.Instance.StartActive()`)
29+
30+
Auto-instrumentation comes from the tracer "monitoring home" deployed separately (via installers, MSI, container images, or specialized packages like `Datadog.AzureFunctions`).
31+
32+
### Datadog.Trace.dll vs Datadog.Trace.Manual.dll
33+
- `Datadog.Trace.dll` - The full managed tracer with all auto-instrumentation code, loaded by the native profiler into instrumented processes
34+
- `Datadog.Trace.Manual.dll` - Lightweight manual instrumentation API packaged in the `Datadog.Trace` NuGet package for customer reference
35+
36+
### Specialized Packages
37+
- **Datadog.AzureFunctions**: Bundles `Datadog.Trace.dll` and native profiler for Azure Functions (see `docs/development/AzureFunctions.md`)
38+
- **Datadog.Monitoring.Distribution**: MSI installer for Windows (IIS, Windows Services)
39+
- Other serverless/platform-specific packages may bundle the full tracer similarly
40+
2241
## Tracer Structure
2342

2443
- `tracer/src/Datadog.Trace` — Core managed tracer library
@@ -199,10 +218,14 @@ tracer/src/Datadog.Trace
199218
- **Setup**: Use Azure App Services Site Extension on Windows Premium/Elastic Premium/Dedicated plans; use `Datadog.AzureFunctions` NuGet package for Linux Consumption/Container Apps
200219
- **Tests**: `BuildAndRunWindowsAzureFunctionsTests` Nuke target; samples under `tracer/test/test-applications/azure-functions/`
201220
- **Dependencies**: `Datadog.AzureFunctions``Datadog.Serverless.Compat` ([datadog-serverless-compat-dotnet](https://github.com/DataDog/datadog-serverless-compat-dotnet)) contains agent executable
221+
- **External Repos**: [Azure Functions Host](https://github.com/Azure/azure-functions-host) and [.NET Worker](https://github.com/Azure/azure-functions-dotnet-worker)
202222

203223
📖 **Load when**: Working on Azure Functions instrumentation or debugging serverless issues
204224
- **`docs/development/AzureFunctions.md`** — In-process vs isolated worker models, instrumentation specifics, ASP.NET Core integration, GRPC context propagation, and debugging guide
205225

226+
📖 **Load when**: Need detailed architectural understanding of Azure Functions internals
227+
- **`docs/development/AzureFunctions-Architecture.md`** — Deep dive into Azure Functions Host and .NET Worker architecture, gRPC protocol, middleware model, distributed tracing integration, environment variables, and instrumentation hook points
228+
206229
📖 **Load when**: Working on AWS Lambda or general serverless instrumentation
207230
- **`docs/development/Serverless.md`** — Serverless instrumentation patterns across cloud providers
208231

@@ -292,8 +315,10 @@ The tracer runs in-process with customer applications and must have minimal perf
292315
- `docs/development/AutomaticInstrumentation.md` — Creating integrations
293316
- `docs/development/DuckTyping.md` — Duck typing guide
294317
- `docs/development/AzureFunctions.md` — Azure Functions integration
318+
- `docs/development/AzureFunctions-Architecture.md` — Azure Functions architecture deep dive
295319
- `docs/development/Serverless.md` — Serverless instrumentation
296320
- `docs/development/UpdatingTheSdk.md` — SDK updates
321+
- `docs/development/QueryingDatadogAPIs.md` — Querying Datadog APIs for debugging (spans, logs)
297322

298323
**CI & Testing:**
299324
- `docs/development/CI/TroubleshootingCIFailures.md` — Investigating build/test failures in Azure DevOps

0 commit comments

Comments
 (0)