Skip to content

Commit

Permalink
fix traces
Browse files Browse the repository at this point in the history
  • Loading branch information
sourabh1007 committed Jan 6, 2025
1 parent 8582813 commit 8f733b1
Show file tree
Hide file tree
Showing 11 changed files with 798 additions and 1,269 deletions.
48 changes: 21 additions & 27 deletions Microsoft.Azure.Cosmos/src/Resource/ClientContextCore.cs
Original file line number Diff line number Diff line change
Expand Up @@ -532,21 +532,18 @@ private async Task<TResult> RunWithDiagnosticsHelperAsync<TResult>(
// Checks if OpenTelemetry is configured for this operation and either Trace or Metrics are enabled by customer
if (isOtelCompatibleOperation)
{
using (ITrace telemetryTrace = trace.StartChild("Recording Telemetry"))
{
// Extracts and records telemetry data from the result of the operation.
OpenTelemetryAttributes otelAttributes = openTelemetry?.GetAttributes(result);

// Records the telemetry attributes for Distributed Tracing (if enabled) and Metrics
recorder.Record(otelAttributes);
RecordMetrics(getOperationName,
this.client.Endpoint,
containerName,
databaseName,
requestOptions,
attributes: otelAttributes,
trace: telemetryTrace);
}
// Extracts and records telemetry data from the result of the operation.
OpenTelemetryAttributes otelAttributes = openTelemetry?.GetAttributes(result);

// Records the telemetry attributes for Distributed Tracing (if enabled) and Metrics
recorder.Record(otelAttributes);
RecordMetrics(getOperationName,
this.client.Endpoint,
containerName,
databaseName,
requestOptions,
attributes: otelAttributes,
trace: trace);
}

return result;
Expand All @@ -555,17 +552,14 @@ private async Task<TResult> RunWithDiagnosticsHelperAsync<TResult>(
{
if (isOtelCompatibleOperation)
{
using (ITrace telemetryTrace = trace.StartChild("Recording Telemetry"))
{
recorder.MarkFailed(cosmosException);
RecordMetrics(getOperationName,
gatewayEndpoint,
containerName,
databaseName,
requestOptions,
cosmosException: cosmosException,
trace: telemetryTrace);
}
recorder.MarkFailed(cosmosException);
RecordMetrics(getOperationName,
gatewayEndpoint,
containerName,
databaseName,
requestOptions,
cosmosException: cosmosException,
trace: trace);
}

throw cosmosException; // Rethrow after recording telemetry
Expand Down Expand Up @@ -645,7 +639,7 @@ private static void RecordMetrics(Func<string> getOperationName,
}
catch (Exception ex)
{
trace?.AddDatum("Exception", ex.ToString());
trace?.AddDatum("TelemetryException", ex.ToString());
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,26 +41,25 @@
│ [DistributedTraceId]
│ Redacted To Not Change The Baselines From Run To Run
│ )
├── Execute Next Batch(00000000-0000-0000-0000-000000000000) Batch-Component 00:00:00:000 0.00 milliseconds
│ ├── Create Batch Request(00000000-0000-0000-0000-000000000000) Batch-Component 00:00:00:000 0.00 milliseconds
│ └── Execute Batch Request(00000000-0000-0000-0000-000000000000) Batch-Component 00:00:00:000 0.00 milliseconds
│ ├── Microsoft.Azure.Cosmos.Handlers.RequestInvokerHandler(00000000-0000-0000-0000-000000000000) RequestHandler-Component 00:00:00:000 0.00 milliseconds
│ │ └── Microsoft.Azure.Cosmos.Handlers.DiagnosticsHandler(00000000-0000-0000-0000-000000000000) RequestHandler-Component 00:00:00:000 0.00 milliseconds
│ │ │ (
│ │ │ [System Info]
│ │ │ Redacted To Not Change The Baselines From Run To Run
│ │ │ )
│ │ └── Microsoft.Azure.Cosmos.Handlers.TelemetryHandler(00000000-0000-0000-0000-000000000000) RequestHandler-Component 00:00:00:000 0.00 milliseconds
│ │ └── Microsoft.Azure.Cosmos.Handlers.RetryHandler(00000000-0000-0000-0000-000000000000) RequestHandler-Component 00:00:00:000 0.00 milliseconds
│ │ └── Microsoft.Azure.Cosmos.Handlers.RouterHandler(00000000-0000-0000-0000-000000000000) RequestHandler-Component 00:00:00:000 0.00 milliseconds
│ │ └── Microsoft.Azure.Cosmos.Handlers.TransportHandler(00000000-0000-0000-0000-000000000000) RequestHandler-Component 00:00:00:000 0.00 milliseconds
│ │ └── Microsoft.Azure.Documents.ServerStoreModel Transport Request(00000000-0000-0000-0000-000000000000) Transport-Component 00:00:00:000 0.00 milliseconds
│ │ (
│ │ [Client Side Request Stats]
│ │ Redacted To Not Change The Baselines From Run To Run
│ │ )
│ └── Create Trace(00000000-0000-0000-0000-000000000000) Batch-Component 00:00:00:000 0.00 milliseconds
└── Recording Telemetry(00000000-0000-0000-0000-000000000000) Transport-Component 00:00:00:000 0.00 milliseconds
└── Execute Next Batch(00000000-0000-0000-0000-000000000000) Batch-Component 00:00:00:000 0.00 milliseconds
├── Create Batch Request(00000000-0000-0000-0000-000000000000) Batch-Component 00:00:00:000 0.00 milliseconds
└── Execute Batch Request(00000000-0000-0000-0000-000000000000) Batch-Component 00:00:00:000 0.00 milliseconds
├── Microsoft.Azure.Cosmos.Handlers.RequestInvokerHandler(00000000-0000-0000-0000-000000000000) RequestHandler-Component 00:00:00:000 0.00 milliseconds
│ └── Microsoft.Azure.Cosmos.Handlers.DiagnosticsHandler(00000000-0000-0000-0000-000000000000) RequestHandler-Component 00:00:00:000 0.00 milliseconds
│ │ (
│ │ [System Info]
│ │ Redacted To Not Change The Baselines From Run To Run
│ │ )
│ └── Microsoft.Azure.Cosmos.Handlers.TelemetryHandler(00000000-0000-0000-0000-000000000000) RequestHandler-Component 00:00:00:000 0.00 milliseconds
│ └── Microsoft.Azure.Cosmos.Handlers.RetryHandler(00000000-0000-0000-0000-000000000000) RequestHandler-Component 00:00:00:000 0.00 milliseconds
│ └── Microsoft.Azure.Cosmos.Handlers.RouterHandler(00000000-0000-0000-0000-000000000000) RequestHandler-Component 00:00:00:000 0.00 milliseconds
│ └── Microsoft.Azure.Cosmos.Handlers.TransportHandler(00000000-0000-0000-0000-000000000000) RequestHandler-Component 00:00:00:000 0.00 milliseconds
│ └── Microsoft.Azure.Documents.ServerStoreModel Transport Request(00000000-0000-0000-0000-000000000000) Transport-Component 00:00:00:000 0.00 milliseconds
│ (
│ [Client Side Request Stats]
│ Redacted To Not Change The Baselines From Run To Run
│ )
└── Create Trace(00000000-0000-0000-0000-000000000000) Batch-Component 00:00:00:000 0.00 milliseconds
]]></Text>
<Json><![CDATA[{
"Summary": {},
Expand Down Expand Up @@ -137,10 +136,6 @@
]
}
]
},
{
"name": "Recording Telemetry",
"duration in milliseconds": 0
}
]
}]]></Json><OTelActivities>
Expand Down Expand Up @@ -207,26 +202,25 @@
│ [DistributedTraceId]
│ Redacted To Not Change The Baselines From Run To Run
│ )
├── Execute Next Batch(00000000-0000-0000-0000-000000000000) Batch-Component 00:00:00:000 0.00 milliseconds
│ ├── Create Batch Request(00000000-0000-0000-0000-000000000000) Batch-Component 00:00:00:000 0.00 milliseconds
│ └── Execute Batch Request(00000000-0000-0000-0000-000000000000) Batch-Component 00:00:00:000 0.00 milliseconds
│ ├── Microsoft.Azure.Cosmos.Handlers.RequestInvokerHandler(00000000-0000-0000-0000-000000000000) RequestHandler-Component 00:00:00:000 0.00 milliseconds
│ │ └── Microsoft.Azure.Cosmos.Handlers.DiagnosticsHandler(00000000-0000-0000-0000-000000000000) RequestHandler-Component 00:00:00:000 0.00 milliseconds
│ │ │ (
│ │ │ [System Info]
│ │ │ Redacted To Not Change The Baselines From Run To Run
│ │ │ )
│ │ └── Microsoft.Azure.Cosmos.Handlers.TelemetryHandler(00000000-0000-0000-0000-000000000000) RequestHandler-Component 00:00:00:000 0.00 milliseconds
│ │ └── Microsoft.Azure.Cosmos.Handlers.RetryHandler(00000000-0000-0000-0000-000000000000) RequestHandler-Component 00:00:00:000 0.00 milliseconds
│ │ └── Microsoft.Azure.Cosmos.Handlers.RouterHandler(00000000-0000-0000-0000-000000000000) RequestHandler-Component 00:00:00:000 0.00 milliseconds
│ │ └── Microsoft.Azure.Cosmos.Handlers.TransportHandler(00000000-0000-0000-0000-000000000000) RequestHandler-Component 00:00:00:000 0.00 milliseconds
│ │ └── Microsoft.Azure.Documents.ServerStoreModel Transport Request(00000000-0000-0000-0000-000000000000) Transport-Component 00:00:00:000 0.00 milliseconds
│ │ (
│ │ [Client Side Request Stats]
│ │ Redacted To Not Change The Baselines From Run To Run
│ │ )
│ └── Create Trace(00000000-0000-0000-0000-000000000000) Batch-Component 00:00:00:000 0.00 milliseconds
└── Recording Telemetry(00000000-0000-0000-0000-000000000000) Transport-Component 00:00:00:000 0.00 milliseconds
└── Execute Next Batch(00000000-0000-0000-0000-000000000000) Batch-Component 00:00:00:000 0.00 milliseconds
├── Create Batch Request(00000000-0000-0000-0000-000000000000) Batch-Component 00:00:00:000 0.00 milliseconds
└── Execute Batch Request(00000000-0000-0000-0000-000000000000) Batch-Component 00:00:00:000 0.00 milliseconds
├── Microsoft.Azure.Cosmos.Handlers.RequestInvokerHandler(00000000-0000-0000-0000-000000000000) RequestHandler-Component 00:00:00:000 0.00 milliseconds
│ └── Microsoft.Azure.Cosmos.Handlers.DiagnosticsHandler(00000000-0000-0000-0000-000000000000) RequestHandler-Component 00:00:00:000 0.00 milliseconds
│ │ (
│ │ [System Info]
│ │ Redacted To Not Change The Baselines From Run To Run
│ │ )
│ └── Microsoft.Azure.Cosmos.Handlers.TelemetryHandler(00000000-0000-0000-0000-000000000000) RequestHandler-Component 00:00:00:000 0.00 milliseconds
│ └── Microsoft.Azure.Cosmos.Handlers.RetryHandler(00000000-0000-0000-0000-000000000000) RequestHandler-Component 00:00:00:000 0.00 milliseconds
│ └── Microsoft.Azure.Cosmos.Handlers.RouterHandler(00000000-0000-0000-0000-000000000000) RequestHandler-Component 00:00:00:000 0.00 milliseconds
│ └── Microsoft.Azure.Cosmos.Handlers.TransportHandler(00000000-0000-0000-0000-000000000000) RequestHandler-Component 00:00:00:000 0.00 milliseconds
│ └── Microsoft.Azure.Documents.ServerStoreModel Transport Request(00000000-0000-0000-0000-000000000000) Transport-Component 00:00:00:000 0.00 milliseconds
│ (
│ [Client Side Request Stats]
│ Redacted To Not Change The Baselines From Run To Run
│ )
└── Create Trace(00000000-0000-0000-0000-000000000000) Batch-Component 00:00:00:000 0.00 milliseconds
]]></Text>
<Json><![CDATA[{
"Summary": {},
Expand Down Expand Up @@ -303,10 +297,6 @@
]
}
]
},
{
"name": "Recording Telemetry",
"duration in milliseconds": 0
}
]
}]]></Json><OTelActivities>
Expand Down
Loading

0 comments on commit 8f733b1

Please sign in to comment.