Ejemplo n.º 1
0
        public void BuildJaegerLog()
        {
            var timestamp   = DateTimeOffset.Parse("2/16/18 11:33:29 AM +00:00");
            var doubleField = new Field <double> {
                Key = "doubleField", Value = 1.1
            };
            var decimalField = new Field <decimal> {
                Key = "decimalField", Value = 5.5m
            };
            var boolField = new Field <bool> {
                Key = "boolField", Value = true
            };
            var uint16Field = new Field <UInt16> {
                Key = "uint16Field", Value = 5
            };
            var uint32Field = new Field <UInt32> {
                Key = "uint32Field", Value = 12
            };
            var uint64Field = new Field <UInt64> {
                Key = "uint64Field", Value = 549
            };
            var int16Field = new Field <Int16> {
                Key = "int16Field", Value = 95
            };
            var int32Field = new Field <Int32> {
                Key = "int32Field", Value = 346
            };
            var int64Field = new Field <Int64> {
                Key = "int64Field", Value = 1942
            };

            var stringField = new Field <string> {
                Key = "stringField", Value = "stringValue"
            };
            var binaryField = new Field <byte[]> {
                Key = "binaryField", Value = new byte[7] {
                    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20
                }
            };

            var fields = new List <Field> {
                doubleField,
                decimalField,
                boolField,
                uint16Field,
                uint32Field,
                uint64Field,
                int16Field,
                int32Field,
                int64Field,
                stringField,
                binaryField
            };
            var log = new LogRecord(timestamp, fields);

            var converted = JaegerThriftSerialization.BuildJaegerLog(log);

            Assert.Equal(1518780809000000, converted.Timestamp);

            Assert.Equal(JaegerTagType.DOUBLE, converted.Fields[0].VType);
            Assert.Equal(doubleField.Key, converted.Fields[0].Key);
            Assert.Equal(doubleField.Value, converted.Fields[0].VDouble);

            Assert.Equal(JaegerTagType.DOUBLE, converted.Fields[1].VType);
            Assert.Equal(decimalField.Key, converted.Fields[1].Key);
            Assert.Equal((double)decimalField.Value, converted.Fields[1].VDouble);

            Assert.Equal(JaegerTagType.BOOL, converted.Fields[2].VType);
            Assert.Equal(boolField.Key, converted.Fields[2].Key);
            Assert.Equal(boolField.Value, converted.Fields[2].VBool);

            Assert.Equal(JaegerTagType.LONG, converted.Fields[3].VType);
            Assert.Equal(uint16Field.Key, converted.Fields[3].Key);
            Assert.Equal(uint16Field.Value, converted.Fields[3].VLong);

            Assert.Equal(JaegerTagType.LONG, converted.Fields[4].VType);
            Assert.Equal(uint32Field.Key, converted.Fields[4].Key);
            Assert.Equal(uint32Field.Value, converted.Fields[4].VLong);

            Assert.Equal(JaegerTagType.LONG, converted.Fields[5].VType);
            Assert.Equal(uint64Field.Key, converted.Fields[5].Key);
            Assert.Equal((long)uint64Field.Value, converted.Fields[5].VLong);

            Assert.Equal(JaegerTagType.LONG, converted.Fields[6].VType);
            Assert.Equal(int16Field.Key, converted.Fields[6].Key);
            Assert.Equal(int16Field.Value, converted.Fields[6].VLong);

            Assert.Equal(JaegerTagType.LONG, converted.Fields[7].VType);
            Assert.Equal(int32Field.Key, converted.Fields[7].Key);
            Assert.Equal(int32Field.Value, converted.Fields[7].VLong);

            Assert.Equal(JaegerTagType.LONG, converted.Fields[8].VType);
            Assert.Equal(int64Field.Key, converted.Fields[8].Key);
            Assert.Equal(int64Field.Value, converted.Fields[8].VLong);

            Assert.Equal(JaegerTagType.STRING, converted.Fields[9].VType);
            Assert.Equal(stringField.Key, converted.Fields[9].Key);
            Assert.Equal(stringField.Value, converted.Fields[9].VStr);

            Assert.Equal(JaegerTagType.BINARY, converted.Fields[10].VType);
            Assert.Equal(binaryField.Key, converted.Fields[10].Key);
            Assert.Equal(binaryField.Value, converted.Fields[10].VBinary);
        }
