Esempio n. 1
0
        public ClientMetrics()
        {
            _Metrics = new List<ClientMetric>();

            BytesSent = new ClientMetric();
            BytesSent.Name = MetricNames.BytesSent;
            BytesSent.Incremental = true;
            _Metrics.Add(BytesSent);

            BytesReceived = new ClientMetric();
            BytesReceived.Name = MetricNames.BytesReceived;
            BytesReceived.Incremental = true;
            _Metrics.Add(BytesReceived);

            TransactionCount = new ClientMetric();
            TransactionCount.Name = MetricNames.TransactionCount;
            TransactionCount.Incremental = true;
            _Metrics.Add(TransactionCount);
        }
Esempio n. 2
0
        public ClientMetrics()
        {
            _Metrics = new List <ClientMetric>();

            BytesSent             = new ClientMetric();
            BytesSent.Name        = MetricNames.BytesSent;
            BytesSent.Incremental = true;
            _Metrics.Add(BytesSent);

            BytesReceived             = new ClientMetric();
            BytesReceived.Name        = MetricNames.BytesReceived;
            BytesReceived.Incremental = true;
            _Metrics.Add(BytesReceived);

            TransactionCount             = new ClientMetric();
            TransactionCount.Name        = MetricNames.TransactionCount;
            TransactionCount.Incremental = true;
            _Metrics.Add(TransactionCount);
        }
Esempio n. 3
0
 private ClientMetric LoadClientMetric(Guid clientID, BsonDocument item)
 {
     ClientMetric result = new ClientMetric();
     result.ClientID = clientID;
     result.Incremental = BsonHelper.GetBoolean(item, "Incremental");
     LoadMetricBase(result, item);
     return result;
 }
Esempio n. 4
0
 public void SaveMetric(ClientMetric metric, TObjectState state)
 {
     Dictionary<string, BsonValue> clientMetricValues = new Dictionary<string, BsonValue>();
     clientMetricValues.Add("Incremental", metric.Incremental);
     SaveMetric(metric, state, metric.ClientID.ToByteArray(), CLIENT_METRICS_COLLECTION, clientMetricValues);
 }
Esempio n. 5
0
        private void OnUpdateMetrics(string server, ServiceEventMessage message)
        {
            Guid clientID = StringUtils.GuidDecode((string)message.Parameters["ClientID"]);
            int organisationID = (int)((long)message.Parameters["OrganisationID"]);

            List <ClientMetric> metrics = (List<ClientMetric>)message.Parameters["Metrics"];

            foreach (ClientMetric parameter in metrics)
            {
                string metricName = parameter.Name;
                long oldValue = 0;
                long newValue = parameter.Value;
                ClientMetric clientMetric = DataAccessFactory.Metrics.GetMetric(clientID, metricName);
                if (clientMetric == null)
                {
                    clientMetric = new ClientMetric();
                    clientMetric.Name = metricName;
                    clientMetric.Value = newValue;
                    clientMetric.ClientID = clientID;
                    clientMetric.Incremental = parameter.Incremental;
                    DataAccessFactory.Metrics.SaveMetric(clientMetric, TObjectState.Add);
                }
                else
                {
                    oldValue = clientMetric.Value;
                    if (clientMetric.Incremental)
                    {
                        clientMetric.Value += newValue;
                        newValue = clientMetric.Value;
                    }
                    else
                    {
                        clientMetric.Value = newValue;
                    }
                    DataAccessFactory.Metrics.SaveMetric(clientMetric, TObjectState.Update);
                }

                long change = newValue - oldValue;
                OrganisationMetric organisationMetric = DataAccessFactory.Metrics.GetMetric(organisationID, metricName);
                if (organisationMetric == null)
                {
                    organisationMetric = new OrganisationMetric();
                    organisationMetric.Name = metricName;
                    organisationMetric.Value = change;
                    organisationMetric.OrganisationID = organisationID;
                    DataAccessFactory.Metrics.SaveMetric(organisationMetric, TObjectState.Add);
                }
                else
                {
                    organisationMetric.Value += change;
                    DataAccessFactory.Metrics.SaveMetric(organisationMetric, TObjectState.Update);
                }
            }
        }