|
19 | 19 | - Loader/home: Build outputs publish a "monitoring home"; the native loader boots the tracer from there. |
20 | 20 | - Build system: Nuke coordinates .NET builds and CMake/vcpkg for native components. |
21 | 21 |
|
| 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 | + |
22 | 41 | ## Tracer Structure |
23 | 42 |
|
24 | 43 | - `tracer/src/Datadog.Trace` — Core managed tracer library |
@@ -199,10 +218,14 @@ tracer/src/Datadog.Trace |
199 | 218 | - **Setup**: Use Azure App Services Site Extension on Windows Premium/Elastic Premium/Dedicated plans; use `Datadog.AzureFunctions` NuGet package for Linux Consumption/Container Apps |
200 | 219 | - **Tests**: `BuildAndRunWindowsAzureFunctionsTests` Nuke target; samples under `tracer/test/test-applications/azure-functions/` |
201 | 220 | - **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) |
202 | 222 |
|
203 | 223 | 📖 **Load when**: Working on Azure Functions instrumentation or debugging serverless issues |
204 | 224 | - **`docs/development/AzureFunctions.md`** — In-process vs isolated worker models, instrumentation specifics, ASP.NET Core integration, GRPC context propagation, and debugging guide |
205 | 225 |
|
| 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 | + |
206 | 229 | 📖 **Load when**: Working on AWS Lambda or general serverless instrumentation |
207 | 230 | - **`docs/development/Serverless.md`** — Serverless instrumentation patterns across cloud providers |
208 | 231 |
|
@@ -292,8 +315,10 @@ The tracer runs in-process with customer applications and must have minimal perf |
292 | 315 | - `docs/development/AutomaticInstrumentation.md` — Creating integrations |
293 | 316 | - `docs/development/DuckTyping.md` — Duck typing guide |
294 | 317 | - `docs/development/AzureFunctions.md` — Azure Functions integration |
| 318 | +- `docs/development/AzureFunctions-Architecture.md` — Azure Functions architecture deep dive |
295 | 319 | - `docs/development/Serverless.md` — Serverless instrumentation |
296 | 320 | - `docs/development/UpdatingTheSdk.md` — SDK updates |
| 321 | +- `docs/development/QueryingDatadogAPIs.md` — Querying Datadog APIs for debugging (spans, logs) |
297 | 322 |
|
298 | 323 | **CI & Testing:** |
299 | 324 | - `docs/development/CI/TroubleshootingCIFailures.md` — Investigating build/test failures in Azure DevOps |
|
0 commit comments