private (string, IDictionary <string, object>) PreparePayload(string arn, string executionEnv, IList <Event> spans, TransactionEvent txnEvent, IList <ErrorEvent> errorEvents, IList <ErrorTrace> errorTraces)
        {
            var metadata = ProtocolUtil.GetMetadata(arn, executionEnv);
            var data     = ProtocolUtil.GetData(spans, txnEvent, errorEvents, errorTraces);
            var payload  = new List <object> {
                2, "NR_LAMBDA_MONITORING", metadata, ProtocolUtil.CompressAndEncode(JsonConvert.SerializeObject(data))
            };

            return(JsonConvert.SerializeObject(payload), data);
        }
Example #2
0
        // Write all the payload data to the console using standard out. This is the only method that should call the Logger#out method.
        private void WriteData(string arn, string executionEnv, IList <Event> spans, TransactionEvent txnEvent, IList <ErrorEvent> errorEvents, IList <ErrorTrace> errorTraces)
        {
            var metadata = ProtocolUtil.GetMetadata(arn, executionEnv);
            var data     = ProtocolUtil.GetData(spans, txnEvent, errorEvents, errorTraces);

            var payload = new List <object> {
                2, "NR_LAMBDA_MONITORING", metadata, ProtocolUtil.CompressAndEncode(JsonConvert.SerializeObject(data))
            };

            _logger.Log(JsonConvert.SerializeObject(payload));
            var debug = Environment.GetEnvironmentVariable("NEW_RELIC_DEBUG_MODE");

            if (_debugMode)
            {
                _logger.Log(JsonConvert.SerializeObject(data));
            }
        }