Ejemplo n.º 2
0
        public void BuildJaegerLog()
        {
            var timestamp       = new DateTime(2018, 2, 16, 11, 33, 29, DateTimeKind.Utc);
            var doubleFieldKey  = "doubleField";
            var decimalFieldKey = "decimalField";
            var boolFieldKey    = "boolField";
            var ushortFieldKey  = "uint16Field";
            var uintFieldKey    = "uint32Field";
            var ulongFieldKey   = "uint64Field";
            var shortFieldKey   = "int16Field";
            var intFieldKey     = "int32Field";
            var longFieldKey    = "int64Field";
            var stringFieldKey  = "stringField";
            var binaryFieldKey  = "binaryField";

            var fields = new Dictionary <string, object> {
                { doubleFieldKey, 1.1 },
                { decimalFieldKey, 5.5m },
                { boolFieldKey, true },
                { ushortFieldKey, (ushort)5 },
                { uintFieldKey, (uint)12 },
                { ulongFieldKey, ulong.MaxValue },
                { shortFieldKey, (short)95 },
                { intFieldKey, 346 },
                { longFieldKey, (long)1942 },
                { stringFieldKey, "stringValue" },
                { binaryFieldKey, new byte[7] {
                      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20
                  } }
            };
            var log = new LogRecord(timestamp, fields);

            var converted = JaegerThriftSerialization.BuildJaegerLog(log);

            Assert.Equal(1518780809000000, converted.Timestamp);

            Assert.Equal(JaegerTagType.DOUBLE, converted.Fields[0].VType);
            Assert.Equal(doubleFieldKey, converted.Fields[0].Key);
            Assert.Equal(fields[doubleFieldKey], converted.Fields[0].VDouble);

            Assert.Equal(JaegerTagType.DOUBLE, converted.Fields[1].VType);
            Assert.Equal(decimalFieldKey, converted.Fields[1].Key);
            Assert.Equal(Convert.ToDouble(fields[decimalFieldKey]), converted.Fields[1].VDouble);

            Assert.Equal(JaegerTagType.BOOL, converted.Fields[2].VType);
            Assert.Equal(boolFieldKey, converted.Fields[2].Key);
            Assert.Equal(fields[boolFieldKey], converted.Fields[2].VBool);

            Assert.Equal(JaegerTagType.LONG, converted.Fields[3].VType);
            Assert.Equal(ushortFieldKey, converted.Fields[3].Key);
            Assert.Equal(Convert.ToInt64(fields[ushortFieldKey]), converted.Fields[3].VLong);

            Assert.Equal(JaegerTagType.LONG, converted.Fields[4].VType);
            Assert.Equal(uintFieldKey, converted.Fields[4].Key);
            Assert.Equal(Convert.ToInt64(fields[uintFieldKey]), converted.Fields[4].VLong);

            Assert.Equal(JaegerTagType.STRING, converted.Fields[5].VType);
            Assert.Equal(ulongFieldKey, converted.Fields[5].Key);
            Assert.Equal($"Ulong: {fields[ulongFieldKey]}", converted.Fields[5].VStr);

            Assert.Equal(JaegerTagType.LONG, converted.Fields[6].VType);
            Assert.Equal(shortFieldKey, converted.Fields[6].Key);
            Assert.Equal(Convert.ToInt64(fields[shortFieldKey]), converted.Fields[6].VLong);

            Assert.Equal(JaegerTagType.LONG, converted.Fields[7].VType);
            Assert.Equal(intFieldKey, converted.Fields[7].Key);
            Assert.Equal(Convert.ToInt64(fields[intFieldKey]), converted.Fields[7].VLong);

            Assert.Equal(JaegerTagType.LONG, converted.Fields[8].VType);
            Assert.Equal(longFieldKey, converted.Fields[8].Key);
            Assert.Equal(fields[longFieldKey], converted.Fields[8].VLong);

            Assert.Equal(JaegerTagType.STRING, converted.Fields[9].VType);
            Assert.Equal(stringFieldKey, converted.Fields[9].Key);
            Assert.Equal(fields[stringFieldKey], converted.Fields[9].VStr);

            Assert.Equal(JaegerTagType.BINARY, converted.Fields[10].VType);
            Assert.Equal(binaryFieldKey, converted.Fields[10].Key);
            Assert.Equal(fields[binaryFieldKey], converted.Fields[10].VBinary);
        }