예제 #1
0
        public async void When_sending_data_to_splunk_Then_see_data_in_splunk()
        {
            var eventCollectorToken = "f519216f-6641-4468-ba98-52bb614711f5"; // token configured in splunk when setting up the collector
            var observer            = new SplunkObserver(new HttpPoster(new Uri("http://localhost:8088/"), eventCollectorToken), JsonConvert.SerializeObject);

            await observer.Update(new[] { SplunkObserverTest.CreateMetrics("foo", "bar") });
        }
예제 #2
0
        public async void When_using_func_Then_output_can_be_controlled()
        {
            var converter = new IsoDateTimeConverter();

            converter.DateTimeStyles = DateTimeStyles.AssumeUniversal;

            var observer = new SplunkObserver(CreateHttpPoster(),
                                              metric => new Dictionary <string, object>()
            {
                { "name", metric.Name },
                { "timeStamp", metric.Timestamp.LocalDateTime },
                { "tags", metric.Tags.ToDictionary(x => x.Key, x => x.Value) },
                { "values", metric.Values.ToDictionary(x => x.Name, x => x.Value) },
            },
                                              x => JsonConvert.SerializeObject(x, converter));

            await observer.Update(new[] { CreateMetrics("tag", "name") });

            var expected = @"{""event"":"
                           + @"{""name"":""name"","
                           + @"""timeStamp"":""2022-02-03T12:33:44.234Z"","
                           + @"""tags"":{""tag"":""tagvalue"",""tagNoCollision"":""noCollision""},"
                           + @"""values"":{""name"":23,""valueNoCollision"":42}}"
                           + "}";

            Assert.Equal(expected, jsonSentToSplunk);
        }
예제 #3
0
        private SplunkObserver CreateObserver()
        {
            var converter = new IsoDateTimeConverter();

            converter.DateTimeStyles = DateTimeStyles.AssumeUniversal;
            var observer = new SplunkObserver(CreateHttpPoster(), x => JsonConvert.SerializeObject(x, converter));

            return(observer);
        }
예제 #4
0
        public async void When_no_measurements_Then_do_not_send_to_splunk()
        {
            var httpPoster = Substitute.For <IHttpPoster>();
            var observer   = new SplunkObserver(httpPoster, JsonConvert.SerializeObject);

            await observer.Update(new Metric[0]);

            httpPoster.DidNotReceive().SendToSplunk(Arg.Any <string>());
        }