Ejemplo n.º 1
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="dimensions"></param>
 /// <param name="logger"></param>
 public DefaultEventHubCacheMonitor(EventHubCacheMonitorDimensions dimensions, Logger logger)
 {
     this.logger        = logger;
     this.logProperties = new Dictionary <string, string>
     {
         { "Path", dimensions.EventHubPath },
         { "Partition", dimensions.EventHubPartition }
     };
 }
Ejemplo n.º 2
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="dimensions"></param>
 /// <param name="telemetryProducer"></param>
 public DefaultEventHubCacheMonitor(EventHubCacheMonitorDimensions dimensions, ITelemetryProducer telemetryProducer)
     : base(telemetryProducer)
 {
     this.LogProperties = new Dictionary <string, string>
     {
         { "Path", dimensions.EventHubPath },
         { "Partition", dimensions.EventHubPartition }
     };
 }
                protected override IEventHubQueueCache CreateCache(string partition, EventHubStreamProviderSettings providerSettings, IStreamQueueCheckpointer <string> checkpointer,
                                                                   Logger cacheLogger, IObjectPool <FixedSizeBuffer> bufferPool, string blockPoolId, TimePurgePredicate timePurge,
                                                                   SerializationManager serializationManager, EventHubMonitorAggregationDimensions sharedDimensions)
                {
                    var cacheMonitorDimensions = new EventHubCacheMonitorDimensions(sharedDimensions, partition, blockPoolId);
                    var cacheMonitor           = this.CacheMonitorFactory(cacheMonitorDimensions, cacheLogger);
                    //set defaultMaxAddCount to 10 so TryCalculateCachePressureContribution will start to calculate real contribution shortly
                    var cache = new EventHubQueueCache(defaultMaxAddCount, checkpointer, new EventHubDataAdapter(serializationManager, bufferPool),
                                                       EventHubDataComparer.Instance, cacheLogger, new EventHubCacheEvictionStrategy(cacheLogger, cacheMonitor, providerSettings.StatisticMonitorWriteInterval, timePurge),
                                                       cacheMonitor, providerSettings.StatisticMonitorWriteInterval);

                    this.caches.Add(cache);
                    return(cache);
                }
Ejemplo n.º 4
0
            protected override IEventHubQueueCache CreateCache(string partition, IEventHubDataAdapter dataAdatper, StreamStatisticOptions options, IStreamQueueCheckpointer <string> checkpointer,
                                                               ILoggerFactory loggerFactory, IObjectPool <FixedSizeBuffer> bufferPool, string blockPoolId, TimePurgePredicate timePurge,
                                                               SerializationManager serializationManager, EventHubMonitorAggregationDimensions sharedDimensions, ITelemetryProducer telemetryProducer)
            {
                var cacheMonitorDimensions = new EventHubCacheMonitorDimensions(sharedDimensions, partition, blockPoolId);
                var cacheMonitor           = this.CacheMonitorFactory(cacheMonitorDimensions, loggerFactory, telemetryProducer);
                var cacheLogger            = loggerFactory.CreateLogger($"{typeof(EventHubQueueCache).FullName}.{this.name}.{partition}");
                var evictionStrategy       = new ChronologicalEvictionStrategy(cacheLogger, timePurge, cacheMonitor, options.StatisticMonitorWriteInterval);
                //set defaultMaxAddCount to 10 so TryCalculateCachePressureContribution will start to calculate real contribution shortly
                var cache = new QueueCacheForTesting(DefaultMaxAddCount, bufferPool, dataAdatper, evictionStrategy, checkpointer,
                                                     cacheLogger, cacheMonitor, options.StatisticMonitorWriteInterval);

                this.caches.Add(cache);
                return(cache);
            }
Ejemplo n.º 5
0
 private CacheMonitorForTesting(EventHubCacheMonitorDimensions dimensions, Logger logger)
 {
     this.CallCounters = new CacheMonitorCounters();
     this.logger       = logger;
 }