lambda/interop/messages.go (55 lines of code) (raw):
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
package interop
// conversion from internal data structure into well defined messages
func DoneFromInvokeSuccess(successMsg InvokeSuccess) *Done {
return &Done{
Meta: DoneMetadata{
RuntimeRelease: successMsg.RuntimeRelease,
NumActiveExtensions: successMsg.NumActiveExtensions,
ExtensionNames: successMsg.ExtensionNames,
InvokeRequestReadTimeNs: successMsg.InvokeMetrics.InvokeRequestReadTimeNs,
InvokeRequestSizeBytes: successMsg.InvokeMetrics.InvokeRequestSizeBytes,
RuntimeReadyTime: successMsg.InvokeMetrics.RuntimeReadyTime,
InvokeCompletionTimeNs: successMsg.InvokeCompletionTimeNs,
InvokeReceivedTime: successMsg.InvokeReceivedTime,
RuntimeResponseLatencyMs: successMsg.ResponseMetrics.RuntimeResponseLatencyMs,
RuntimeTimeThrottledMs: successMsg.ResponseMetrics.RuntimeTimeThrottledMs,
RuntimeProducedBytes: successMsg.ResponseMetrics.RuntimeProducedBytes,
RuntimeOutboundThroughputBps: successMsg.ResponseMetrics.RuntimeOutboundThroughputBps,
LogsAPIMetrics: successMsg.LogsAPIMetrics,
MetricsDimensions: DoneMetadataMetricsDimensions{
InvokeResponseMode: successMsg.InvokeResponseMode,
},
},
}
}
func DoneFailFromInvokeFailure(failureMsg *InvokeFailure) *DoneFail {
return &DoneFail{
ErrorType: failureMsg.ErrorType,
Meta: DoneMetadata{
RuntimeRelease: failureMsg.RuntimeRelease,
NumActiveExtensions: failureMsg.NumActiveExtensions,
InvokeReceivedTime: failureMsg.InvokeReceivedTime,
RuntimeResponseLatencyMs: failureMsg.ResponseMetrics.RuntimeResponseLatencyMs,
RuntimeTimeThrottledMs: failureMsg.ResponseMetrics.RuntimeTimeThrottledMs,
RuntimeProducedBytes: failureMsg.ResponseMetrics.RuntimeProducedBytes,
RuntimeOutboundThroughputBps: failureMsg.ResponseMetrics.RuntimeOutboundThroughputBps,
InvokeRequestReadTimeNs: failureMsg.InvokeMetrics.InvokeRequestReadTimeNs,
InvokeRequestSizeBytes: failureMsg.InvokeMetrics.InvokeRequestSizeBytes,
RuntimeReadyTime: failureMsg.InvokeMetrics.RuntimeReadyTime,
ExtensionNames: failureMsg.ExtensionNames,
LogsAPIMetrics: failureMsg.LogsAPIMetrics,
MetricsDimensions: DoneMetadataMetricsDimensions{
InvokeResponseMode: failureMsg.InvokeResponseMode,
},
},
}
}
func DoneFailFromInitFailure(initFailure *InitFailure) *DoneFail {
return &DoneFail{
ErrorType: initFailure.ErrorType,
Meta: DoneMetadata{
RuntimeRelease: initFailure.RuntimeRelease,
NumActiveExtensions: initFailure.NumActiveExtensions,
LogsAPIMetrics: initFailure.LogsAPIMetrics,
},
}
}