public void OnRichPayloadEventWritten()

in src/ServiceProfiler.EventPipe.Otel/Azure.Monitor.OpenTelemetry.Profiler.Core/EventListeners/TraceSessionListener.cs [84:126]


    public void OnRichPayloadEventWritten(EventWrittenEventArgs eventData)
    {
        _logger.LogTrace("[{Source}] {Action} - ActivityId: {activityId}, EventName: {eventName}, Keywords: {keyWords}, 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, OpenTelemetrySDKEventSourceName, StringComparison.Ordinal) &&
            (eventData.EventId == EventId.RequestStart || eventData.EventId == EventId.RequestStop))
        {
            string requestName = eventData.GetPayload<string>("name") ?? "Unknown";
            string id = eventData.GetPayload<string>("id") ?? throw new InvalidDataException("id payload is missing.");

            (string operationId, string requestId) = ExtractKeyIds(id);

            if (eventData.EventId == 24) // Started
            {
                HandleRequestStart(eventData, requestName, requestId, operationId, id);
                return;
            }

            if (eventData.EventId == 25) // Stopped
            {
                HandleRequestStop(eventData, requestName, requestId, operationId, id);
                return;
            }
        }
    }