public void EventMessageIsTruncated() { string message = new string('a', 4001); var serviceCheckBytes = DogStatsDSerializer.SerializeEvent(AlertType.Info, "", message, EventPriority.Normal, Array.Empty <byte>(), null, Array.Empty <byte>(), null); string serviceCheckStr = Encoding.UTF8.GetString(serviceCheckBytes.Array !, serviceCheckBytes.Offset, serviceCheckBytes.Count); Assert.AreEqual($"_e{{000,4000}}:|{message.Substring(0, 4000)}", serviceCheckStr); }
public void EventAggregationKeyIsTruncated() { string aggregationKey = new string('a', 101); var serviceCheckBytes = DogStatsDSerializer.SerializeEvent(AlertType.Info, "", "", EventPriority.Normal, Array.Empty <byte>(), aggregationKey, Array.Empty <byte>(), null); string serviceCheckStr = Encoding.UTF8.GetString(serviceCheckBytes.Array !, serviceCheckBytes.Offset, serviceCheckBytes.Count); Assert.AreEqual($"_e{{000,0000}}:||k:{aggregationKey.Substring(0, 100)}", serviceCheckStr); }
public void EventTitleIsTruncated() { string title = new string('a', 101); var serviceCheckBytes = DogStatsDSerializer.SerializeEvent(AlertType.Info, title, "", EventPriority.Normal, Array.Empty <byte>(), null, Array.Empty <byte>(), null); string serviceCheckStr = Encoding.UTF8.GetString(serviceCheckBytes.Array !, serviceCheckBytes.Offset, serviceCheckBytes.Count); Assert.AreEqual($"_e{{100,0000}}:{title.Substring(0, 100)}|", serviceCheckStr); }
public void SerializeMetric(string name, double value, MetricType type, double sampleRate, string?tags, string expected) { byte[] prefixBytes = DogStatsDSerializer.SerializeMetricPrefix(name); byte[] suffixBytes = DogStatsDSerializer.SerializeMetricSuffix(type, sampleRate, TestHelper.ParseTags(tags)); ArraySegment <byte> metricBytes = DogStatsDSerializer.SerializeMetric(prefixBytes, value, suffixBytes); Assert.AreEqual(expected, Encoding.ASCII.GetString(metricBytes.Array !, metricBytes.Offset, metricBytes.Count)); ArrayPool <byte> .Shared.Return(metricBytes.Array !); }
public void SerializeEvent(AlertType alertType, string title, string message, EventPriority priority, string?source, string?aggregationKey, string?constantTags, string?extraTags, string expected) { byte[] sourceBytes = source != null?Encoding.ASCII.GetBytes(source) : Array.Empty <byte>(); byte[] constantTagsBytes = DogStatsDSerializer.ValidateAndSerializeTags(TestHelper.ParseTags(constantTags)); var eventBytes = DogStatsDSerializer.SerializeEvent(alertType, title, message, priority, sourceBytes, aggregationKey, constantTagsBytes, TestHelper.ParseTags(extraTags)); string eventStr = Encoding.UTF8.GetString(eventBytes.Array !, eventBytes.Offset, eventBytes.Count); Assert.AreEqual(expected, eventStr); ArrayPool <byte> .Shared.Return(eventBytes.Array !); }
internal Metric(ITransport transport, ITelemetry telemetry, string metricName, MetricType metricType, double sampleRate, IList <KeyValuePair <string, string> >?tags) { _transport = transport; _telemetry = telemetry; _metricName = metricName; _sampleRate = sampleRate; _tags = tags; _metricPrefixBytes = DogStatsDSerializer.SerializeMetricPrefix(metricName); _metricSuffixBytes = DogStatsDSerializer.SerializeMetricSuffix(metricType, sampleRate, tags); }
public void SerializeServiceCheck(string?ns, string name, CheckStatus checkStatus, string?message, string?constantTags, string?extraTags, string expected) { byte[] nsBytes = ns != null?Encoding.ASCII.GetBytes(ns) : Array.Empty <byte>(); message ??= string.Empty; byte[] constantTagsBytes = DogStatsDSerializer.ValidateAndSerializeTags(TestHelper.ParseTags(constantTags)); var serviceCheckBytes = DogStatsDSerializer.SerializeServiceCheck(nsBytes, name, checkStatus, message, constantTagsBytes, TestHelper.ParseTags(extraTags)); string serviceCheckStr = Encoding.UTF8.GetString(serviceCheckBytes.Array !, serviceCheckBytes.Offset, serviceCheckBytes.Count); Assert.AreEqual(expected, serviceCheckStr); ArrayPool <byte> .Shared.Return(serviceCheckBytes.Array !); }
private protected void Submit(double value) { _telemetry.MetricSent(); if (!Sampling.Sample(_sampleRate)) { return; } var metricBytes = DogStatsDSerializer.SerializeMetric(_metricPrefixBytes, value, _metricSuffixBytes); _transport.Send(metricBytes); }
public void SerializeSampleRateArgumentOutOfRangeException(double sampleRate) { Assert.Throws <ArgumentOutOfRangeException>(() => DogStatsDSerializer.ValidateAndSerializeSampleRate(sampleRate)); }
public void SerializeMetricNameArgumentException(string name) { Assert.Throws <ArgumentException>(() => DogStatsDSerializer.SerializeMetricName(name)); }