Пример #1
0
        public override bool Equals(object obj)
        {
            if (this == obj)
            {
                return(true);
            }
            if (obj == null)
            {
                return(false);
            }
            if (this.GetType() != obj.GetType())
            {
                return(false);
            }
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final MetricIntervalEntity other = (MetricIntervalEntity) obj;
            MetricIntervalEntity other = (MetricIntervalEntity)obj;

            if ((string.ReferenceEquals(this.name, null)) ? (!string.ReferenceEquals(other.name, null)) :!this.name.Equals(other.name))
            {
                return(false);
            }
            if ((string.ReferenceEquals(this.reporter, null)) ? (!string.ReferenceEquals(other.reporter, null)) :!this.reporter.Equals(other.reporter))
            {
                return(false);
            }
            if (this.timestamp != other.timestamp && (this.timestamp == null || !this.timestamp.Equals(other.timestamp)))
            {
                return(false);
            }
            return(true);
        }
Пример #2
0
        public virtual IList <MetricIntervalValue> executeSelectInterval(MetricsQueryImpl query)
        {
            IList <MetricIntervalValue> intervalResult = DbEntityManager.selectList(SELECT_METER_INTERVAL, query);

            intervalResult = intervalResult != null ? intervalResult : new List <MetricIntervalValue>();

            string reporterId = Context.ProcessEngineConfiguration.DbMetricsReporter.MetricsCollectionTask.Reporter;

            if (intervalResult.Count > 0 && isEndTimeAfterLastReportInterval(query) && !string.ReferenceEquals(reporterId, null))
            {
                IDictionary <string, Meter> metrics = Context.ProcessEngineConfiguration.MetricsRegistry.Meters;
                string queryName = query.Name;
                //we have to add all unlogged metrics to last interval
                if (!string.ReferenceEquals(queryName, null))
                {
                    MetricIntervalEntity intervalEntity = (MetricIntervalEntity)intervalResult[0];
                    long entityValue = intervalEntity.Value;
                    if (metrics[queryName] != null)
                    {
                        entityValue += metrics[queryName].get();
                    }
                    intervalEntity.Value = entityValue;
                }
                else
                {
                    ISet <string> metricNames           = metrics.Keys;
                    DateTime      lastIntervalTimestamp = intervalResult[0].Timestamp;
                    foreach (string metricName in metricNames)
                    {
                        MetricIntervalEntity entity = new MetricIntervalEntity(lastIntervalTimestamp, metricName, reporterId);
                        int idx = intervalResult.IndexOf(entity);
                        if (idx >= 0)
                        {
                            MetricIntervalEntity intervalValue = (MetricIntervalEntity)intervalResult[idx];
                            intervalValue.Value = intervalValue.Value + metrics[metricName].get();
                        }
                    }
                }
            }
            return(intervalResult);
        }