public async Task Configure(MetricsConfiguration config) { try { Configuration = config; // TODO: figure out how to get MetricsTrackerTelemetryConsumer to get notifications // using grain observables if (Subscribers != null) { Subscribers.Notify(o => o.Configure(config)); } // using streams if (!string.IsNullOrWhiteSpace(Configuration.StreamingProviderName)) { try { StreamProvider = GrainClient.GetStreamProvider(Configuration.StreamingProviderName); ClusterSnapshotStream = StreamProvider.GetStream <MetricsSnapshot>(Guid.Empty, "ClusterMetricSnapshots"); SiloSnapshotStream = StreamProvider.GetStream <MetricsSnapshot>(Guid.Empty, "SiloMetricSnapshots"); ActivateClusterMetricsTimer(); } catch (Exception ex) { // probably here because stream provider wasn't found // TODO: handle better logger.TrackException(ex); // don't rethrow the exception } } else { if (ClusterSnapshotStream != null) { await ClusterSnapshotStream.OnCompletedAsync(); } if (SiloSnapshotStream != null) { await SiloSnapshotStream.OnCompletedAsync(); } ClusterSnapshotStream = null; SiloSnapshotStream = null; } logger.IncrementMetric("ClusterMetricsConfigured"); } catch (Exception ex) { logger.TrackException(ex); throw; } }
public override Task OnActivateAsync() { var streamProvider = this.GetStreamProvider("SMSProvider"); var primaryKey = this.GetPrimaryKey(); _deviceEventStream = streamProvider.GetStream <DeviceEvent>(primaryKey, "DeviceEvent"); _deviceEventStream.SubscribeAsync(async(deviceEvent, token) => await this.AddEventHistory(deviceEvent)); _deviceEventStream.OnCompletedAsync(); return(base.OnActivateAsync()); }
public Task OnCompletedAsync() => stream.OnCompletedAsync();
public async Task TearDown() { _tearDownExecuted = true; await _messageStream.OnCompletedAsync(); }
public virtual Task OnCompletedAsync() { return(endpoint.OnCompletedAsync()); }
public Task OnCompletedAsync() { return(_stream.OnCompletedAsync()); }