private void SetInstanceOrReplicaMonitoringList( Uri appName, List <string> serviceFilterList, ServiceFilterType filterType, string appTypeName, DeployedServiceReplicaList deployedReplicaList, ref List <ReplicaOrInstanceMonitoringInfo> replicaMonitoringList) { foreach (var deployedReplica in deployedReplicaList) { ReplicaOrInstanceMonitoringInfo replicaInfo = null; if (deployedReplica is DeployedStatefulServiceReplica statefulReplica && statefulReplica.ReplicaRole == ReplicaRole.Primary) { replicaInfo = new ReplicaOrInstanceMonitoringInfo() { ApplicationName = appName, ApplicationTypeName = appTypeName, HostProcessId = statefulReplica.HostProcessId, ReplicaOrInstanceId = statefulReplica.ReplicaId, PartitionId = statefulReplica.Partitionid, }; if (serviceFilterList != null && filterType != ServiceFilterType.None) { bool isInFilterList = serviceFilterList.Any(s => statefulReplica.ServiceName.OriginalString.ToLower().Contains(s.ToLower())); // Include if (filterType == ServiceFilterType.Include && !isInFilterList) { continue; } // Exclude else if (filterType == ServiceFilterType.Exclude && isInFilterList) { continue; } } }
private async Task <List <ReplicaOrInstanceMonitoringInfo> > GetDeployedPrimaryReplicaAsync( Uri appName, List <string> serviceFilterList = null, ServiceFilterType filterType = ServiceFilterType.None, string appTypeName = null) { var deployedReplicaList = await FabricClientInstance.QueryManager.GetDeployedReplicaListAsync(NodeName, appName).ConfigureAwait(true); var replicaMonitoringList = new List <ReplicaOrInstanceMonitoringInfo>(); SetInstanceOrReplicaMonitoringList( appName, serviceFilterList, filterType, appTypeName, deployedReplicaList, ref replicaMonitoringList); return(replicaMonitoringList); }