aktueller stand

This commit is contained in:
Meik
2026-01-28 12:24:39 +01:00
parent 8b7c4ce480
commit 82984f769b
48 changed files with 1122 additions and 495 deletions

View File

@@ -45,6 +45,7 @@ namespace C4IT.DataHistoryProvider
public const string constCitrixSessionMachine = "monitorodata/Sessions?$select=SessionKey&$filter=SessionKey eq {0}&$expand=Machine($expand=CurrentLoadIndex,Catalog,DesktopGroup($select=Name)),Machine";
public const string constCitrixSessionCurrentConnection = "monitorodata/Sessions?$select=SessionKey&$filter=SessionKey eq {0}&$expand=CurrentConnection,LogOnMetrics";
public const string constCitrixSessionConnections = "monitorodata/Sessions?$select=SessionKey&$filter=SessionKey eq {0}&$expand=Connection";
public const string constCitrixUserConnections = "monitorodata/Sessions?$filter=UserId in ({0})&$expand=Connection";
public const string constCitrixSessionUser = "monitorodata/Sessions?$select=SessionKey&$filter=SessionKey eq {0}&$expand=User";
public const string constCitrixSessionLogoff = "cvad/manage/Sessions/{0}/$logoff";
public const string constCitrixSessionHide = "cvad/manage/Sessions/{0}/$hide";
@@ -75,7 +76,7 @@ namespace C4IT.DataHistoryProvider
};
private Dictionary<string, cCitrixCommunication> tenantCitrixCache = new Dictionary<string, cCitrixCommunication>();
private readonly cDataHistoryCollector _collector;
public cDataHistoryCollectorCitrix(cDataHistoryCollector Collector) : base(Collector, eDataHistoryOrigin.Citrix, constConnectorName, constLicenseId)
public cDataHistoryCollectorCitrix(cDataHistoryCollector Collector) : base(Collector, enumDataHistoryOrigin.Citrix, constConnectorName, constLicenseId)
{
_collector = Collector;
}
@@ -333,6 +334,7 @@ namespace C4IT.DataHistoryProvider
{
Name = constTableNameSessionMetrics,
InformationClass = enumFasdInformationClass.VirtualSession,
Origin = enumDataHistoryOrigin.Citrix,
IsStatic = true,
TableType = eDataHistoryTableType.Static
};
@@ -440,7 +442,7 @@ namespace C4IT.DataHistoryProvider
if (table.Columns.TryGetValue(columnName, out var columnValues))
columnValues.Values.Add(value);
else
table.Columns.Add(columnName, new cF4SDHealthCardRawData.cHealthCardTableColumn() { ColumnName = columnName, Values = new List<object>() { value } });
table.Columns.Add(columnName, new cF4SDHealthCardRawData.cHealthCardTableColumn(table) { ColumnName = columnName, Values = new List<object>() { value } });
}
}
@@ -1682,6 +1684,7 @@ namespace C4IT.DataHistoryProvider
{
Name = constTableNameSession,
InformationClass = enumFasdInformationClass.VirtualSession,
Origin = enumDataHistoryOrigin.Citrix,
IsStatic = true,
TableType = eDataHistoryTableType.Static
};
@@ -1714,7 +1717,7 @@ namespace C4IT.DataHistoryProvider
objVal = ConvertToF4sdType(objVal, colInfo.ValueType);
var _col = new cF4SDHealthCardRawData.cHealthCardTableColumn() { ColumnName = colInfo.Name, Values = new List<object>(1) { objVal } };
var _col = new cF4SDHealthCardRawData.cHealthCardTableColumn(retVal) { ColumnName = colInfo.Name, Values = new List<object>(1) { objVal } };
retVal.Columns[colInfo.Name] = _col;
}
catch { }
@@ -1764,6 +1767,7 @@ namespace C4IT.DataHistoryProvider
{
Name = constTableNameSessionUser,
InformationClass = enumFasdInformationClass.VirtualSession,
Origin = enumDataHistoryOrigin.Citrix,
IsStatic = true,
TableType = eDataHistoryTableType.Static
};
@@ -1804,7 +1808,7 @@ namespace C4IT.DataHistoryProvider
objVal = ConvertToF4sdType(objVal, colInfo.ValueType);
var _col = new cF4SDHealthCardRawData.cHealthCardTableColumn() { ColumnName = colInfo.Name, Values = new List<object>(1) { objVal } };
var _col = new cF4SDHealthCardRawData.cHealthCardTableColumn(retVal) { ColumnName = colInfo.Name, Values = new List<object>(1) { objVal } };
retVal.Columns[colInfo.Name] = _col;
}
catch { }
@@ -1855,6 +1859,7 @@ namespace C4IT.DataHistoryProvider
{
Name = constTableNameSessionMachine,
InformationClass = enumFasdInformationClass.VirtualSession,
Origin = enumDataHistoryOrigin.Citrix,
IsStatic = true,
TableType = eDataHistoryTableType.Static
};
@@ -1900,7 +1905,7 @@ namespace C4IT.DataHistoryProvider
}
objVal = ConvertToF4sdType(objVal, colInfo.ValueType);
var _col = new cF4SDHealthCardRawData.cHealthCardTableColumn() { ColumnName = colInfo.Name, Values = new List<object>(1) { objVal } };
var _col = new cF4SDHealthCardRawData.cHealthCardTableColumn(retVal) { ColumnName = colInfo.Name, Values = new List<object>(1) { objVal } };
retVal.Columns[colInfo.Name] = _col;
}
catch { }
@@ -1950,6 +1955,7 @@ namespace C4IT.DataHistoryProvider
{
Name = constTableNameSessionCurrentConnection,
InformationClass = enumFasdInformationClass.VirtualSession,
Origin = enumDataHistoryOrigin.Citrix,
IsStatic = true,
TableType = eDataHistoryTableType.Static
};
@@ -2020,7 +2026,7 @@ namespace C4IT.DataHistoryProvider
objVal = ConvertToF4sdType(objVal, colInfo.ValueType);
var _col = new cF4SDHealthCardRawData.cHealthCardTableColumn() { ColumnName = colInfo.Name, Values = new List<object>(1) { objVal } };
var _col = new cF4SDHealthCardRawData.cHealthCardTableColumn(retVal) { ColumnName = colInfo.Name, Values = new List<object>(1) { objVal } };
retVal.Columns[colInfo.Name] = _col;
}
catch { }
@@ -2070,6 +2076,7 @@ namespace C4IT.DataHistoryProvider
{
Name = constTableNameSessionConnection,
InformationClass = enumFasdInformationClass.VirtualSession,
Origin = enumDataHistoryOrigin.Citrix,
IsStatic = true,
TableType = eDataHistoryTableType.Static
};
@@ -2110,7 +2117,7 @@ namespace C4IT.DataHistoryProvider
objVal = ConvertToF4sdType(objVal, colInfo.ValueType);
var _col = new cF4SDHealthCardRawData.cHealthCardTableColumn() { ColumnName = colInfo.Name, Values = new List<object>(1) { objVal } };
var _col = new cF4SDHealthCardRawData.cHealthCardTableColumn(retVal) { ColumnName = colInfo.Name, Values = new List<object>(1) { objVal } };
retVal.Columns[colInfo.Name] = _col;
}
catch { }
@@ -2143,18 +2150,18 @@ namespace C4IT.DataHistoryProvider
try
{
var bIcaRttMSDetailExists = Tables.Exists(v => v.Name == constTableNameSessionDetailsIcaRttMS && v.ParentCluster?.Origin == eDataHistoryOrigin.Citrix);
var bIcaLatencyDetailExists = Tables.Exists(v => v.Name == constTableNameSessionDetailsIcaLatency && v.ParentCluster?.Origin == eDataHistoryOrigin.Citrix);
var bClientL7LatencyDetailExists = Tables.Exists(v => v.Name == constTableNameSessionDetailsClientL7Latency && v.ParentCluster?.Origin == eDataHistoryOrigin.Citrix);
var bServerL7LatencyDetailExists = Tables.Exists(v => v.Name == constTableNameSessionDetailsServerL7Latency && v.ParentCluster?.Origin == eDataHistoryOrigin.Citrix);
var bInputBandwidthUsedDetailExists = Tables.Exists(v => v.Name == constTableNameSessionDetailsInputBandwidthUsed && v.ParentCluster?.Origin == eDataHistoryOrigin.Citrix);
var bOutputBandwidthUsedDetailExists = Tables.Exists(v => v.Name == constTableNameSessionDetailsOutputBandwidthUsed && v.ParentCluster?.Origin == eDataHistoryOrigin.Citrix);
var bOutputBandwidthAvailableDetailExists = Tables.Exists(v => v.Name == constTableNameSessionDetailsOutputBandwidthAvailable && v.ParentCluster?.Origin == eDataHistoryOrigin.Citrix);
var bFpsDetailExists = Tables.Exists(v => v.Name == constTableNameSessionDetailsFps && v.ParentCluster?.Origin == eDataHistoryOrigin.Citrix);
var bInputFpsDetailExists = Tables.Exists(v => v.Name == constTableNameSessionDetailsInputFps && v.ParentCluster?.Origin == eDataHistoryOrigin.Citrix);
var bOutputFpsDetailExists = Tables.Exists(v => v.Name == constTableNameSessionDetailsOutputFps && v.ParentCluster?.Origin == eDataHistoryOrigin.Citrix);
var bWanLatencyDetailExists = Tables.Exists(v => v.Name == constTableNameSessionDetailsWanLatency && v.ParentCluster?.Origin == eDataHistoryOrigin.Citrix);
var bDcLatencyDetailExists = Tables.Exists(v => v.Name == constTableNameSessionDetailsDcLatency && v.ParentCluster?.Origin == eDataHistoryOrigin.Citrix);
var bIcaRttMSDetailExists = Tables.Exists(v => v.Name == constTableNameSessionDetailsIcaRttMS && v.ParentCluster?.Origin == enumDataHistoryOrigin.Citrix);
var bIcaLatencyDetailExists = Tables.Exists(v => v.Name == constTableNameSessionDetailsIcaLatency && v.ParentCluster?.Origin == enumDataHistoryOrigin.Citrix);
var bClientL7LatencyDetailExists = Tables.Exists(v => v.Name == constTableNameSessionDetailsClientL7Latency && v.ParentCluster?.Origin == enumDataHistoryOrigin.Citrix);
var bServerL7LatencyDetailExists = Tables.Exists(v => v.Name == constTableNameSessionDetailsServerL7Latency && v.ParentCluster?.Origin == enumDataHistoryOrigin.Citrix);
var bInputBandwidthUsedDetailExists = Tables.Exists(v => v.Name == constTableNameSessionDetailsInputBandwidthUsed && v.ParentCluster?.Origin == enumDataHistoryOrigin.Citrix);
var bOutputBandwidthUsedDetailExists = Tables.Exists(v => v.Name == constTableNameSessionDetailsOutputBandwidthUsed && v.ParentCluster?.Origin == enumDataHistoryOrigin.Citrix);
var bOutputBandwidthAvailableDetailExists = Tables.Exists(v => v.Name == constTableNameSessionDetailsOutputBandwidthAvailable && v.ParentCluster?.Origin == enumDataHistoryOrigin.Citrix);
var bFpsDetailExists = Tables.Exists(v => v.Name == constTableNameSessionDetailsFps && v.ParentCluster?.Origin == enumDataHistoryOrigin.Citrix);
var bInputFpsDetailExists = Tables.Exists(v => v.Name == constTableNameSessionDetailsInputFps && v.ParentCluster?.Origin == enumDataHistoryOrigin.Citrix);
var bOutputFpsDetailExists = Tables.Exists(v => v.Name == constTableNameSessionDetailsOutputFps && v.ParentCluster?.Origin == enumDataHistoryOrigin.Citrix);
var bWanLatencyDetailExists = Tables.Exists(v => v.Name == constTableNameSessionDetailsWanLatency && v.ParentCluster?.Origin == enumDataHistoryOrigin.Citrix);
var bDcLatencyDetailExists = Tables.Exists(v => v.Name == constTableNameSessionDetailsDcLatency && v.ParentCluster?.Origin == enumDataHistoryOrigin.Citrix);
if (!Identities.TryGetValue(enumFasdInformationClass.VirtualSession, out var session) || session?.Id is null)
return null;
@@ -2385,7 +2392,7 @@ namespace C4IT.DataHistoryProvider
if (!Identities.TryGetValue(enumFasdInformationClass.User, out var userIds) || userIds?.citrixTenantId is null)
return null;
var citrixTableNames = new HashSet<string>(Tables.Where(t => t?.ParentCluster?.Origin == eDataHistoryOrigin.Citrix).Select(t => t.Name), StringComparer.Ordinal);
var citrixTableNames = new HashSet<string>(Tables.Where(t => t?.ParentCluster?.Origin == enumDataHistoryOrigin.Citrix).Select(t => t.Name), StringComparer.Ordinal);
bool Has(string tableName) => tableName != null && citrixTableNames.Contains(tableName);
@@ -2569,7 +2576,7 @@ namespace C4IT.DataHistoryProvider
try
{
if (!Always)
if (Always)
{
var scanInfo = await Collector.CitrixCollector.GetScanTimeInfoAsync(requestInfo, LogDeep + 1, Token);
if (scanInfo == null)