public void OnRichPayloadEventWritten()

in src/ServiceProfiler.EventPipe.Otel/Azure.Monitor.OpenTelemetry.Profiler.Core/EventListeners/SampleCollector.cs [78:128]


    public void OnRichPayloadEventWritten(EventWrittenEventArgs eventData)
    {
        _logger.LogTrace("[{Source}] {Action} - ActivityId: {activityId}, EventName: {eventName}, Keywords: {keyWords:X}, OpCode: {opCode}",
            eventData.EventSource.Name,
            nameof(OnRichPayloadEventWritten),
            eventData.ActivityId,
            eventData.EventName,
            eventData.Keywords,
            eventData.Opcode);

        if (string.IsNullOrEmpty(eventData.EventName))
        {
            return;
        }

        object? payload = eventData.Payload;
        if (payload is null)
        {
            _logger.LogWarning("Unexpected empty payload.");
            return;
        }

        if (string.Equals(eventData.EventSource.Name, _targetEventSourceName, StringComparison.Ordinal) && (
            eventData.EventId == AzureMonitorOpenTelemetryProfilerDataAdapterEventSource.EventId.RequestStart ||
            eventData.EventId == AzureMonitorOpenTelemetryProfilerDataAdapterEventSource.EventId.RequestStop))
        {
            string requestName = eventData.GetPayload<string>("name") ?? "Unknown";
            string spanId = eventData.GetPayload<string>("id") ?? throw new InvalidDataException("id payload is missing.");
            string requestId = eventData.GetPayload<string>("requestId") ?? throw new InvalidDataException("requestId is missing.");
            string operationId = eventData.GetPayload<string>("operationId") ?? throw new InvalidDataException("operationId is missing.");

            Guid activityId = eventData.ActivityId;
            string activityIdPath = activityId.GetActivityPath();
            _logger.LogDebug("{activityId} => {activityIdPath}, requestName: {requestName}, spanId: {spanId}, requestId: {requestId}, operationId: {operationId}",
                activityId, activityIdPath, requestName, spanId, requestId, operationId);

            if (eventData.EventId == AzureMonitorOpenTelemetryProfilerDataAdapterEventSource.EventId.RequestStart) // Started
            {
                HandleRequestStart(eventData, activityIdPath, requestId, operationId);
                return;
            }

            if (eventData.EventId == AzureMonitorOpenTelemetryProfilerDataAdapterEventSource.EventId.RequestStop) // Stopped
            {
                HandleRequestStop(eventData, requestName, activityIdPath, requestId);
                return;
            }

            _logger.LogWarning("Unhandled event id: {eventId}", eventData.EventId);
        }
    }