コード例 #1
0
        public void Calculate_WithNullName_ReturnsTagsHashCode()
        {
            const string emptyTagsHashCode = "17";
            var          result            = MetricIdentifier.Calculate(null);

            result.Should().Be(emptyTagsHashCode);
        }
コード例 #2
0
        public void Calculate_WithName_UsesDefaultTags()
        {
            const string emptyTagsHashCode = "17";
            var          result            = MetricIdentifier.Calculate("test");

            result.Should().Be("test" + emptyTagsHashCode);
        }
コード例 #3
0
        /// <summary>
        /// Update the number of EventDetail items reported by the report.
        /// </summary>
        /// <param name="reportIdentifier">The unique identifier for a report.</param>
        /// <param name="events">The events reported by the reporter.</param>
        public static void UpdateTotalReportedEvents(int reportIdentifier, IEnumerable <EventValueSource> events)
        {
            if (reportIdentifier >= 0 && reportIdentifier < ReportEventCounts.Count)
            {
                foreach (var evntSrc in events)
                {
                    var count         = evntSrc.Value.Events.Count;
                    var eventMetricId = MetricIdentifier.Calculate(evntSrc.Name, evntSrc.Tags);
                    var report        = ReportEventCounts[reportIdentifier];

                    var eventCount = report.FirstOrDefault(e => e.EventMetricIdentifier == eventMetricId);
                    if (eventCount != null)
                    {
                        eventCount.TotalEventsReported = count;
                    }
                    else
                    {
                        report.Add(new EventCount
                        {
                            EventMetricIdentifier = eventMetricId,
                            TotalEventsReported   = count
                        });
                    }
                }
            }
        }
コード例 #4
0
        public static void UnregisterHealthCheck(string healthCheckName, MetricTags tags = default(MetricTags))
        {
            HealthCheck healthCheck;
            var         name = MetricIdentifier.Calculate(healthCheckName, tags);

            checks.TryRemove(name, out healthCheck);
        }
コード例 #5
0
        public void Calculate_WithInvertedTagValueOptions_ReturnsDifferentHashCodes()
        {
            var tempTags1 = new Dictionary <string, string>();

            tempTags1.Add("key", "value");
            var tempTags2 = new Dictionary <string, string>();

            tempTags2.Add("value", "key");
            var result1 = MetricIdentifier.Calculate("test", tempTags1);
            var result2 = MetricIdentifier.Calculate("test", tempTags2);

            result1.Should().NotBe(result2);
        }
コード例 #6
0
        public void Calculate_WithDiffTagKeySameValue_ReturnsDifferentHashCodes()
        {
            var tempTags1 = new Dictionary <string, string>();

            tempTags1.Add("key1", "abc");
            var tempTags2 = new Dictionary <string, string>();

            tempTags2.Add("key2", "abc");
            var result1 = MetricIdentifier.Calculate("test", tempTags1);
            var result2 = MetricIdentifier.Calculate("test", tempTags2);

            result1.Should().NotBe(result2);
        }
コード例 #7
0
        /// <summary>
        /// Registers a custom health check.
        /// </summary>
        /// <param name="healthCheck">Custom health check to register.</param>
        public static void RegisterHealthCheck(HealthCheck healthCheck)
        {
            var name = MetricIdentifier.Calculate(healthCheck.Name, healthCheck.Tags);

            checks.AddOrUpdate(name, healthCheck, (key, old) => healthCheck);
        }