private void Metric(string filterId, long value) { if (string.IsNullOrWhiteSpace(filterId)) { return; } string metricId = "filter-instances." + filterId; Dictionary <string, string> metadata = new Dictionary <string, string>(); metadata["metric_name_distribution"] = _metricNameDistribution; metadata["metric_name_audit"] = _metricNameAudit; metadata["filter"] = filterId; IAuditMetric metric = _valueMetricManager.GetMetric(metricId, new MetricConfig(metadata)); metric.AddValue(value); }
public InstanceRegistry(InstanceRepository instanceRepository, ArtemisClientConfig config) { Preconditions.CheckArgument(instanceRepository != null, "instance repository"); Preconditions.CheckArgument(config != null, "config"); _instanceRepository = instanceRepository; _ttl = config.ConfigurationManager.GetProperty(config.Key("instance-registry.instance-ttl"), 20 * 1000, 5 * 1000, 24 * 60 * 60 * 1000); _interval = config.ConfigurationManager.GetProperty(config.Key("instance-registry.heartbeat-interval"), 5 * 1000, 500, 5 * 60 * 1000); Action <WebSocket> onOpen = (webSocket) => { }; Action <WebSocket, MessageEventArgs> onMessage = (webSocket, message) => { AcceptHeartbeat(message); }; _sessionContext = new WebSocketSessionContext(config, onOpen, onMessage); var heartbeatStatusMetricConfig = new MetricConfig(new Dictionary <string, string>() { { "metric_name_distribution", config.Key("heartbeat.event.distribution") } }); _heartbeatStatus = config.EventMetricManager.GetMetric(config.Key("heartbeat.event"), heartbeatStatusMetricConfig); _prepareHeartbeatLatency = config.AuditMetricManager.GetMetric(config.Key("heartbeat.prepare-latency"), new MetricConfig(new Dictionary <string, string>() { { "metric_name_distribution", config.Key("heartbeat.prepare-latency.distribution") } })); _sendHeartbeatLatency = config.AuditMetricManager.GetMetric(config.Key("heartbeat.send-latency"), new MetricConfig(new Dictionary <string, string>() { { "metric_name_distribution", config.Key("heartbeat.send-latency.distribution") } })); _acceptHeartbeatLatency = config.AuditMetricManager.GetMetric(config.Key("heartbeat.accept-latency"), new MetricConfig(new Dictionary <string, string>() { { "metric_name_distribution", config.Key("heartbeat.accept-latency.distribution") } })); _heartbeater = new DynamicTimer(config.ConfigurationManager.GetProperty(config.Key("instances-registry.heartbeat-interval.dynamic-scheduled-thread.run-interval"), 1000, 500, 90 * 1000), () => { CheckHeartbeat(); }); }
public void CLogMetricTest() { string auditMetricName = "Caravan.Metric.Test.CLogMetricTest"; IAuditMetricManager manager = NullAuditMetricManager.Instance; Dictionary <string, string> metadata = new Dictionary <string, string>(); metadata["metric_name_audit"] = auditMetricName.ToLower(); IAuditMetric auditMetric = manager.GetMetric(auditMetricName.ToLower(), new MetricConfig(metadata)); bool isCompleted = false; var task = Task.Factory.StartNew(() => { Random random = new Random(); while (!isCompleted) { auditMetric.AddValue(random.Next(100, 200)); Thread.Sleep(10); } }); Thread.Sleep(1000 * 60 * 60); isCompleted = true; task.Wait(); }
private NullAuditMetricManager() { Metrics = new IAuditMetric[0]; Config = new MetricManagerConfig <IAuditMetric>(NullAuditMetricReporter.Instance); }